限制具有 sudo 权限的用户访问主文件夹

限制具有 sudo 权限的用户访问主文件夹

我有一个 Linux 开发服务器,其中一些项目位于属于不同用户的主文件夹中。由于服务器的性质,某些用户可以执行 sudo -s 来执行某些管理任务。有什么方法可以防止用户窥探其他主文件夹(或特定文件夹)?

答案1

如果用户运行命令,sudo那么他们就像 root 一样运行该命令,因为他们是 root。因此,您无法阻止可以使用 sudo 的用户切换到目录。

如果您不希望用户访问目录中的文件,则不能授予他们计算机上的 root 访问权限。

答案2

如果有人可以以 root 身份运行任意命令,那么他们就可以切换到任何用户帐户,这样他们就可以执行该用户可以执行的任何操作。

实际上,您有三种选择。

  • 特权用户只需要执行非常具体的任务。然后让他们只使用 sudo 运行一些特定的命令。仅当这些命令不允许“shell 转义”时,即无法利用这些命令来执行其他程序时,这才是安全的。例如,包管理(允许sudo apt-get install …)通常允许通过将命令注入包内来进行 shell 转义(如果从已知来源正确检查包签名,这可能是可以的)。
  • 特权用户需要管理权限,但他们不需要在“真实”计算机上使用它,他们所需要的只是在一些计算机(例如,使用网络设置)。然后为特权用户创建虚拟环境(例如虚拟机、lxc 容器或临时 Linux 命名空间),并且不要在虚拟环境中提供其他用户的数据。
  • 使用社交控制而不是技术控制:给予用户广泛的权限,但让他们知道任何侵犯隐私的行为都将受到严厉处理。如果用户是员工,这通常是可以的,但这取决于数据的敏感程度。

答案3

根据他们需要执行的操作,您可以通过将如下行放入 sudoers 文件中来授予他们仅对某些命令的 sudo 访问权限:

%devgroup ALL=(ALL): /bin/commandname

这使得 devgroup 组的成员只能以 root 身份执行 /bin/commandname (当然,对于这个特定的示例,您还希望将它们从wheel组中删除)。

相关内容