Linux之SELinux详解(怎样关闭、检察是否关闭)

[复制链接]
发表于 2026-10-4 16:22:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

装服务装到一半被拒、改完权限还是没效果,很多时候不是 chmod 的问题,而是 SELinux 在拦。它是 Linux 的一个安全模块,通过强制访问控制(MAC)限制进程和用户对文件、端口等资源的访问。这篇讲清它干什么、关了会怎样、以及怎么确认当前的开关状态。

一、SELinux 的作用

SELinux(Security-Enhanced Linux)通过策略限制进程行为,即使某个进程或用户拿到了系统的一部分权限,策略照样能挡住它继续越界。三个主要价值:

  • 增强安全性:用策略限制进程行为,防止系统被攻击或被恶意软件破坏。
  • 最小化攻击面:攻击者即便拿到一部分权限,也难以进一步破坏。
  • 细粒度权限控制:可以针对每个进程、每个文件设定访问规则。

二、关掉它的好处与代价

2.1 好处

  • 减少兼容问题:一些老程序或特定服务与 SELinux 策略不兼容,关掉可直接避开这类报错。
  • 简化运维:SELinux 的策略配置学习成本高,关掉能少一大块安全配置工作量。
  • 轻微提升性能:访问判定本身要耗 CPU,高负载下开销更明显;不过常态下影响通常不大。

2.2 风险

关掉等于拿掉一层强制访问控制,遭遇外部攻击时系统被入侵的风险会上升。所以没有明确的兼容需求,生产环境建议保持开启。开发环境为了省事关掉可以,生产环境关之前先评估。

三、怎么关闭

sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && sudo setenforce 0

这条命令做了两件事:改配置文件(永久生效)+ setenforce 0(当前运行态立刻切到 permissive)。注意改完配置文件如果不重启,running 状态不会自动变 disabled,需要用下面的命令确认。

四、四种确认状态的办法

4.1 用 sestatus(最常用)

sestatus

输出 SELinux status: disabled 表示已关闭;SELinux status: enabled 表示仍启用。

4.2 看配置文件

cat /etc/selinux/config

输出示例:

SELINUX=disabled
SELINUXTYPE=targeted

SELINUX=disabled 为禁用;enforcing 强制模式;permissive 宽容模式(只记录不拦截)。

4.3 用 getenforce

getenforce
  • Disabled:SELinux 已禁用;
  • Enforcing:启用并强制执行;
  • Permissive:启用但不强制(违规只打日志日志)。

4.4 看 /sys/fs/selinux/enforce

cat /sys/fs/selinux/enforce
  • 0:已禁用;
  • 1:强制模式;
  • 2:宽容模式。

五、状态对照表

来源值含义
getenforceDisabled完全关闭
getenforcePermissive启用但不强制
getenforceEnforcing启用且强制
配置文件SELINUX=disabled下次重启后关闭
/sys/fs/selinux/enforce0 / 1 / 2禁用 / 强制 / 宽容

六、运维建议

  • 先查后改:服务异常先看 getenforce,是 Enforcing 再看 /var/log/audit/audit.log 里有没有 AVC 拒绝记录。
  • 临时放宽:setenforce 0 只影响运行态,重启回原值,适合先验证是不是 SELinux 卡住。
  • 永久关闭要改配置:只执行 setenforce 0 重启后会恢复,必须同步改 /etc/selinux/config。
  • 更优解是写策略:生产环境优先用 ausearch + audit2allow 生成自定义策略,而不是整体关掉。
  • 改完验证业务:切到 permissive 后跑一遍业务流程,确认不再有拒绝,再决定长期策略。

结论

SELinux 是 Linux 的强制访问控制层,安全收益明确,但配置复杂、偶发兼容问题。判断状态认准三个:getenforce(当前态)、cat /etc/selinux/config(永久配置)、cat /sys/fs/selinux/enforce(运行态数值)。临时排障用 setenforce 0,永久关闭才改配置;生产环境如果没有硬兼容需求,建议保留 Enforcing,用自定义策略解决问题,而不是整体关掉。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表