centos selinux用户管理
CentOS SELinux用户管理指南
一、SELinux用户管理核心概念
SELinux通过用户(User)、角色(Role)、类型(Type)(简称URT)的三层模型实现强制访问控制(MAC)。其中,SELinux用户是连接Linux系统用户与SELinux策略的桥梁,决定了用户能扮演的角色及访问权限。每个Linux系统用户登录时,会映射到一个SELinux用户,该用户的SELinux上下文(如user_u:object_r:passwd_file_t:s0)决定了其对系统资源的访问能力。
二、查看SELinux用户与映射
1. 查看SELinux用户列表
使用semanage user -l命令可查看系统已定义的SELinux用户,包括其关联角色、MCS/MLS范围等信息。例如:
~# semanage user -l
Labeling MLS/ MLS/
SELinux User Prefix MCS Level MCS Range SELinux Roles
guest_u user s0 s0 guest_r
user_u user s0 s0 user_r
staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r
unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r
其中,unconfined_u是默认用户(允许无限制访问),user_u是受限用户(仅能执行基本操作)。
2. 查看Linux用户与SELinux用户的映射
使用semanage login -l命令可查看Linux系统用户与SELinux用户的映射关系。例如:
~# semanage login -l
Login Name SELinux User MLS/MCS Range Service
__default__ user_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
__default__表示未明确映射的系统用户,默认使用user_u;root用户映射到unconfined_u(拥有最高权限)。
三、创建与删除SELinux用户
1. 创建SELinux用户
使用semanage user -a命令创建新的SELinux用户,可通过-R指定关联角色、-r指定MCS/MLS范围。例如,创建一个名为dbadm_u的数据库管理员用户(关联staff_r和dbadm_r角色,MCS范围为s0-s0:c0.c110):
~# semanage user -a -R "staff_r dbadm_r" -r "s0-s0:c0.c110" dbadm_u
2. 删除SELinux用户
使用semanage user -d命令删除SELinux用户。例如,删除dbadm_u:
~# semanage user -d dbadm_u
注意:删除前需确保无Linux用户映射到该SELinux用户,否则会导致权限混乱。
四、映射Linux用户到SELinux用户
使用semanage login -a命令将Linux系统用户映射到SELinux用户。例如,将user1映射到dbadm_u:
~# semanage login -a -s dbadm_u user1
若需将整个用户组(如dba组)映射到dbadm_u,可使用%组名语法:
~# semanage login -a -s dbadm_u %dba
修改与删除映射
- 修改映射:
semanage login -m -s 新SELinux用户 用户名(如semanage login -m -s webadm_u user1) - 删除映射:
semanage login -d 用户名(如semanage login -d user1)。
五、验证SELinux用户上下文
1. 查看当前用户SELinux上下文
使用id -Z命令查看当前用户的SELinux上下文,例如:
~$ id -Z
user_u:object_r:user_home_t:s0
其中,user_u是SELinux用户,object_r是角色,user_home_t是类型,s0是安全级别。
2. 查看进程SELinux上下文
使用ps -eZ命令查看进程的SELinux上下文,例如:
~# ps -eZ | grep sshd
system_u:system_r:sshd_t:s0 1234 ? 00:00:00 sshd
system_u是SELinux用户,system_r是角色,sshd_t是类型。
六、注意事项
- 用户退出与重新登录:修改映射或SELinux用户后,需让Linux用户退出并重新登录,否则新上下文不会生效。
- 文件上下文一致性:删除SELinux用户前,需重新标记所有包含该用户上下文的文件(可使用
restorecon -Rv /path/to/dir恢复默认上下文),避免访问冲突。 - 默认用户选择:尽量将Linux用户映射到受限SELinux用户(如
user_u),仅在必要时使用unconfined_u(如服务器管理),以降低安全风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos selinux用户管理
本文地址: https://pptw.com/jishu/736590.html
