news 2026/4/16 12:42:51

什么是SELinux

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是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 的锅

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 20:00:29

C++ 构造函数完全指南

一、构造函数的基本分类 1.1 默认构造函数&#xff08;Default Constructor&#xff09; 没有参数或所有参数都有默认值的构造函数。 class MyClass { public:// 1. 显式默认构造函数MyClass() {data 0;name "default";std::cout << "Default constr…

作者头像 李华
网站建设 2026/4/16 8:05:10

PC装修功能改版+七牛云存储支持 | Tigshop 开源商城系统JAVA v5.8.6正式上线

Tigshop开源商城系统 JAVA v5.8.6正式上线&#xff0c;本次迭代围绕多项功能升级&#xff0c;重点覆盖新增pc自定义页面装修、属性模板优化和支持七牛云存储三大功能板块&#xff0c;旨在为大家提供更高效、更省心的商城使用体验&#xff0c;助力开源生态下的电商业务降本增效。…

作者头像 李华
网站建设 2026/4/3 4:14:30

DIOO帝奥微推出高性能车规级eUSB2 Repeater产品助力先进工艺Soc解决方案

引言帝奥微background随着AI、汽车及工业大算力应用的需求不断增长&#xff0c;SoC全面步入5nm及以下工艺先进制程。为了应对由此带来的功耗与集成度挑战&#xff0c;USB开发者论坛在2018年发布了eUSB2规范&#xff0c;全新的1.2V eUSB2标准正迅速成为新一代先进制程SoC的标配接…

作者头像 李华
网站建设 2026/4/16 12:34:36

性价比高的液态硅胶送料机公司

性价比高的液态硅胶送料机公司如何选择&#xff1f;在当今制造业快速发展的背景下&#xff0c;液态硅胶送料机作为硅胶制品生产的关键设备&#xff0c;其性价比已成为众多企业关注的焦点。选择一台合适的液态硅胶送料机不仅能提升生产效率&#xff0c;还能显著降低运营成本。本…

作者头像 李华
网站建设 2026/3/28 21:11:18

轻量化H5定制技巧:适配多场景的企业营销转化方案

企业开展H5定制工作&#xff0c;核心要锚定目标导向、用户体验、技术适配、营销转化四大维度&#xff0c;再结合自身的实际需求和应用场景精准施策&#xff0c;具体可分为以下6个关键执行步骤。1、明确H5定制的核心目标与应用场景先确定H5定制的目的&#xff0c;是品牌宣传、活…

作者头像 李华