为什么能力足以解决混淆代理问题,而 ACL 却不能?
经过一番研究,我的理解程度如下:
- 具有适当权限的用户可以更改 ACL,而功能则由操作系统控制,从而使其更安全。
- 访问文件时会检查 ACL,而权限则随请求一起传递。这使得以下场景成为可能:如果 R 具有 root 访问权限,而 B 想要更改 A 的密码,B 会要求 R 这样做。虽然 /etc/passwd 文件显示 R 可以修改它,但由于传递的是 B 的权限,否则会显示权限,因此操作不会发生。
我是不是漏掉了什么?如果没有,如果功能总是提供相同的信息但完整性更高,我就看不出 ACL 的用途。
答案1
我不确定您在问什么,您将根电源与 DAC 和 ACL 混合在一起了。
根据定义,有了 root 或物理访问权限,您就可以访问任何文件、更改任何用户密码或进行任何您想要的系统更改。您不能使用 DAC 或 ACL 来限制 root。您可以使用 apparmor 或 selinux 等工具来限制 root,或者使用加密工具来限制访问。
例如,如果您使用加密的主目录,root 就无法访问数据,即使使用命令更改密码也是如此passwd
。
acl 用于为用户提供对文件的更细粒度控制,而无需授予 root 访问权限。使用标准 DAC,您只有 3 个选项:用户、组和其他。在多用户系统中,您可以使用 acl 允许任意数量的用户访问文件。