install vsftp on ubuntu 14.04 / 16.04 / 18.04
1.安裝vsftp
指令:sudo apt-get install vsftpd
2.修改設定檔
指令: vi /etc/vsftpd.conf
在該檔 29 /33 行 拿掉#
write_enable=YES
local_umask=022
在該檔 120 行 拿掉#
chroot_local_user=YES
/* 系統預設這一行被註解掉 使用者可以看到系統資料夾,拿掉註解使用者就只能看到自已家目錄內的資料*/
在該檔文件尾加入
allow_writeable_chroot=YES
pasv_enable=Yes
pasv_address=請輸入aws ec2 的 ip
pasv_min_port=60001
pasv_max_port=60100
最後重啟 ftp
指令: sudo service vsftpd restart
3.新增使用者
指令:sudo useradd -m jeff -s /usr/sbin/nologin
註: -m 表示建立家目錄 -s 後面接shell指令
在/etc/shells檔尾中加入 下面這一行
/usr/sbin/nologin
4.設定使用者權限 及 預設目錄
將該使用者的家目錄設定成 /var/www/html
usermod --home /var/www/html jeff
此時用jeff登入ftp後會自動連到 /var/www/html
但還是不能新增編輯檔案,因為權限不足
chown -R jeff:1001 /var/www 變更目錄的擁有者及群組
設定使用者密碼:
passwd jeff
5.設定 aws 安全組
自定义 TCP 规则 TCP 20 – 21 0.0.0.0/0
自定义 TCP 规则 TCP 60001 – 60100 0.0.0.0/0
完成以上步驟就可以使用ftp登入上傳檔案了。
2020-07-01 更新
若出現 以下訊息
Status: Connection established, waiting for welcome message…
Status: Insecure server, it does not support FTP over TLS.
Command: USER manna
Response: 331 Please specify the password.
Command: PASS
Response: 530 Login incorrect.
指令: nano /etc/pam.d/vsftpd
將以下兩行註解掉 前方加#
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_shells.so
再重啟 ftp