vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

当我们限定了用户不能跳出其主目录之后,使该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()  

这个问题是由于下面的更新造成的:

 – Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.  

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。

例如阿里云中:
chmod a-w /alidata/www

ps:
网上还有另一种解决办法

或者你可以在vsftpd的配置文件中增加下列两项中的一项:

allow_writeable_chroot=YES

经过测试增加这个配置后 vsftpd 无法启动。

vsftpd 出现 Redirecting to /bin/systemctl restart vsftpd.service解决办法

CentOS 7系统下安装vsftpd 软件后,使用service vsftpd restart 或者 /etc/init.d/vsftpd restart,出现如下提示。

提示:Redirecting to /bin/systemctl restart  vsftpd.service
如下:
[root@localhost bibeknam]# service vsftpd restart
Redirecting to /bin/systemctl restart  vsftpd.service
Job failed. See system logs and 'systemctl status' for details.

解决办法使用如下命令:

$ systemctl enable vsftpd.service

$ systemctl start vsftpd.service

参考资料:
http://serverfault.com/questions/482971/error-while-trying-to-start-vsftpd-server

CentOS 7安装vsftpd的方法

Step 1: 安装 vsftpd

yum -y install vsftpd

Step 2: 配置 vsftpd

vim /etc/vsftpd/vsftpd.conf

修改如下配置
anonymous_enable=NO

local_enable=YES

write_enable=YES

chroot_local_user=YES

保存并退出 :wq .

重启 vsftpd service:

systemctl restart vsftpd

设置开机启用:

systemctl enable vsftpd

Step 3: Firewall 设置

ftp 21 端口设置:

firewall-cmd –permanent –add-port=21/tcp

reload firewall:

firewall-cmd –reload

参考资料

How to Install and Configure vsftpd on CentOS 7