如何创建可以登录 SSH 并执行一组命令的新用户

如何创建可以登录 SSH 并执行一组命令的新用户

我正在尝试为特定目录设置新用户,但我希望他们只能看到一个目录(和子文件夹)。

例如:

我有一个包含以下目录的服务器:

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,,,(例如:)phpmysqlrsync$ mysql -u jupiter -p
  • 用户唯一可见的目录是:/var/sites/jupiter.solar-domain.com
  • 当用户登录时(通过 ssh),他不能进入系统的另一个目录(/usr、/root、/var/log 等...)

我已经结帐了chrootrestricted shell但我不认为它们对我来说是合适的工具(或者也许我不知道如何配置它们)。

使用 chroot 的问题是我无法更改目录的用户:组,例如:apache-user www-data /var/sites/jupiter.solar-domain.com必须保持不变,我可以添加jupiterwww-data组,但无法更改文件夹的用户:组。

使用受限 shell 似乎用户只能使用一组受限的命令,如 scp、sftp、rsync、cvs 和 rdist,但我希望他们能够使用 mysql 和 php。

非常感谢您对如何解决问题的指导。

答案1

试试你的运气访问控制列表

您可以将用户的主页设置为/var/sites/jupiter.solar-domain.com

然后设置 ACL 以授予apache-user访问www-data这些文件夹的权限。

您需要执行以下操作:

  1. 设置文件系统以使用 ACL
  2. jupiter使用主目录创建您的用户/var/sites/jupiter.solar-domain.com
  3. 限制他的环境(检查这个Redhat程序)(限制 shell 是你需要的,你可以添加命令mysqlphp小路)。请注意,在 SSH 中,您还需要在 .bashrc 中设置 PATH。
  4. 将您的目录设置为具有以下权限的 apache-user:setfacl -d -m u:apache-user:rw jupiter.solar-domain.com
  5. 还设置了组的权限www-data

相关内容