设置 vsftp

Inn*_*B68 6 chroot vsftpd

初学者

你好,

所以对于一个学校作业,我必须在 OpenSUSE 上设置一个 FTP 服务器(vsftp)。老师告诉我们使用 chroot 列表,但是每当我使用 chroot 列表时,所有用户都可以完全控制整个文件系统。我究竟做错了什么?

情况 包含数据的目录。该目录内有 2 个其他目录。其中一件属于赫尔曼,另一件属于弗朗茨。Franz 和 Herman 应该能够在他们自己的目录中工作,所以我将他们的主目录指向了各自的目录(/data/Franz 和 /data/Herman)。Herman 不应该在 Franz 的目录中读写,反之亦然。最后,我将目录的权利和所有权更改为如下所示:

   drwxrwxr-x 15 Herman FTP 4096 May 13 15:23 Herman
   drwxrwxr-x 18 Franz  FTP 4096 May 13 14:48 Franz
Run Code Online (Sandbox Code Playgroud)

以下是我在vsftpd.conf文件中更改的内容。除此之外,一切都没有受到影响和默认。

   write_enable = YES
   local_enable = YES
   chroot_local_user = YES
   allow_writeable_chroot = YES
   anonymous_enable = NO
   listen = YES
   listen_ipv6 = NO (we may do not use IPv6)
Run Code Online (Sandbox Code Playgroud)

我已经尝试chroot_list_enable=YES在 chroot_list 中取消注释并创建包含我想要的所有用户的文件。这似乎打破了事情。每当我取消对chroot_lists 的所有注释时,它都会按预期工作,但根据我的老师的说法,这是“错误的”。他并没有真正解释清楚,所以这就是我在这里问的原因!

谁能把我推向正确的方向?谢谢 :)

非常感谢 <3

roa*_*ima 6

找到的文档man vsftpd.conf写了以下内容,

chroot_list_enable 如果激活,您可以提供本地用户的列表,这些用户在登录时位于其主目录中的 chroot() jail。

到此为止。但它接着继续,

如果chroot_local_user设置为 ,则含义略有不同YES。在这种情况下,该列表将成为一个不会被放入 chroot() jail 的用户列表。[...]

稍微进一步阅读,我们会看到对 的解释chroot_local_user

chroot_local_user如果设置为YES,则本地用户将(默认情况下)在登录后置于其主目录中的 chroot() 监狱中。[...]

我在您的配置中看到您已启用chroot_local_user = YES. 因此,当您“取消注释chroot_list_enable=YES并创建包含我在 chroot_list 中想要的所有用户的文件”时,您实际上是在创建一个您在 chroot 环境中不想要的用户文件。