Linux用户只能在一个位置访问和执行

Linux用户只能在一个位置访问和执行

我正在尝试找到解决方案:

我使用 useradd 命令创建了一些用户。我想允许此用户在特殊位置(例如 /var/www/)上执行任何他想做的事情。他可能需要上传或下载文件、提取压缩文件夹、列出文件和文件夹、更改权限等。

他应该被限制做任何其他事情,例如创建另一个用户/组、使用 sudo、安装/卸载任何东西,甚至访问其他文件夹或任何其他东西。 有可能实现吗? 有人能尽快帮助我吗?

仅供参考:操作系统:Linux,任何版本平台:AWS

答案1

创建的用户useradd没有须藤默认访问,并且无法安装包,添加用户等...仅可以做到这一点(通过须藤或者直接从 shell 或脚本中获取)。

给用户用户主目录(有几种方法可以做到这一点,使用命令例如[查看底部附近])。

并设置访问权限

例如/home/theuser(sudo,或者先成为 root)

sudo mkdir /home/theuser
sudo chmod 700 /home/theuser
# next create / move user home dir to /home/theuser
sudo usermod -m -d /home/theuser theuser
# give a password to the user
sudo passwd theuser

用户将登录 /home/theuser,可以在那里做任何他想做的事情。创建、删除文件和目录。上传文件(假设他被允许使用远程控制通过上传文件同步例如)。

你的问题中的最后一点甚至访问其他文件夹“。假设其他主目录 - 通常 - 只能由其所有者访问(访问方式如drwx------0700),您真的希望用户无法看到系统文件等吗……?

在这种情况下,你必须将用户限制在其主目录中,参见此文档在 AskUbuntu 上,实际上并不特定于 Ubuntu。

我之所以询问文件系统,是因为您还可以使用 ACL(访问控制列表)在文件系统的任何级别为特定用户设置特定访问权限。例如,阻止用户访问系统的某些特定区域。有关 ACL 的更多信息

答案2

您可以将用户放入 cgroup 和 chroot 中。如果您还想使用 SSH,可以看看 Jailkit,它允许您监禁 ssh 用户。实际上,cgroup 加上服务器上的严格权限就足够了。

相关内容