在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的系統上進行,生產環境建議優先使用默認策略,謹慎修改核心標簽。