vsFTPd在更新后停止工作


17

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

它更新了我的vsFTPd安装,似乎有所更改://我使用PAM身份验证。有什么变化可以导致这种情况?

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

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

我尝试使用Google搜索,并说要添加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

和瞧:)


您为wget参数提供的链接已失效。可能3.0.2-3是因为版本已发布。面对此问题的任何人,都应该访问该网站以获得正确的链接。上面提到的链接适用于64位平台。要查找用于其他平台(例如32位)的此程序包的链接,请转至此页面并向下滚动至Download vsftpd部分。
trejder 2013年

Answers:


11

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

  1. 我在终端上使用以下命令更改我的FTP用户首次登录时进入的文件夹(根文件夹): sudo chmod a-w /home/user

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

  2. 通过使用GUI或在只有终端的情况下,在文件夹中创建一个子文件夹: sudo mkdir /home/user/newfolder

现在,您应该可以登录“ newfolder”并在其中读取内容了。您将无法使用chmod aw从FTP客户端写入根文件夹本身,因此这是创建子文件夹的原因,您可以在其中。

我想将在不太长时间内解决此问题,但与此同时,我希望这会有所帮助。


我唯一能找到的解决方法是安装vsftpd-ext并替换vsftpd,它允许使用allow_writable_root,但它仅以.tar.gz文件的形式出现,并且我对linux很陌生,似乎无法获取它。 build:/最后,我只是强制降级到以前运行的vsftpd的旧版本
King先生

为我工作。homedir的所有者必须创建文件夹,而不是根目录。
OrangeTux 2012年

是不是Linux绝地大师们会“禁止”执行chmod aw?既然您将授予666许可?

9

有人向后移植了allow_writeable_chroot=YES要从3.0.0版本添加到2.3.5版本的功能(请参阅此博客条目)。

要在Ubuntu 12.04(精确的穿山甲)上安装,请以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!(或者这是博客文章中的错字?)


1
+1-这无疑是最好的选择,这要感谢The Frontier Group提供此PPA。但是用户应注意,这会使您“脱节”。由于其功能的本质,vsftpd在安全性方面有所暴露,并且将来如果在vsftpd中发现漏洞,那么用户将依赖PPA所有者对其进行更新,否则用户将需要找到其他解决方案。那时候。订阅ubuntu-security-announce邮件列表并注意vsftpd安全公告是明智的选择(如果您沿这条路走的话)。
罗比·巴萨克

我们的DEVOPS团队创建了该程序包-如果您有任何需要帮助解决的个人问题,请在博客文章上发表评论,他们将为您提供帮助。
mlambie


6

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

allow_writeable_chroot=YES

再次启用以前的行为(来源:Fixing 500 OOPS:vsFTPd:拒绝在chroot()中以可写根运行, Brian K. White发表评论)。

不幸的是,Ubuntu尚未打包3.0.0。因此,与此同时,请降级到某些旧版本。例如,我在Ubuntu 12.04(精确的穿山甲)上使用了这个:http : //packages.ubuntu.com/oneiric-updates/vsftpd


您能添加说明如何安装链接的Oneiric软件包吗?我应该手动下载软件包吗?我想将oneiric更新添加到我的存储库中会使事情变得很混乱。
lumbric

0

作为Kristian用户做事的另一种方式是:它为我工作。我使用的用户名是“ john”。将其替换为所需的用户名。

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

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

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


0

为什么?

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

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

这确实使LTS发行版的用户难以拥有可写的chroot,因为上游vsftpd项目决定在发布12.04时不使用此功能来发行。现在已经发布了12.04,并且该修复程序不满足上述条件,我认为12.04不会改变。但是请注意,稳定版本更新小组对此做出了最终决定,并且尚未向他们提出更新建议。

如果您希望对希望使用“ allow_writeable_chroot”选项的用户普遍提供更新版本的vsftpd,那么backports存储库是一个合适的场所。使用反向端口,想要该功能的用户可以仅添加反向端口存储库并从那里安装vsftpd。您可以在此处找到有关反向端口以及如何请求反向端口的更多信息:https : //wiki.ubuntu.com/UbuntuBackports

同时,如lumbric的回答所述,Frontier Group已提供了PPA。或者,您可以在这里使用其他适合您的答案之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.