Ubuntu 中 SELinux 权限管理实战指南
一 背景与前置说明
二 安装与启用 SELinux
sudo apt update && sudo apt install policycoreutils selinux-utils selinux-basics auditdsudo selinux-activatesudo rebootgetenforce(查看当前模式)、sestatus(查看详细状态)SELINUX=permissive(调试阶段),SELINUXTYPE=default(对应 targeted 策略)setenforce 0/1 临时调整。touch /.autorelabel && reboot。三 日常权限管理操作
sudo setenforce 0(宽容)、sudo setenforce 1(强制)getenforce、sestatussudo semanage fcontext -lsudo semanage fcontext -a -t <type> "/path(/.*)?"sudo restorecon -Rv /pathsudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?" && sudo restorecon -Rv /var/www/htmlsudo semanage port -l | grep <svc>sudo semanage port -m -t <svc>_port_t -p tcp <port>sudo ausearch -m avc -ts recentsudo aureport -m avcsealert -a /var/log/audit/audit.log(若未安装,可先 sudo apt install setroubleshoot-server)sudo apt install selinux-policy-devsepolgen --init四 常见问题与处理建议
sudo setenforce 0,若恢复正常,多半是 SELinux 策略限制;再切回 Enforcing 做精调。ausearch/aureport/sealert 定位。semanage port 将端口加入对应服务的类型(如 ssh_port_t)。semanage fcontext 为目标路径设置正确的类型(如 httpd_sys_content_t),并用 restorecon 应用。restorecon/自定义策略修复,必要时创建 /.autorelabel 并执行一次全量重打标签后重启。五 与 AppArmor 的关系与取舍