环境
- CentOS Linux release 7.5.1804 (Core);
- vsftpd: version 3.0.2;
背景
安装完vsftpd之后,想将ftp用户的主目录作为器上传文件的目录,所以手动修改了ftp用户主目录的权限。
chmod 777 -R /data/ftp/
结果就悲催了,ftp访问报错:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
原因
这是因为从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
解决
所以,解决的办法有两个:
1.去除主目录的写权限
chmod a-w /data/ftp
2.修改vsftpd的配置
编辑/etc/vsftpd/vsftpd.conf
,增加一行:
allow_writeable_chroot=YES
运行systemctl restart vsftpd
重启服务。
参考文章: