6.5. 在 MLS 中定义的安全范围内更改用户安全许可的级别
作为 MLS 中的用户,您可以在管理员分配给您的范围内更改当前的安全许可级别。您永远不会超过范围的上限,或将您的级别降到范围的下限以下。例如,您可以修改敏感级别低的文件,而不需要提高其敏感级别。
例如,用户的范围为 s1-s3
:
-
您可以将级别切换到
s1
、s2
和s3
。 -
您可以将范围切换到
s1-s2
和s2-s3
。 -
您不能将范围切换到
s0-s3
或s1-s4
。
切换到其他级别会打开一个新的、具有不同安全许可级别的 shell。这意味着,您无法按照降级的相同方式将您的级别恢复到原始的安全许可级别。但是,输入 exit
可以返回到之前的 shell。
先决条件
-
SELinux 策略被设置为
mls
。 -
SELinux 模式设置为
enforcing(强制)
模式。 - 您可以作为分配了一个 MLS 安全许可级别范围的用户身份登录。
流程
以用户身份从一个安全终端进行登录。
安全终端在
/etc/selinux/mls/contexts/securetty_types
文件中定义。默认情况下,控制台是一个安全终端,但 SSH 不是。检查当前用户的安全上下文:
$ id -Z user_u:user_r:user_t:s0-s2
在本例中,该用户被分配给
user_u
SELinux 用户、user_r
角色、user_t
类型,以及 MLS 安全范围s0-s2
。检查当前用户的安全上下文:
$ id -Z user_u:user_r:user_t:s1-s2
切换到用户安全许可范围内的不同安全许可范围:
$ newrole -l s1
您可以切换到任何范围,只要其最大级别低于或等于您被分配的范围的任何范围。输入单级别范围会更改所分配范围的较低限制。例如,输入
newrole -l s1
作为具有s0-s2
范围的用户,相当于输入newrole -l s1-s2
。
验证
显示当前用户的安全上下文:
$ id -Z user_u:user_r:user_t:s1-s2
通过终止当前 shell,返回到之前带有原始范围的 shell:
$ exit
其他资源
- 在 MLS 中建立用户明确
-
您系统上的
newrole (1)
和securetty_types (5)
手册页