如何允许 vsftpd 写入默认“/files”以外的文件夹?

如何允许 vsftpd 写入默认“/files”以外的文件夹?

我是 FTP 新手,我一直在关注本 DigitalOcean 教程

一切正常,只是用户(至少在 FileZilla 中)无法写入其/home/user/ftp文件夹的根目录,只能写入/home/user/ftp/files。尝试在根文件夹中创建会导致:

命令:PASV 响应:227 进入被动模式 (104,131,29,61,191,224)。

命令:STOR asdfa

回复:553 无法创建文件

错误:严重文件传输错误

我扫描了/etc/vsftpd.conf文件以查找该词files,但在任何地方都找不到该配置。我以前使用过 FTP,通常你只需拖放文件,文件就会在那里,而无需导航到文件夹。

这是chownUbuntu 中的某种问题吗?

是否可以只允许用户以 root 身份写入?如果可以,该怎么做?

答案1

您的默认设置/etc/vsftpd.conf最初不包含配置文件支持的所有可能的指令。其余的可以从中找到man vsftpd.conf

您的问题的答案可以在教程您正在关注:

当用户被限制在特定目录中时,FTP 通常更安全。vsftpd 使用 chroot jails 来实现这一点。当为本地用户启用 chroot 时,默认情况下他们被限制在其主目录中。但是,由于 vsftpd 保护目录的方式,该目录必须不可由用户写入。对于只应通过 FTP 连接的新用户来说,这很好,但如果现有用户也具有 shell 访问权限,则可能需要写入其主文件夹。

换句话说,您已创建/home/user/ftp文件夹以允许 vsftp 使用 chroot jails,而无需将主文件夹设置/home/user/为对用户只读。因此,您已在遵循最佳实践,不必担心错误,因为这是正常且理想的行为。

这是可能的但强烈不建议禁用 chroot jail。

如果这只是为了改变用户体验,您可以尝试在/home/user/ftp/files登录后通过添加/修改 vsftp.conf 指令直接附加:

user_sub_token=$USER
local_root=/home/$USER/ftp/files

答案2

您必须/home/user/ftp再次使该目录可写(在教程中它被禁用)

sudo chmod a+w /home/sammy/ftp

并在 vsftp 配置中启用可写 chroot:

allow_writeable_chroot=YES

然而,这个选项被认为危险的。它容易受到“咆哮野兽”的攻击。您可以在此处找到有关该风险的更多信息:

相关内容