Ubuntu系統搭建FTP服務
導引
本文使用VSFTPD (very secure FTP daemon)
作為搭建FTP服務使用的服務端軟體,軟體免費開源,小巧且安全性高
安裝並啟動 FTP 服務
安裝 VSFTPD: sudo apt-get install vsftpd -y
啟動 VSFTPD 安裝完成後 VSFTPD 會自動啟動,通過 netstat 命令可以看到系統已經監聽了 21 埠:sudo netstat -nltp | grep 21
如果沒有啟動,可以手動開啟 VSFTPD 服務:sudo systemctl start vsftpd.service
配置使用者訪問目錄
新建使用者主目錄sudo mkdir /home/uftp
建立登入歡迎檔案(方便使用者登入後可以看到歡迎資訊,並且確定使用者確實登入到了主目錄上)sudo touch /home/uftp/welcome.txt
新建使用者 uftp 並設定密碼sudo useradd -d /home/uftp -s /bin/bash uftp
為使用者 uftp 設定密碼sudo passwd uftp
刪除掉 pam.d 中 vsftpd,因為該配置檔案會導致使用使用者名稱登入 ftp 失敗:sudo rm /etc/pam.d/vsftpd
限制使用者 uftp 只能通過 FTP 訪問伺服器,而不能直接登入伺服器:sudo usermod -s /sbin/nologin uftp
修改 vsftpd 配置
sudo chmod a+w /etc/vsftpd.conf
修改 /etc/vsftpd.conf 檔案中的配置(直接將如下配置新增到配置檔案最下方):
# 限制使用者對主目錄以外目錄訪問 `chroot_local_user=YES` # 指定一個 userlist 存放允許訪問 ftp 的使用者列表 userlist_deny=NO userlist_enable=YES # 記錄允許訪問 ftp 使用者列表 userlist_file=/etc/vsftpd.user_list # 不配置可能導致莫名的530問題 seccomp_sandbox=NO # 允許檔案上傳 write_enable=YES # 使用utf8編碼 utf8_filesystem=YES
新建檔案 /etc/vsftpd.user_list,用於存放允許訪問 ftp 的使用者:sudo touch /etc/vsftpd.user_list
sudo chmod a+w /etc/vsftpd.user_list
修改 /etc/vsftpd.user_list ,加入剛剛建立的使用者:
uftp
設定主目錄訪問許可權(只讀):sudo chmod a-w /home/uftp
新建公共目錄,並設定許可權(讀寫):sudo mkdir /home/uftp/public && sudo chmod 777 -R /home/uftp/public
重啟vsftpd 服務:sudo systemctl restart vsftpd.service
在Windows檔案瀏覽器可以輸入 ftp://uftp:你的密碼@你的ip地址
訪問