我正在尝试为特定目录设置新用户,但我希望他们只能看到一个目录(和子文件夹)。
例如:
我有一个包含以下目录的服务器:
apache-user www-data /var/sites/mercury.solar-domain.com
apache-user www-data /var/sites/venus.solar-domain.com
apache-user www-data /var/sites/earth.solar-domain.com
apache-user www-data /var/sites/mars.solar-domain.com
apache-user www-data /var/sites/jupiter.solar-domain.com
apache-user www-data /var/sites/saturn.solar-domain.com
apache-user www-data /var/sites/uranos.solar-domain.com
apache-user www-data /var/sites/neptune.solar-domain.com
我想添加一个新用户:jupiter
可以:
- 通过 ssh 登录服务器
- 能够通过 ssh运行
scp
,,,(例如:)php
mysql
rsync
$ mysql -u jupiter -p
- 用户唯一可见的目录是:/var/sites/jupiter.solar-domain.com
- 当用户登录时(通过 ssh),他不能进入系统的另一个目录(/usr、/root、/var/log 等...)
我已经结帐了chroot
,restricted shell
但我不认为它们对我来说是合适的工具(或者也许我不知道如何配置它们)。
使用 chroot 的问题是我无法更改目录的用户:组,例如:apache-user www-data /var/sites/jupiter.solar-domain.com
必须保持不变,我可以添加jupiter
到www-data
组,但无法更改文件夹的用户:组。
使用受限 shell 似乎用户只能使用一组受限的命令,如 scp、sftp、rsync、cvs 和 rdist,但我希望他们能够使用 mysql 和 php。
非常感谢您对如何解决问题的指导。
答案1
试试你的运气访问控制列表。
您可以将用户的主页设置为/var/sites/jupiter.solar-domain.com
。
然后设置 ACL 以授予apache-user
访问www-data
这些文件夹的权限。
您需要执行以下操作:
- 设置文件系统以使用 ACL
jupiter
使用主目录创建您的用户/var/sites/jupiter.solar-domain.com
- 限制他的环境(检查这个Redhat程序)(限制 shell 是你需要的,你可以添加命令
mysql
并php
在小路)。请注意,在 SSH 中,您还需要在 .bashrc 中设置 PATH。 - 将您的目录设置为具有以下权限的 apache-user:
setfacl -d -m u:apache-user:rw jupiter.solar-domain.com
- 还设置了组的权限
www-data
。