更新后vsFTPd停止工作

我刚从Ubuntu Server 11.10(Oneiric Ocelot)更新到Ubuntu 12.04 LTS(精确穿山甲)。

它更新了我的vsFTPd安装,似乎发生了一些变化:/我使用PAM身份validation。 有什么可以改变导致这个?

尝试连接到FTP服务器时出现此错误:

500 OOPS: vsftpd: refusing to run with writable root inside chroot() 

我试着用谷歌搜索它,它说要在配置文件中添加allow_writable_root=YES – 但是当我尝试这个并尝试重新启动vsftpd时它无法重启。 为什么?

这是我实际修复它的方式:

 wget http://http.us.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-3_amd64.deb -O vsftpd.deb dpkg -i vsftpd.deb echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf service vsftpd reload 

瞧:)

我也有这个问题并且认为这是因为新的vsFTPd更新增强了安全性,所以在此期间我使用这个解决方案。

  1. 我通过在终端中使用这个来修改我的FTP用户首次登录的文件夹(根文件夹): sudo chmod aw /home/user

    您可以将/home/user更改为FTP用户的根文件夹。

  2. 通过使用GUI在文件夹中创建一个子文件夹,或者如果你只有一个终端,它是: sudo mkdir /home/user/newfolder

现在,您应该能够在“newfolder”中登录并阅读。 您将无法使用chmod aw从FTP客户端写入根文件夹本身,因此这是子文件夹的原因,您可以在那里。

我想在不太长的时间里会有一个修复,但在此期间我希望这会有所帮助。

有人向后移植了该function,将版本3.0.0中的allow_writeable_chroot=YES添加到2.3.5(参见此博客条目 )。

要在Ubuntu 12.04(Precise Pangolin)上安装,请以root身份运行以下命令:

 add-apt-repository ppa:thefrontiergroup/vsftpd apt-get update apt-get install vsftpd echo allow_writeable_chroot=YES >> /etc/vsftpd.conf 

请注意 ,在vsftpd-ext中似乎有一个选项 allow_writable_chroot=YES – 注意mssing e ! (或者这是博客文章中的拼写错误?)

vsFTPd 3.0.0添加了一个配置选项,

 allow_writeable_chroot=YES 

再次启用以前的行为(来源: 修复500 OOPS:vsFTPd:拒绝在chroot()内部使用可写根运行 ,来自Brian K. White的评论)。

不幸的是,Ubuntu尚未打包3.0.0。 所以在此期间,降级到一些旧版本。 例如,我在Ubuntu 12.04(Precise Pangolin)上使用这个: http : //packages.ubuntu.com/oneiric-updates/vsftpd

作为用户Kristian做事的另一种方式:它对我有用。 我使用的用户名是’john’。 将其替换为您想要的用户名。

sudo chmod aw /home/john – 删除所有用户删除或修改文件的权限。

sudo mkdir /home/john/ftp – 在用户’john’的主目录中创建一个名为’ftp’的文件夹

sudo chown -Rv john.john /home/john/ftp – 将dir的所有权更改为“john”组和用户“john”。

为什么?

在错误1065714中从我自己的答案中采取并改编。

为了使稳定版本保持稳定,发布后的更新仅在特定情况下进行考虑。 此处列出了流程和所需标准的详细信息: https : //wiki.ubuntu.com/StableReleaseUpdates#When

这确实使得LTS版本的用户难以具有可写的chroot,因为上游vsftpd项目在12.04发布时决定在没有此function的情况下发布。 现在12.04已经发布且修复不符合上述标准,我认为这不会改变为12.04。 但请注意, 稳定版本更新团队对此做出了最终决定,并且尚未向他们提出更新。

如果您希望通常为想要使用“allow_writeable_chroot”选项的用户提供较新版本的vsftpd,则backports存储库是适合此类的场所。 使用backport,想要该function的用户可以只添加backports存储库并从那里安装vsftpd。 你可以在这里找到更多关于backports以及如何申请的信息: https : //wiki.ubuntu.com/UbuntuBackports

与此同时,The Frontier Group已经提供了PPA,如lumbric的回答所述。 或者您可以使用其中一个适用于您的其他答案。