CentOS下管理SELinux策略主要通过命令行工具和配置文件实现,核心操作如下:
查看状态
sestatus:查看SELinux当前模式(Enforcing/Permissive/Disabled)及策略类型。getenforce:快速获取当前模式(非配置文件中的永久状态)。切换模式
setenforce 1:强制模式(Enforcing)。setenforce 0:宽容模式(Permissive)。/etc/selinux/config,修改 SELINUX= 为对应值,需重启生效。管理布尔值(快速开关规则)
getsebool -a:查看所有布尔规则状态。setsebool -P <规则名> <1/0>:永久修改规则(如允许HTTP访问用户目录:setsebool -P httpd_enable_homedirs 1)。调整文件/目录上下文
ls -Z <路径>:查看文件/目录的安全上下文。chcon -t<类型> <路径>:临时修改上下文(如将目录设为HTTP内容类型)。semanage fcontext -a -t<类型> "<路径>(/.*)?" + restorecon -Rv <路径>:永久修改上下文。安装/编译自定义策略模块
yum install policycoreutils-devel。ausearch -c '进程名' --raw | audit2allow -M 模块名。semodule -i 模块名.pp。seinfo -t(查看类型)、sesearch --allow(查看允许规则)。ausearch -m avc(查看拒绝事件)、aureport -m avc(生成报告)。注意:修改策略前建议备份重要数据,生产环境谨慎操作,优先在测试环境验证。
参考来源: