# 环境: rhel 7.2
# yum -y install vsftpd
# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO # 设置是否允许匿名用户登录,默认YES local_enable=YES # 是否允许本地用户登录,默认NO write_enable=YES # 是否对登录用户开启写权限,全局设置。默认NO local_umask=022 # 设置本地用户新增文档的 umask,默认022 ,对应权限755 dirmessage_enable=YES # 设置是否显示目录消息。若设置为YES,则当用户进入特定目录,将显示该目录中的由 message_file配置项指定的文件中的内容 message_file=.message # 存放显示信息,改文件存入相对应的目录 xferlog_enable=YES # 是否启用上传/下载日志记录。默认NO connect_from_port_20=YES # 指定FTP数据传输连接使用20端口。默认YES。若设为NO,则进行数据连接时,所使用的端口由ftp_data_port指定。 xferlog_std_format=YES # 日志文件是否使用标准的xferlog日志文件格式。默认NO chroot_list_enable=YES # 限制用户切换到用户根目录之外的路径,默认NO,设置为YES,则除了在/etc/vsftpd/chroot_list 文件中的账号外,其他用户都可以进入ftp根目录之外的目录。 chroot_list_file=/etc/vsftpd/chroot_list # 指定限制用户切换根目录之外的列表文件 listen=NO listen_ipv6=YES pam_service_name=vsftpd # PAM服务名称,决定PAM将为vsftpd使用配置文件 userlist_enable=YES # 若一个用户存在 userlist_file 文件中,则无法登录 tcp_wrappers=YES # 是否支持tcp_wrappers |
# useradd -g ftp -s /sbin/nologin abc # 新建ftp用户
# echo 'woshimima' | passwd --stdin abc
# vi /etc/vsftpd/chroot_list
abc |
# systemctl enable vsftpd
# systemctl start vsftpd
# ftp 192.168.1.150 # 登录测试
Connected to192.168.1.150 (192.168.1.150).
220 (vsFTPd 3.0.2)
Name(192.168.1.150:root): abc
331 Please specifythe password.
Password:
500 OOPS:vsftpd: refusing to run with writable root inside chroot()
这里报错,参考 http://blog.csdn.net/bluishglc/article/details/42399439 有两种解决方法:
第一种:
# chmod a-w /home/abc
第二种:
# vi/etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES |
# systemctl restart vsftpd
再测试登录并上传下载删除,都可以了。