运行时ls -dZ /
,我得到以下输出:
system_u:object_r:root_t:s0
用户和角色字段对涉及文件的访问权限有任何影响吗?它们有什么意义吗?
答案1
总结:是的,它们会产生影响,但对您的系统来说,它们可能不会产生影响。
首先介绍一下背景:
大多数搭载 SELinux 的 Linux 发行版都使用基于所谓的参考政策,其中包含可用作站点特定定制的基础或按原样使用的功能策略。
您要查看的属性包括:SELinux 用户、角色以及文件或进程的类型(或域)。在 SELinux 中,登录用户被映射到 SELinux 用户,然后 SELinux 用户被分配到他们被允许执行的角色。每个角色都有一组可以转换到的域。通过这种方式,可以切换用户的角色(如果newrole
允许用户更改角色,用户可以使用命令切换自己的角色)以提供或拒绝对完全不同的域集的访问。
对于文件,文件的访问是根据与文件所标记的用户和角色相匹配的进程的用户和角色来进行调解的。但是,对于不受限制的用户(以及在您自己的自定义策略中,只要您愿意),这些可能会被忽略,只使用类型,或者类型也被忽略。
如果你使用默认有针对性的策略、用户和角色几乎完全没有使用,因为此策略实际上很少用于基于用户或角色的访问控制,而是专注于限制面向外部的服务。此策略确实支持限制用户,但默认情况下处于关闭状态,并且所有交互式用户登录均不受限制。
在下面严格的或者毫升但是,基于用户和角色的访问控制使用更为频繁。用户始终受到这些策略的限制,甚至root
通过将 root 用户置于sysadm_r
角色中,用户可以执行的操作也受到限制。请注意毫升策略导致 X 中断,因此您通常不会在工作站上看到它。
你可能遇到的大多数 SELinux 系统只使用有针对性的政策;很少发现严格的或者毫升在使用中,尽管您会在需要基于用户和角色的安全性的地方看到它(例如国防承包商)。在这些情况下,您还可能会看到他们已经定制了正在使用的用户和角色。
可以从头开始编写完整的 SELinux 策略,但由于这是很多工作量很大,而且它本身也会带来一系列噩梦(例如文档或缺乏文档),所以你不会经常看到它。不过,如果你想看一个基于角色的访问控制的演示,IBM 的这个示例从头开始编写的政策服务很好。
(完整的答案可能更加理论化,所以我就只说这些了。日复一日,SELinux 用户指南是你的朋友,对于真正棘手的 SELinux 问题,邮件列表也是你的朋友。