Linux系统:centos7


安装步骤 
1.通过yum来安装vsftpd


[root@localhost ~]# yum -y install vsftpd  
2.设置为开机启动


[root@localhost ~]# chkconfig vsftpd on  
3.修改 vim /etc/vsftpd/vsftpd.conf 配置参数 没有的自己添加 注释了的把它开放,让其配置生效:

local_enable=YES 
write_enable=YES 
local_umask=022 
chroot_local_user=YES #这行可能需自己写 
pam_service_name=vsftpd
userlist_enable=YES
allow_writeable_chroot=YES
listen=YES  
 
4.配置保存后重启vsftpd服务:

[root@localhost ~]# service vsftpd restart  
添加用户及额外配置 
1.设置vsftp的帐号。
 [root@localhost ~]# useradd -d /home/htdocs -s /sbin/nologin 用户名   
2.为添加的账号设置密码
 [root@localhost ~]# passwd 用户名  
根据提示操作,输入密码

5.暂时关闭下防火墙,测试下ftp是否可用:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
示例:
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#systemctl disable firewalld.service
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled 


6.关闭后,在windows下命令框输入 ftp IP地址,出现以下内容基本是成功了。
C:\Users\Administrator>ftp 192.168.2.66
连接到 192.168.2.66。
220 (vsFTPd 3.0.2)
用户(192.168.2.66:(none)): test
331 Please specify the password.
密码:
500 OOPS: chroot
远程主机关闭连接。

7.消除“vsftp登录时提示:“vsftpd 500 OOPS: chroot””
解决方法(一):
/usr/sbin/setsebool -P ftp_home_dir 1
重启服务器

解决方法(二):
[root@localhost ~]# vim /etc/selinux/config
设置SELINUX=disabled
重启服务器

解决方法 (三):
setenforce 0

8.再次测试登录发现“Linux联接vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误”不要急。

vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 要修复这个错误,
方案一:用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。
方案二:在vsftpd(/etc/vsftpd/vsftpd.conf)的配置文件中增加下列两项中的一项 allow_writeable_chroot=YES

9.最后将每次开机自动启动vsftp服务。


10-02 10:25