Ubuntu默认未启用SELinux,若需使用其管理用户权限,需先安装并启用,核心方法如下:
-
安装与启用SELinux
sudo apt-get install selinux-basics selinux-policy-default # 安装 sudo setenforce 1 # 设置为Enforcing模式(强制生效) sudo nano /etc/selinux/config # 永久设置模式(修改SELINUX=enforcing) -
管理用户安全上下文
- 查看用户上下文:
id或ls -Z /home/username - 修改用户角色/类型:
sudo semanage login -a -s staff_u username # 分配角色(如staff_u) sudo chcon -t user_home_t /home/username # 修改用户主目录上下文
- 查看用户上下文:
-
控制文件/目录访问权限
- 设置文件上下文:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?" # 定义规则 sudo restorecon -Rv /var/www # 应用规则 - 临时修改上下文:
chcon -t type file(不推荐生产环境使用)
- 设置文件上下文:
-
限制进程权限
- 通过策略文件(如
/etc/selinux/targeted/modules/active/modules.conf)限制进程可访问的路径或资源,需结合semanage和restorecon操作。
- 通过策略文件(如
-
监控与调试
- 查看拒绝日志:
sudo ausearch -m avc -ts recent - 分析拒绝原因:
sudo audit2why < /var/log/audit/audit.log
- 查看拒绝日志:
注意:SELinux配置复杂,建议在测试环境验证后再应用于生产环境,避免误操作导致系统异常。