我想设置一个匿名的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文件中列出了两次。 那绊倒了我。