1.安装vsftp软件包
[root@linux ~]# yum install -y vsftpd
2.修改vsftpd配置文件
[root@linux ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #不允许匿名登录
local_enable=YES #vsftpd所在系统的用户可以登录vsftpd
write_enable=YES #允许使用任何可以修改文件系统的FTP的指令
local_umask=022 #匿名用户新增文件的umask数值
dirmessage_enable=YES
xferlog_enable=YES #启用一个日志文件,用于详细记录上传和下载
connect_from_port_20=YES #开启20端口
xferlog_std_format=YES #记录日志使用标准格式
listen=NO #关闭监听
listen_ipv6=YES #监听IPV6地址
pam_service_name=vsftpd #验证文件的名字
userlist_enable=YES #允许由userlist_file指定文件中的用户登录FTP服务器
chroot_local_user=NO #用于指定用户列表文件中的用户,是否允许切换到上级目录
chroot_list_enable=YES #如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list #指定限制的用户文件
allow_writeable_chroot=YES
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:
allow_writeable_chroot=YES
3.添加ftp用户,设置主目录,不允许使用shell
[root@linux ~]# useradd -d /home/ftpuser/ -g ftp -s /sbin/nologin ftpuser
4.设置ftp用户密码
[root@linux ~]# passwd ftpuser
> ```
> 设置后,只有/etc/vsftpd.chroot_list文件中指定的用户才能够执行chroot命令。
> 默认/etc/vsftpd/chroot_list不存在,需要手动创建
> [root@linux ftp]# vim /etc/vsftpd/chroot_list
> ftpuser
#### 6.重启服务,并将服务设置为开机自启
[root@linux ~]# systemctl start vsftpd.service
[root@linux ~]# systemctl enable vsftpd.service
来源:oschina
链接:https://my.oschina.net/u/4313107/blog/4299857