一, 環境:
centos7, vsftp, 在本地win10下的FileZilla
二, 問題描述:
已有一個用戶upload, 只能上傳, 不能下載
三, 目的:
用這個用戶, 可以通過ftp上傳, 下載, 覆蓋, 而且活動范圍僅限於這個用戶的主目錄
四, 過程:
- usermod -d /home/upload upload //設置upload用戶的主目錄為 /home/upload, 這樣該用戶一登錄就會去到這個目錄
- chown -R upload /home/upload //設置 /home/upload 目錄的owner為upload用戶
- chmod -R 766 /home/upload //設置 /home/upload 目錄的權限為766, 也就是 rwxrw-rw-
- 取消了 /etc/vsftpd/vsftpd.conf 里 chroot_local_user=YES 的注釋:
- 在 /etc/vsftpd/vsftpd.conf里添加了: allow_writeable_chroot=YES
- 注釋了 /etc/pam.d/vsftpd 文件里的這一行, 在前面加 # 號: auth required pam_shells.so, 這一步之前沒做, 登錄時一直提示 530 Login incorrect.
- systemctl restart vsftpd.service // 重啟vsftp服務
- 重新用此用戶登錄ftp, 可以上傳下載覆蓋了
五, 后記:
如果一開始是沒有賬號的, 可以先添加一個賬號:
useradd -d /home/myftpfolder -m myftpuser // 這里創建用戶的同時指定了這個用戶的主目錄, 目錄不存在則創建,
passwd myftpuser // 如果新加的用戶, 別忘了要先設置密碼
其它命令:
cat /etc/passwd //查看所有用戶信息
getfacl /home/upload //查看這個目錄的權限
ftp黑白名單說明:
userlist_enable=YES // 表示啟用另一個配置userlist_deny
userlist_deny=YES // 表示 /etc/vsftpd/user_list 里是黑名單, 無法登錄到ftp, 如果是NO, 表示是白名單, 只有這里的用戶可以登錄到ftp, 在別人的地方截個圖:

