如何让一个vsftpd写入非默认`/ files`文件夹?

我是新来的FTP,我一直在关注这个DigitalOcean教程 。

除了用户(至less在FileZilla中)不能写入/home/user/ftp文件夹的根目录(仅限于/home/user/ftp/files )之外,一切都很好。 尝试在根文件夹中创build将导致:

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

命令:STOR asdfa

响应: 553无法创build文件

错误:关键文件传输错误

我扫描/etc/vsftpd.conf文件的文件的files但我无法find任何地方的configuration。 我以前使用过FTP,一般情况下你会丢弃文件,而不需要导航到文件夹。

这是在Ubuntu的某种问题吗?

是否有可能只允许用户写入根目录,如果是的话,如何?

您的默认/etc/vsftpd.conf最初不包括configuration文件支持的所有可能的指令。 其余的可以从man vsftpd.conffind。

你的问题的答案可以在下面的教程中find:

当用户被限制到特定的目录时,FTP通常更安全。 vsftpd通过chroot监狱来实现这一点。 当为本地用户启用chroot时,默认情况下它们被限制在主目录中。 但是,由于vsftpd保护目录的方式,它不能被用户写入。 对于只能通过FTP进行连接的新用户来说,这是没问题的,但是现有的用户可能还需要写入他们的主文件夹(如果他们也是shell访问)。

换句话说,你已经创build了/home/user/ftp文件夹来允许vsftp使用chroot jail,而不需要将home文件夹/home/user/只读给用户。 因此,你已经在做最好的实践,不应该担心错误,因为这是正常的和理想的行为。

这是可能的,但极不build议禁用chroot监狱。

如果这只是为了改变用户体验,那么login后可以通过添加/修改vsftp.conf指令直接尝试追加到/home/user/ftp/files

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