在SELinux(Security-Enhanced Linux)中,角色(Role)是用于将主体(如用户、进程等)与一组权限相关联的抽象概念。通过角色,可以更细粒度地控制哪些主体可以访问哪些资源。以下是在SELinux中分配角色的基本步骤:
首先,你需要确定哪些主体需要特定的角色。例如,你可能希望某些用户只能访问特定的文件或执行特定的命令。
SELinux提供了默认的角色,但你也可以根据需要创建新的角色。
semanage role -l
semanage role -a -R <role_name> -t <type_name>
<role_name>: 新角色的名称。<type_name>: 与该角色关联的类型名称。一旦角色创建完成,你可以将其分配给用户。
sesearch -A -s user_u -c user_c -p role_r
semanage login -a -s <role_name> -R <user_name>
<role_name>: 要分配的角色名称。<user_name>: 用户名。确保角色已正确分配给用户。
sesearch -A -s user_u -c user_c -p role_r
最后,测试新分配的角色是否按预期工作。
su - <user_name>
# 尝试访问受保护的资源
假设你想创建一个名为webadmin的角色,并将其分配给用户john。
创建角色
semanage role -a -R webadmin_r -t httpd_sys_content_t
分配角色给用户
semanage login -a -s webadmin_r -R john
验证角色分配
sesearch -A -s user_u -c user_c -p role_r
测试角色权限
su - john
# 尝试访问受保护的资源
通过这些步骤,你可以在SELinux中有效地分配和管理角色,从而增强系统的安全性。