Linux下搭建ftp服務


  Linux下ftp服務可以通過搭建vsftpd服務來實現,以CentOS為例,首先查看系統中是否安裝了vsftpd,可以通過執行命令 rpm -qa | grep vsftpd 來查看是否安裝相應的包,如果沒有安裝那么可以執行 yum -y install vsftpd 來安裝,安裝之后首先創建ftp用戶,比如ftp_test,命令如下:

useradd -s /sbin/nologin -d /home/ftp_test ftp_test

  目錄盡量不要選擇根目錄下,這里是/home/ftp_test,並且ftp_test這個目錄不要手動創建,否則權限會有問題,執行命令的時候會自動創建,

  

  可以看到權限現在是對於ftp_test用戶是可讀可寫可執行的,其他用戶和組下面的都沒有任何權限,現在為ftp_test用戶創建密碼:

passwd ftp_test

  執行之后輸入2次密碼確認就設置好了密碼

  然后編輯vsftpd配置文件,位置是:vim /etc/vsftpd/vsftpd.conf

  找到anonymous_enable這個配置項,默認是YES,修改成NO,表示不允許匿名用戶登錄

  

  現在直接保存配置文件,執行 systemctl start vsftpd.service 啟動vsftp服務,然后可以通過命令: systemctl status vsftpd.service 查看ftp服務的運行狀態,現在就可以用ftp客戶端進行連接了,這里用FileZilla測試,連接正常

  

 

  現在基本的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表示允許對家目錄的寫權限,具體配置如下:

  

  配置完這兩項以后保存退出,然后執行 systemctl restart vsftpd.service 重啟vsftpd服務,現在重新使用ftp連接就成功了,並且任何操作也是沒問題的

  

  現在可以看到上面的路徑是一個/,對於ftp用戶來說也就是根目錄了,只能在這個目錄下操作,而無法跳出這個目錄

  以上就是vsftpd服務的基本搭建過程,實際使用時可以分配多個用戶


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM