在Ubuntu中使用SELinux标签需先启用SELinux,再通过命令管理标签,核心操作如下:
sudo apt install selinux-basics selinux-policy-default auditd
sudo selinux-activate
(首次启用需重启系统完成文件系统标签初始化)查看文件/目录标签:
ls -Z /path/to/file
输出示例:-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
(httpd_sys_content_t
为文件类型标签)
查看进程标签:
ps -eZ | grep 进程名
输出示例:system_u:system_r:httpd_t:s0 1234 ? 00:00:01 httpd
(httpd_t
为进程类型标签)
临时修改文件标签:
sudo chcon -t 新类型_t /path/to/file
例如:将文件标记为Web服务器可访问类型:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
永久修改文件标签:
sudo semanage fcontext -a -t 新类型_t /path/to/file
sudo restorecon -Rv /path/to/file
(semanage
修改策略规则,restorecon
应用规则)
unconfined_u
(未受限用户)、system_u
(系统用户)。object_r
(普通对象角色)、system_r
(系统角色)。httpd_sys_content_t
(Web内容)、tmp_t
(临时文件)。s0
(默认级别)。sudo apt purge apparmor
targeted
策略(针对常见服务),如需更细粒度控制可配置mls
策略(需手动定义安全级别)。/var/log/audit/audit.log
查看拒绝日志,并用audit2allow
生成修复策略。以上操作需在已启用SELinux的系统上进行,生产环境建议优先使用默认策略,谨慎修改核心标签。