我的系统中有 3 个用户:
- 用户1
- 用户2
- 用户3
我在 ubuntu 14.04 上安装了 proftpd。使用DefaultRoot
指令我可以将用户关在特定目录中,例如 /home/%u/test
但是如果我只需要为一个用户设置目录 /srv/www/domain.com (例如:user1),该怎么办?
答案1
您必须使用 mount --bind 来欺骗它,就像您想要在该目录中的用户一样
mount --bind /srv/www/domain.com /home/user1/test/domain.com
答案2
您还可以使用可选的组参数DefaultRoot
指令。例如,假设每个用户都属于同名的组:
- 用户1 属于组1
- 用户2 属于组2
- 用户3属于组3
DefaultRoot
ProFTPD按照其配置文件中出现的顺序评估指令,并使用第一个匹配的指令chroot
。因此,您可以使用以下配置,仅为用户 1使用不同的目录:
# Users in group1 will be jailed to this specific directory...
DefaultRoot /srv/www/domain.com group1
# ...while all other users get their own home directory
DefaultRoot /home/%u/test
使用组名DefaultRoot
而不是用户名的原因是,组名可用于一次覆盖/处理大量用户,而不需要DefaultRoot
为每个用户设置许多单独的指令。
ProFTPD 的Chroot 指南。
希望这可以帮助!