初学者
你好,
因此,为了完成学校作业,我必须在 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
这是我在文件中更改的内容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)
我已经尝试取消注释chroot_list_enable=YES
并创建包含 chroot_list 中我想要的所有用户的文件。这似乎打破了事情。每当我取消注释有关的所有内容时chroot_lists,它按预期工作,但根据我的老师的说法,这是“错误的”。他并没有真正解释清楚,所以这就是我在这里问的原因!
有人能把我推向正确的方向吗?谢谢 :)
非常感谢<3
答案1
找到的文档man vsftpd.conf
写了以下内容,
chroot_list_enable
如果激活,您可以提供本地用户的列表,这些用户在登录时会被放置在其主目录中的 chroot() 监狱中。
到目前为止还好。但随后又继续,
chroot_local_user
如果设置为 ,则含义略有不同YES
。在这种情况下,该列表将成为不被放置在 chroot() 监狱中的用户列表。 [...]
继续阅读,我们会看到以下解释chroot_local_user
:
chroot_local_user
如果设置为YES
,则本地用户在登录后将(默认)放置在其主目录中的 chroot() 监狱中。 [...]
我在您的配置中看到您已启用chroot_local_user = YES
.所以当你“取消注释chroot_list_enable=YES
并创建包含 chroot_list 中我想要的所有用户的文件“您实际上正在创建一个用户文件不要在 chroot 环境中。