CentOS中部署vsftpd后,使用FTP连接时报错如下:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决方法:
方法1:
chroot_local_user=YES #锁定用户登录ftp后,只能到自己的家目录下,不能随便切换到其它目录。但是普通系统用户默认是可以在自己的家目录里写文件的,vsftp出于安全性要求,
如果锁定了用户的ftp登录目录,则所在目录不能有写权限。
方法2:
/etc/vsftpd/vsftpd.conf配置文件增加如下一行
allow_writeable_chroot=YES --可行。ftp目录必须要有写权限。
方法3:
添加例外
/etc/vsftpd/chroot_list 这个配置文件中加入用户名
修改完配置文件事要重启vsftpd服务。
听起来有点绕,按下面的配置就没问题了:
#chmod o-w /data/ftp
vi /etc/vsftpd/vsftpd.conf 修改下面三行。
chroot_local_user=YES --锁定ftp用户目录。不能随便切换到其它目录。
local_root=/data/ftp ---指定用户登录后的目录。或者不指定也行,系统用户登录ftp后,直接到用户自己的家目录。
allow_writeable_chroot=yes
如果要添加例外,即允许某个用户可以切换到其它目录,则添加下面两行参数,否则可以不用配置。
chroot_list_enable= YES --这个是启用用户列表,对应下一句的chroot_list文件。
chroot_list_file=/etc/vsftpd/chrot_list ---在这个文件中的用户则不受限制,可以切换到其它目录。这个文件需要手动创建。
这样,FTP用户登录后,只能在指定目录下进行读写操作,不能随便切换到其它目录。
原文链接:
http://www.wjhsh.net/rusking-p-5970391.html
使VSFTPD Ftp Server同时支持IPv4和IPv6网络
https://mawenjian.net/p/1301.html