我在 Centos 7 上运行 ProFTP。我已成功安装服务器并创建了可以登录服务器的用户。问题是用户始终可以访问服务器的根目录,而不是被 chroot 到他们的主目录。此外,即使我在选项文件中将其关闭,根用户也可以登录。
摘录自 /etc/passwd:
ftpadmin:x:1003:1005::/opt/qnap/:/bin/false
在 /etc/shells 中:
/bin/sh
/bin/false
/bin/bash
/usr/bin/sh
/usr/bin/bash
摘自 /etc/proftpd.conf:
# Cause every FTP user except adm to be chrooted into their home directory
DefaultRoot ~ adm
RootLogin off
# Use pam to authenticate (default) and be authoritative
AuthPAMConfig proftpd
AuthOrder mod_auth_pam.c* mod_auth_unix.c
谁能告诉我发生了什么事?
答案1
根据我的阅读 http://www.proftpd.org/docs/directives/linked/config_ref_DefaultRoot.html你的语法是错误的,而且我怀疑只有 Adm 组的成员才会 chroot。我会尝试将行改为
DefaultRoot ~
将每个人都 Chroot 到他们的主目录(因为这样干净、简单,而且我认为管理员不应该使用 FTP)。
或者,我想知道
DefaultRoot ~ users,!adm
将对除 adm 组成员之外的所有人执行 Chroot 操作。
答案2
进一步的测试表明这是一个客户端问题。
我原以为 DefaultRoot 会强制任何 FTP 客户端使用该目录 - 但事实似乎并非如此。
FileZilla
似乎很好地遵守了 DefaultRoot 选项,而FTP Client Pro
(IOS)似乎完全忽略了它。