用户配置
useradd命令
-s指定shell,包括bash(/usr/bin/bash)和nologin(/usr/sbin/nologin),可以用whereis命令查看。
-rroot用户
-d指定目录
所以我执行了这一行命令:sudo useradd -s /usr/sbin/nologin -d /home/ftp/ ftpuser
查看shells文件
sudo vim /etc/shells
添加一行
/usr/sbin/nologin
passwd命令
sudo passwd ftpuser
chown命令
change owner需要递归改变所属者,加上-R
sudo chown -R ftpuser /home/ftp/
安装vsftpd
sudo vim /etc/vsftpd.conf
FTP 本地用户
禁用匿名用户,启用本地用户
anonymous_enable=NO
local_enable=YES
这步其实是默认值,不用改
启用上传
write_enable=YES
Chroot Jail
chroot_local_user:防止本地FTP用户访问其家目录之外的文件
allow_writeable_chroot:允许用户上传文件chroot的目录
默认情况下,出于安全原因,当启用chroot时,如果用户被锁定的目录是可写的,则VSFTPD将拒绝上传文件。
chroot_local_user=YES
allow_writeable_chroot=YES
被动 FTP 连接
pasv_min_port=30000
pasv_max_port=31000
限制用户登录
userlist_enable=YES
userlist_file=/etc/vsftpd.user_allow_list
userlist_deny=NO
/etc/vsftpd.user_allow_list文件中需要添加白名单,如果userlist_deny为YES则为黑名单
最后
现在可以重启服务了,记着设置防火墙和selinux