vsftpd:拒绝在chroot中使用可写根目录运行

我想设置一个匿名的FTP服务器(能够上传文件)。 这是我的configuration文件:

listen=YES anonymous_enable=YES anon_root=/var/www/ftp local_enable=YES write_enable=YESr. anon_upload_enable=YES anon_mkdir_write_enable=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES dirmessage_enable=YES use_localtime=YES secure_chroot_dir=/var/run/vsftpd/empty rsa_cert_file=/etc/ssl/private/vsftpd.pem pam_service_name=vsftpd 

但是,当我尝试连接它:

 kan@kan:~$ ftp yxxxng.bej Connected to yxxx. 220 (vsFTPd 2.3.5) Name (yxxxg.bej:kan): anonymous 331 Please specify the password. Password: 500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed Can anyone help ? 

您的write enable设置为YESr而不是YES也尝试添加

allow_writeable_chroot=YES

通常这有帮助

sudo add-apt-repository ppa:thefrontiergroup/vsftpd
sudo apt-get update
sudo apt-get install vsftpd

将vsftpd更改为较低版本。 这是一个在vsftpd 2.3.5中引入的安全补丁

http://www.benscobie.com/fixing-500-oops-vsftpd-refusing-to-run-with-writable-root-inside-chroot/

在configuration中尝试allow_writeable_chroot = YES或allow_writable_chroot = YES,

如果这不起作用,降级。

要么做两个其他的答案(降级,或通过禁用检查降低安全性)

另一个select是通过对root chroot文件夹拥有正确的权限来解决问题。

Qout一个不错的博客post,马雷克已经联系了

– 在chroot()中添加一个可写入根目录的configuration错误检查。 这可能会咬人们不小心打开chroot_local_user,但这就是生活。

chroot根目录是用户可写的,这是马雷克提到的更新不允许的。

所以修复它需要你:

改变chrooted home根的写权限

FE

 chmod aw /home/user 

强迫你的用户上传到一个子目录。

对我来说,诀窍就是要确保“homedir”不能写入有问题的用户

 chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 

并注释掉

 #chroot_local_user=YES 

不是说chroot_local_user在3.0.3标准的/etc/vsftpd.conf文件中列出了两次。 那绊倒了我。