温馨提示×

centos selinux怎么设置

小樊
35
2026-10-08 16:53:45
栏目: 智能运维

在 CentOS 中,SELinux(Security-Enhanced Linux)的设置主要包括查看状态、临时调整、永久配置、模式切换以及策略/布尔值管理。下面按常见使用场景给你一个完整说明。


一、查看 SELinux 状态

getenforce

可能输出:

  • Enforcing:强制模式(拦截违规)
  • Permissive:宽容模式(只记录不拦截)
  • Disabled:已禁用

查看详细状态:

sestatus

二、临时修改 SELinux 模式(重启失效)

1. 改为 Permissive

setenforce 0

2. 改为 Enforcing

setenforce 1

注意:setenforce 不能从 Disabled 直接启用,必须修改配置文件并重启。


三、永久修改 SELinux(推荐方式)

编辑配置文件:

vi /etc/selinux/config

示例内容:

SELINUX=enforcing
SELINUXTYPE=targeted

可选值:

  • enforcing
  • permissive
  • disabled

修改后必须重启系统生效:

reboot

四、常见服务场景设置(非常重要)

1. 查看 SELinux 阻挡日志

ausearch -m AVC -ts recent

或

tail -f /var/log/audit/audit.log

2. 使用 sealert 分析

yum install -y setroubleshoot-server
sealert -a /var/log/audit/audit.log

五、文件/目录 SELinux 上下文设置

查看上下文

ls -Z /var/www/html

修改上下文

semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?"
restorecon -Rv /webdata

六、SELinux 布尔值(Booleans)

查看某个服务相关布尔值

getsebool -a | grep httpd

开启布尔值(如允许 httpd 访问网络)

setsebool -P httpd_can_network_connect on

-P 表示永久生效。


七、关闭 SELinux(不推荐,但有时需要)

临时关闭

setenforce 0

永久关闭

vi /etc/selinux/config

改为:

SELINUX=disabled

然后重启。


八、典型排错建议

  • Web 服务打不开 → 检查 httpd_can_network_connect
  • FTP/NFS/Samba 异常 → 检查对应布尔值
  • 文件无法访问 → 检查 ls -Z 和 restorecon

如果你有具体场景(如 Nginx、MySQL、Docker、FTP),可以告诉我,我可以给你精确命令。

0 踩