Centos 6.5 上有一个 FTP 服务器 (proftpd),Auth mech 是 AUTH_FILE,默认 ROOT 是 /var/ftp,所有用户都应将文件放入此目录,但只有 2 个用户可以获取或列出这些文件。是否可以拒绝少数用户执行某些 FTP 命令?
我的 proftpd 配置如下:
DefaultRoot /var/ftp/
AuthPAMConfig proftpd
AuthOrder mod_auth_file.c mod_auth_unix.c
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group
AuthPAM off
RequireValidShell off
/etc/proftpd/ftpd.group的内容是:
ftp_group:x:50:user1
用户文件 /etc/proftpd/ftpd.passwd 如下所示:
user1:$1$somesaltblablablablablablablabd:9999:9999::/var/ftp:/bin/false
user2:$1$somesaltblablablablablablablabd:9999:9999::/var/ftp:/bin/false
user3:$1$somesaltblablablablablablablabd:9999:9999::/var/ftp:/bin/false
User1 应该是无法获取或列出 FTP 服务器上的文件的用户。这可能吗?
答案1
与此相关文档(在示例部分)我使用 LIMIT 命令来拒绝 FTP 命令。以下内容添加到 proftpd.conf:
<Directory /var/ftp>
<Limit ALL>
DenyAll
</Limit>
<Limit DIRS READ>
AllowUser user1
AllowUser user2
DenyAll
</Limit>
</Directory>
User3 可以使用 LIST 命令(ls
),但是 proftpd 拒绝该命令并返回空结果,而另一个用户(User1 和 User2)可以使用此命令。