当前位置: 首页>>技术教程>>正文


更新后 vsFTPd 停止工作

,

问题描述

我刚刚从 Ubuntu Server 11.10(Oneiric Ocelot)更新到 Ubuntu 12.04 LTS(Precise Pangolin)。

它更新了我的 vsFTPd 安装,似乎有些东西发生了变化 :/我使用 PAM 身份验证。什么变化可能导致此问题?

当我尝试连接到 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. 我通过在终端中使用以下命令来 chmod 我的 FTP 用户首次登录时进入的文件夹(根文件夹):sudo chmod a-w /home/user \n您可以将 /home/user 更改为您的 FTP 用户的根文件夹。

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

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

我猜想在 not-so-long 时间内会有一个修复,但与此同时我希望这会有所帮助。

次佳方案

有人将该功能从版本 3.0.0 反向移植到 2.3.5,添加了 allow_writeable_chroot=YES(参见 this blog entry )。

要在 Ubuntu\xa012.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 中的 there seems to an option allow_writable_chroot=YES – 注意缺少 e!(或者这是博客文章中的拼写错误?)

第三种方案

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

allow_writeable_chroot=YES

再次启用以前的行为(来源:Fixing 500 OOPS: vsFTPd: refusing to run with writable root inside chroot(),Brian K. White 的评论)。

不幸的是,Ubuntu 尚未打包 3.0.0。因此,在此期间,请降级到某个较旧的版本。例如,我在 Ubuntu\xa012.04 (Precise Pangolin) 上使用这个:http://packages.ubuntu.com/oneiric-updates/vsftpd

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14641.html,未经允许,请勿转载。