1. 程式人生 > >Ubuntu系統搭建FTP服務

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

5363693-b3e8b7bc98895b2a.png

如果沒有啟動,可以手動開啟 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地址 訪問

參考資料:
騰訊開發者實驗室_基於 Ubuntu 搭建 FTP 檔案服務