使用 sudo 限制对目录的访问

使用 sudo 限制对目录的访问

如果我有一个文件夹/var/secret/并授予用户访问该sudo命令的权限,有没有办法允许他们完全访问其他地方,但是/var/secret/却完全不授予他们访问该命令的权限?

答案1

这几乎(但理论上)是不可能的。一旦用户拥有不受严格限制的 sudo 访问权限,他们就拥有 root 访问权限 - 例如,运行 sudo /bin/bash 将创建一个具有 root 权限的 bash shell,并且能够绕过 root 设置的任何机制。

理论上的方法是制定 sudo 规则,允许用户做任何他们想要/需要的事情,除了执行可以访问该资源的所有命令的能力——这在实践中几乎肯定是不可能的。

您也可以使用 SELinux 或 Apparmour 来限制访问目录的能力 - 但同样,具有 root 权限的人可以撤消此功能。

您可以通过保持加密并安装加密卷来阻止对指定资源的访问 - 我认为这不会阻止访问,但会阻止随意访问。[我注意到,当我使用 FUSE 以用户身份远程安装文件系统时,只有安装文件系统的用户才能访问它。当然,因为我是 root,所以我可以简单地 SU 返回该用户并查看文件 - 毫无疑问还有其他方法可以做到这一点] 此外,如果用户具有 root 访问权限时未安装资源,并且密钥未存储在内存中,他们也无法获取它。

相关内容