Linux - 将子目录设置为用户/组的根目录

Linux - 将子目录设置为用户/组的根目录

我们当前仅使用 root ssh 登录到我们的服务器,并尝试创建只能访问子目录的“开发人员”状态用户。

我们是否可以设置它,以便当开发人员登录时,他的根目录是一个子目录,并且所有父目录都被隐藏?

例如:root 登录:root/www/location/ 开发人员登录:location/

谢谢。

答案1

我认为你想要的是chroot

该教程应该足够了。SSH 无法 chroot(更改 root 权限)让用户将他们禁锢在自己的主目录中。

这个过程有点复杂(如本指南底部所述),因为所有必需的设备、程序和库都需要在用户的路径中可见。

您也可以尝试监狱工具。我以前从未听说过这个,但它似乎能满足你的需要。

现在我已经回答了你最初的问题,值得注意的是,可能更容易(并且足够好)的是拒绝开发用户对你不想让他们接触的东西的写访问权限。chroot 实际上是为非 shell 用户和 SFTP 设计的。

答案2

您可以通过更改文件 /etc/passwd 中开发人员的关联记录来指示开发人员的主目录,如下所示

developer:x:1000:0:developer,,,:HOME_DIRECTORY:/bin/bash

HOME_DIRECTORY 是开发人员登录时所在的位置

答案3

你在找什么?

他们建议

  1. 以具有 sudo 权限的用户身份登录。
  2. 输入此命令:

sudo nano /etc/passwd

  1. Nano 文本编辑器打开。找到您要更改主目录的用户名(最后添加的用户在最后),然后输入您想要的任何目录。例如,用户 jack 的主目录在此文件中设置为 /home/jack:

jack:x:1000:1000:Jack,,,:/home/jack:/bin/bash

但我希望他使用 /home/whatever 作为主目录。因此我只需将上面的行更改为:

jack:x:1000:1000:Jack,,,:/home/whatever:/bin/bash

现在,当用户 jack 登录时,他的主目录将是 /home/whatever。

我不确定这种方法是否会隐藏父目录,但您可以限制访问。

编辑:根据评论添加描述。

相关内容