SELinux 用户权限管理
核心模型与关键概念
查看与映射管理
semanage login -l(需要 root)Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
semanage user -lsemanage login -a -s staff_u aliceid -Z(应见形如:staff_u:staff_r:staff_t:…)角色与权限控制
| 角色 | 典型域 | 关键能力/限制 |
|---|---|---|
| unconfined_r | unconfined_t | 几乎不受限;仍受 execmem/writable memory 与 MCS/MLS 检查 |
| guest_r | guest_t | 不能访问网络;可在 /tmp 与 /home 执行 |
| xguest_r | xguest_t | 可登录 X;仅允许浏览器网络访问;可在 /tmp 与 /home 执行 |
| user_r | user_t | 常规非特权用户;可在 /tmp 与 /home 执行 |
| staff_r | staff_t | 类似 user_r,且可通过 sudo 执行管理命令(角色切换但 SELinux 用户不变) |
| sysadm_r | sysadm_t | 系统管理域;需显式授权与策略支持 |
semanage boolean -l(需 root)。常见管理操作与示例
semanage login -a -s user_u bobid -Z(应见 user_u:user_r:user_t:…)/etc/sudoers 或 /etc/sudoers.d/ 中为相应用户配置允许的规则;当 staff_t 使用 sudo 时,策略可使其切换到 sysadm_r 并执行 sysadm_t 域的管理命令(是否允许、如何切换由策略与 sudoers 共同决定)。setsebool -P xguest_exec_content offsestatus -v -bsemanage login -l、semanage user -lausearch -m avc -ts recent 或 journalctl -xe),必要时临时切换为 permissive 模式进行验证(生产环境谨慎)。