以下是CentOS中SELinux的核心使用技巧,涵盖状态管理、策略配置及问题排查等关键场景:
查看状态
sestatus:显示SELinux是否启用及当前模式(Enforcing/Permissive/Disabled)。getenforce:快速查看当前运行模式(无需参数)。cat /etc/selinux/config:查看配置文件中的默认模式。切换模式
setenforce 1(强制模式)/ setenforce 0(宽容模式)。/etc/selinux/config,设置SELINUX=enforcing/permissive,重启生效。管理文件/目录上下文
ls -Z:查看文件/目录的SELinux上下文(用户、角色、类型)。chcon -t 类型 文件路径:临时修改上下文(如chcon -t httpd_sys_content_t /var/www/html)。semanage fcontext -a -t 类型 "路径":永久添加上下文规则,配合restorecon -Rv 路径应用更改。控制服务访问权限
semanage port -a -t 端口类型 -p 协议 端口号:允许服务使用特定端口(如semanage port -a -t http_port_t -p tcp 8080)。setsebool -P 布尔值 on/off:启用/禁用特定功能(如setsebool -P httpd_can_network_connect 1允许HTTP访问网络)。查看日志
ausearch -m avc -ts recent:筛选SELinux拒绝日志。cat /var/log/audit/audit.log | grep avc:查看详细违规记录。生成自定义策略
audit2allow -a:从日志生成策略模块(可读报告)。audit2allow -M 模块名:生成并安装策略模块(需执行semodule -i 模块名.pp)。yum update selinux-policy*获取最新规则。工具推荐:
semanage:管理策略模块、端口和上下文的核心工具。audit2allow:快速生成自定义策略,解决服务兼容性问题。参考来源: