当前位置: 首页 > news >正文

什么是SELinux

SELinux 是Security-Enhanced Linux(安全增强型 Linux)的缩写,是 Linux 内核里的一套强制访问控制(MAC)安全机制。它的核心作用是:
👉即使某个程序被攻破,也尽量限制它能干什么,防止“横向扩散”造成更大破坏。

下面用好理解的方式给你讲清楚。


一、为什么需要 SELinux?

传统 Linux 权限的问题(DAC)

Linux 原本只有自主访问控制(DAC):

  • 文件权限:rwx
  • 用户 / 组 / root

问题在于:

  • root 权限太大
  • 程序一旦被提权,就几乎“为所欲为”

例如:

  • Web 服务被入侵
  • 攻击者拿到apache用户
  • 再提权到 root → 整个系统沦陷

二、SELinux 在做什么?

SELinux 在传统权限之上,再加一层强制规则:

谁(进程)
→能对什么(文件/端口/资源)
→做什么操作

即使你是 root,只要策略不允许,也不能做。


三、一个直观的例子 🌰

没有 SELinux

httpd 进程 → 可以读 /etc/shadow(如果权限给了)

有 SELinux

httpd_t 类型 → 只能访问 httpd_sys_content_t

即使:

  • 文件权限是 777
  • httpd 是 root 启动的

👉SELinux 不允许,就访问不了


四、SELinux 的核心概念(重点)

1️⃣ 安全上下文(Security Context)

每个对象都有标签:

ls-Z

示例:

system_u:object_r:httpd_sys_content_t:s0

组成:

用户 : 角色 : 类型 : 级别

最重要的是:类型(Type)


2️⃣ 类型强制(Type Enforcement,TE)

这是 SELinux 的核心机制:

  • 进程有类型(如httpd_t)

  • 文件有类型(如httpd_sys_content_t)

  • 策略决定:

    httpd_t 能否访问 httpd_sys_content_t

3️⃣ 三种工作模式

查看方式:

getenforce
模式说明
Enforcing强制执行策略(真正生效)
Permissive只记录违规,不阻止
Disabled完全关闭

五、SELinux 常见“坑”(你可能遇到的)

1️⃣ 服务起不来,但权限都对

Permission denied

但:

  • 文件权限没问题
  • 用户也对

👉90% 是 SELinux 拦了


2️⃣ PXE / 安装 / 启动进紧急模式

  • 根文件系统或关键目录标签不对
  • SELinux 无法访问 → 启动失败 → 紧急模式

3️⃣ 拷贝文件导致服务异常

cpxxx /var/www/html/

标签变了 ❌
正确做法:

cp--preserve=context# 或restorecon -Rv /var/www/html

六、如何排查 SELinux 问题(实用)

1️⃣ 看日志

ausearch -m avc

或:

/var/log/audit/audit.log

2️⃣ 临时验证是不是 SELinux 问题

setenforce0

如果问题立刻消失 👉 就是 SELinux


七、什么时候该关 SELinux?

❌不推荐长期关闭

✔ 推荐做法:

  • 学会Permissive 排错
  • 正确设置上下文或策略

永久关闭(不推荐,仅测试)

vim/etc/selinux/configSELINUX=disabled

八、一句话总结

SELinux 是 Linux 的“安全警察”
权限对了还不够,策略说了才算

如果你愿意,我可以:

  • 结合PXE / RedHat 9.x具体说明 SELinux 导致紧急模式的真实案例
  • 教你最少命令快速判断是不是 SELinux 的锅

你可以直接告诉我你现在卡在什么错误提示。

http://www.cnnetsun.cn/news/89432.html

相关文章:

  • A/B测试在功能验证中的应用:从理论到实践
  • 创建一个rust写的python库[signatures和错误处理]
  • 震撼!这家全景效果企业如何颠覆传统,让客户体验飙升!
  • JVM性能分析
  • 商家福音!用PHP对接快递鸟接口,一键搞定单号所属快递识别
  • YT29B凿岩机吕梁精准检测稳定性能解析
  • 26、网络连接与安全全解析
  • 2025.12.16 HSRP双机热备
  • 万全智能RFID模块设备他们产品档次怎么样
  • RuoYi v1.2.0 全端开发神器:让多端适配从未如此简单!
  • 少儿编程Scratch3.0教程——03 外观积木(基础知识)
  • libxslt XSLT转换库:鸿蒙PC上的XML转换工具
  • GPU算力租赁推荐:低成本训练YOLO大模型
  • VonaJS是如何做到文件级别精确HMR(热更新)的?
  • 口碑好的货架哪里有好的
  • pytorch框架训练、推理、模块冻结等各种细节说明
  • Java毕设项目推荐-基于Java语言的茶叶销售系统的前端设计与实现基于SpringBoot+Vue茶叶销售系统的设计与实现【附源码+文档,调试定制服务】
  • 大数据生态核心组件语法与原理详解
  • UVa 11617 An Odd Love
  • LobeChat能否对接Slack?团队协作平台集成方案
  • 集团宽带是什么意思?企业如何选择合适的宽带方案?
  • 运维外包的公司靠谱吗?企业真能省心?
  • HunyuanVideo-Foley:AI让视频自动配声
  • 信息安全技术与Kali Linux
  • GEO系统:多区域搜索排名监控与品牌形象统一维护解决方案
  • 17、Apache服务器的代理配置、URL重写、自定义日志及性能监控
  • 18、Apache服务器性能测试与配置全解析
  • PostgreSQL 18 远程操作实战:从连接到备份的操作实践记录
  • S33-装一个Server2016+PCS7虚拟机
  • LobeChat能否部署在腾讯云CVM?国产云服务商适配教程