在 CentOS 中,SELinux(Security-Enhanced Linux)的设置主要包括查看状态、临时调整、永久配置、模式切换以及策略/布尔值管理。下面按常见使用场景给你一个完整说明。
getenforce
可能输出:
Enforcing:强制模式(拦截违规)Permissive:宽容模式(只记录不拦截)Disabled:已禁用查看详细状态:
sestatus
setenforce 0
setenforce 1
注意:
setenforce不能从Disabled直接启用,必须修改配置文件并重启。
编辑配置文件:
vi /etc/selinux/config
示例内容:
SELINUX=enforcing
SELINUXTYPE=targeted
可选值:
enforcingpermissivedisabled修改后必须重启系统生效:
reboot
ausearch -m AVC -ts recent
或
tail -f /var/log/audit/audit.log
yum install -y setroubleshoot-server
sealert -a /var/log/audit/audit.log
ls -Z /var/www/html
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?"
restorecon -Rv /webdata
getsebool -a | grep httpd
setsebool -P httpd_can_network_connect on
-P 表示永久生效。
setenforce 0
vi /etc/selinux/config
改为:
SELINUX=disabled
然后重启。
httpd_can_network_connectls -Z 和 restorecon如果你有具体场景(如 Nginx、MySQL、Docker、FTP),可以告诉我,我可以给你精确命令。