Jeff Ferland Asked: 2012-11-30 16:49:55 +0800 CST2012-11-30 16:49:55 +0800 CST 2012-11-30 16:49:55 +0800 CST 用户和角色标签对 SELinux 中的文件有什么影响? 772 运行时ls -dZ /,我得到以下输出: system_u:object_r:root_t:s0 用户和角色字段可以对涉及文件的访问权限产生任何影响吗?他们有什么意思吗? selinux 1 个回答 Voted Best Answer Michael Hampton 2012-12-01T05:45:48+08:002012-12-01T05:45:48+08:00 TL;DR:是的,它们可以产生影响,但在您的系统上,它们可能不会产生影响。 首先是一些背景: 大多数提供 SELinux 的 Linux 发行版都使用基于所谓的参考策略的策略,它包含一个功能策略,可以用作特定站点定制的基础,或者按原样使用。 您正在查看的属性是:SELinux 用户、角色以及文件或进程的类型(或域)。在 SELinux 中,登录用户被映射到 SELinux 用户,然后 SELinux 用户被分配到允许他们执行的角色。每个角色都有一组可以转换到的域。newrole通过这种方式,可以切换用户的角色(如果允许用户更改角色,用户可以使用命令切换自己的角色)以提供或拒绝对一组完全不同的域的访问。 在文件的情况下,对文件的访问是根据与标记文件的用户和角色相匹配的进程的用户和角色来调解的。然而,对于不受限制的用户,(以及任何时候你想要的,在你自己的自定义策略中)这些可能会被忽略,只有使用的类型,或者也被忽略的类型。 如果您使用默认的目标策略,用户和角色几乎完全未被使用,因为该策略对基于用户或角色的访问控制实际上做的很少,而是专注于限制面向外的服务。此策略确实支持限制用户,但默认情况下处于关闭状态,并且所有交互式用户登录都是不受限制的。 但是,在strict或mls策略下,基于用户和角色的访问控制使用得更多。用户始终受到这些策略的限制,甚至root用户可以做的事情也受到将 root 用户置于sysadm_r角色中的限制。请注意,mls策略会导致 X 崩溃,因此您通常不会在工作站上看到它。 您可能会遇到的大多数 SELinux 系统只会使用目标策略;虽然您会在需要基于用户和基于角色的安全性的地方(例如国防承包商)看到它,但很少会发现使用了strict或mls 。在这些情况下,您还可能会看到他们已经自定义了正在使用的用户和角色。 从头开始编写一个完整的 SELinux 策略是可能的,但由于这是一项大量的工作,并且有其自身的一系列噩梦(例如文档或文档的缺失),您不会经常看到它。不过,如果您想观看基于角色的访问控制的演示,这个来自 IBM 的从头编写的策略示例非常有用。 (一个完整的答案会更加理论化,所以我就把这个留给你。在日常工作中,SELinux 用户指南是你的朋友,对于真正棘手的 SELinux 问题,邮件列表也是你的朋友。 )
TL;DR:是的,它们可以产生影响,但在您的系统上,它们可能不会产生影响。
首先是一些背景:
大多数提供 SELinux 的 Linux 发行版都使用基于所谓的参考策略的策略,它包含一个功能策略,可以用作特定站点定制的基础,或者按原样使用。
您正在查看的属性是:SELinux 用户、角色以及文件或进程的类型(或域)。在 SELinux 中,登录用户被映射到 SELinux 用户,然后 SELinux 用户被分配到允许他们执行的角色。每个角色都有一组可以转换到的域。
newrole
通过这种方式,可以切换用户的角色(如果允许用户更改角色,用户可以使用命令切换自己的角色)以提供或拒绝对一组完全不同的域的访问。在文件的情况下,对文件的访问是根据与标记文件的用户和角色相匹配的进程的用户和角色来调解的。然而,对于不受限制的用户,(以及任何时候你想要的,在你自己的自定义策略中)这些可能会被忽略,只有使用的类型,或者也被忽略的类型。
如果您使用默认的目标策略,用户和角色几乎完全未被使用,因为该策略对基于用户或角色的访问控制实际上做的很少,而是专注于限制面向外的服务。此策略确实支持限制用户,但默认情况下处于关闭状态,并且所有交互式用户登录都是不受限制的。
但是,在strict或mls策略下,基于用户和角色的访问控制使用得更多。用户始终受到这些策略的限制,甚至
root
用户可以做的事情也受到将 root 用户置于sysadm_r
角色中的限制。请注意,mls策略会导致 X 崩溃,因此您通常不会在工作站上看到它。您可能会遇到的大多数 SELinux 系统只会使用目标策略;虽然您会在需要基于用户和基于角色的安全性的地方(例如国防承包商)看到它,但很少会发现使用了strict或mls 。在这些情况下,您还可能会看到他们已经自定义了正在使用的用户和角色。
从头开始编写一个完整的 SELinux 策略是可能的,但由于这是一项大量的工作,并且有其自身的一系列噩梦(例如文档或文档的缺失),您不会经常看到它。不过,如果您想观看基于角色的访问控制的演示,这个来自 IBM 的从头编写的策略示例非常有用。
(一个完整的答案会更加理论化,所以我就把这个留给你。在日常工作中,SELinux 用户指南是你的朋友,对于真正棘手的 SELinux 问题,邮件列表也是你的朋友。 )