7.4. 为 MCS 中的用户分配类别
您可以通过为 Linux 用户分配类别来定义用户授权。分配了类别的用户可以访问和修改用户类别子集的文件。用户也可以为他们自己分配到的类别分配文件。
无法将 Linux 用户分配给在为相关 SELinux 用户定义的安全范围之外的类别。
类别访问权限在登录期间分配。因此,在用户再次登录前,用户无法访问新分配的类别。同样,如果您撤销了对类别的访问权限,这仅在用户再次登录后有效。
先决条件
-
SELinux 模式设置为
enforcing
。 -
SELinux 策略被设置为
targeted
或mls
。 -
已安装
policycoreutils-python-utils
软件包。 Linux 用户被分配给 SELinux 受限用户:
-
非特权用户将分配给
user_u
. -
特权用户被分配给
staff_u
。
-
非特权用户将分配给
步骤
定义 SELinux 用户的安全范围。
# semanage user -m -rs0:c0,c1-s0:c0.c9 <user_u>
使用
setrans.conf
文件中的类别号c0
到c1023
或 category 标签。如需更多信息,请参阅 MCS 中的定义类别标签。为 Linux 用户分配 MCS 类别。您只能指定相关 SELinux 用户定义的范围内的范围:
# semanage login -m -rs0:c1 <Linux.user1>
注意您可以使用
chcat
命令从 Linux 用户添加或删除类别。以下示例添加<category1>
并从<Linux.user1>
和<Linux.user2>
中删除<category2>
:# chcat -l -- +<category1>,-<category2> <Linux.user1>,<Linux.user2>
在使用
-<category>
语法前,您必须在命令行上指定--
。否则,chcat
命令会错误地将类别删除作为命令选项进行解译。
验证
列出分配给 Linux 用户的类别:
# chcat -L -l <Linux.user1>,<Linux.user2> <Linux.user1>: <category1>,<category2> <Linux.user2>: <category1>,<category2>
其他资源
-
chcat (8)
手册页