用户和angular色标签对SELinux中的文件有什么影响?

当运行ls -dZ / ,我得到以下输出:

 system_u:object_r:root_t:s0 

用户和angular色字段是否可以影响涉及文件的访问权限? 他们的意思是什么?

TL; DR :是的,他们可以有效果,但在你的系统上,他们可能不会。


首先是一些背景:

大多数发布SELinux的Linux发行版都使用基于所谓的引用策略的策略 ,该策略包含一个function策略,可用作特定于站点的自定义的基础,或者按原样使用。

您正在查看的属性是:SELinux用户,angular色以及文件或进程的types(或域)。 在SELinux中,login用户被映射到SELinux用户,然后SELinux用户被分配到他们被允许执行的angular色。 每个angular色都有一组可以转换到的域。 通过这种方式,可以切换用户的angular色(用户可以使用newrole命令切换自己的angular色(如果允许更改angular色),以提供或拒绝访问完全不同的一组域。

在文件的情况下,对文件的访问是基于匹配用户和文件所标记的angular色的进程的用户和angular色进行的。 但是,在非限制用户的情况下(并且只要您想要,在您自己的自定义策略中),这些可能会被忽略,只有使用的types或types被忽略。

如果您使用的是默认的目标策略,那么用户和angular色几乎完全没有用,因为这个策略在基于用户或angular色的访问控制方面确实做得很less,而是侧重于限制外向服务。 此策略对限制用户有一定的支持,但默认情况下是closures的,并且所有交互式用户login都是不受限制的。

但是,在严格的或者说mls的策略下,基于用户和angular色的访问控制的使用要多得多 。 用户总是被限制在这些策略之下,甚至root用户可以做的事情也被限制在将root用户放在sysadm_rangular色中。 请注意, mls策略会导致X中断,所以您通常不会在工作站上看到它。

你可能遇到的大多数SELinux系统只会使用目标策略; 尽pipe你会在需要基于用户和angular色的安全性的地方(例如国防承包商)看到它,但是find严格的或者正在使用的mls是不常见的。 在这种情况下,您也可能会看到他们已经定制了正在使用的用户和angular色。

从头开始编写一个完整的SELinux策略是可能的,但是由于这是很多工作,并且带有一套自己的噩梦(例如文档或缺乏),所以你不会经常看到它。 尽pipe如果你想看一个基于angular色的访问控制的演示,那么IBM的这个从头开始编写的策略的例子很好。

(一个完整的答案会更加理论化,所以我只是留给你,日常的SELinux用户指南是你的朋友,对于非常棘手的SELinux问题, 邮件列表也是你的朋友。 )