Linux下ftp服務能夠經過搭建vsftpd服務來實現,以CentOS爲例,首先查看系統中是否安裝了vsftpd,能夠經過執行命令 rpm -qa | grep vsftpd 來查看是否安裝相應的包,若是沒有安裝那麼能夠執行 yum -y install vsftpd 來安裝,安裝以後首先建立ftp用戶,好比ftp_test,命令以下:vim
useradd -s /sbin/nologin -d /home/ftp_test ftp_test
目錄儘可能不要選擇根目錄下,這裏是/home/ftp_test,而且ftp_test這個目錄不要手動建立,不然權限會有問題,執行命令的時候會自動建立,安全
能夠看到權限如今是對於ftp_test用戶是可讀可寫可執行的,其餘用戶和組下面的都沒有任何權限,如今爲ftp_test用戶建立密碼:ide
passwd ftp_test
執行以後輸入2次密碼確認就設置好了密碼測試
而後編輯vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.confspa
找到anonymous_enable這個配置項,默認是YES,修改爲NO,表示不容許匿名用戶登陸3d
如今直接保存配置文件,執行 systemctl start vsftpd.service 啓動vsftp服務,而後能夠經過命令: systemctl status vsftpd.service 查看ftp服務的運行狀態,如今就能夠用ftp客戶端進行鏈接了,這裏用FileZilla測試,鏈接正常rest
如今基本的ftp服務就部署完了,客戶端能夠正常上傳,下載,修改文件;可是這樣有個問題就是全部的目錄都暴露給客戶端了,雖然客戶端不能隨意修改刪除其他的文件,可是由於目錄可見,因此總會有一些風險,因此接下來還須要配置讓ftp用戶只在本身的家目錄下面活動,而沒法查看其它任何目錄,一樣是打開配置文件/etc/vsftpd/vsftpd.conf,找到chroot_local_user=YES這個配置,默認是註釋的,這裏去掉註釋,表示只讓用戶在本身的目錄裏面活動,若是隻是保存這一個配置的話,用ftp鏈接客戶端會返回500 OOPS: vsftpd: refusing to run with writable root inside chroot()的錯誤,即禁止運行在可寫的家目錄中,由於剛纔ftp_test這個目錄有w權限,而如今咱們使用的vsftpd版本是3.0.2 屬於比較新的版本,爲了安全性作了一些限制,若是你此時想經過 chmod a-w /home/ftp_test 來去掉目錄的寫權限,那麼鏈接成功是沒問題的,可是沒法上傳文件了,因此網上不少說修改權限的方法是不可取的,正確的作法是應該在下面添加一行配置allow_writeable_chroot=YES表示容許對家目錄的寫權限,具體配置以下:code
配置完這兩項之後保存退出,而後執行 systemctl restart vsftpd.service 重啓vsftpd服務,如今從新使用ftp鏈接就成功了,而且任何操做也是沒問題的blog
如今能夠看到上面的路徑是一個/,對於ftp用戶來講也就是根目錄了,只能在這個目錄下操做,而沒法跳出這個目錄部署
以上就是vsftpd服務的基本搭建過程,實際使用時能夠分配多個用戶