SELinux:比root还霸道的权限管家
管理 SELinux 安全性权限都给了还是拒绝原来是它在管闲事开头学 Linux 之前我一直以为权限管理就是chmod那套rwx三个字母owner / group / others 三组人把 755、644 背熟就完事了。直到这周讲 SELinux我才发现自己理解的安全有多天真。老师上课第一句就是“就算你是 root权限也不一定能访问。” 我当场就懵了——root 不是最大吗怎么还有管得住 root 的东西那节课我的脑子里全是浆糊SELinux 到底是个啥为什么文件明明是 755 权限nginx 还是给我 403还有网上教程动不动就让人先执行一句setenforce 0但没人跟我说清楚它到底干了什么、为什么重启就失效。正好上一篇博客写重置 root 密码时碰到过touch /.autorelabel当时只知道照着敲这周学完 SELinux 总算把那一串串概念串起来了。这篇就按我自己的理解顺序写一遍把上课记的那几个知识点展开成能看懂的笔记。一、先搞清楚为什么有了 chmod 还要 SELinuxDAC 和 MAC 的区别以前学的 chmod 那套权限叫自主访问控制DAC——DiscretionaryAccessControl。它有个致命问题权限由文件所有者自己说了算。只要文件属于你你想给谁读就给谁读更关键的是root 拥有一切权限绕过了所有权限检查。SELinux 用的叫强制访问控制MAC——MandatoryAccessControl。它跟 DAC 完全不同权限策略由系统统一制定不是文件所有者决定的root 也会被限制不是超级用户就能为所欲为遵循最小权限原则每个进程只给够用的权限我当时的理解DAC 是文件主人说了算MAC 是系统说了算。进程想碰资源DAC 先查一遍 rwx过了之后 SELinux 还要按策略再查一遍两道关都过才放行。所以网上的 CentOS 教程第一句就是setenforce 0其实就是嫌第二道关麻烦——但它把最关键的安全防线给关了而且很多人不知道这只是临时的。SELinux 是怎么保护的SELinux 给每个进程、文件、端口都打上一个**安全上下文security context标签。访问发生时SELinux 把进程的标签和客体的标签放进策略policy**里比对不满足策略就直接拒绝连 root 都不给面子。二、三种模式Enforcing / Permissive / Disabled对应课堂第 4 题SELinux 有三种模式这是我这周记得最牢的模式getenforce 输出行为强制模式Enforcing不符合策略就拒绝并记录日志宽容模式Permissive不拒绝只记录告警日志禁用Disabled完全不管查看当前模式getenforce# Enforcing临时切换不写配置文件重启失效setenforce0# 切到宽容模式Permissivesetenforce1# 切回强制模式Enforcing课堂第 4 题的答案setenforce 0是临时把 SELinux 切成宽容模式。它不阻止违规访问但会把告警记到日志里重启后就恢复原样。要想永久改得编辑配置文件vim/etc/selinux/configSELINUXenforcing # 可选 enforcing / permissive / disabled SELINUXTYPEtargeted # 默认策略还有 minimum 和 mls改完配置文件要重启才完全生效当前运行模式还得靠setenforce手动切。踩坑我第一次做实验时执行了setenforce 0发现挺好使就以为系统一直这样了。结果第二天开机getenforce一看又变回Enforcing了。找半天才想起老师说的临时两个字。三、安全上下文那个冒号分隔的标签这是这章最核心的概念。安全上下文就是附加在进程、文件、端口上的安全标签格式是四段冒号分隔用户:角色:类型:级别 unconfined_u:object_r:httpd_sys_content_t:s0用户SELinux 用户不是系统用户如unconfined_u、system_u角色如object_r客体、system_r系统进程类型最关键的一段如httpd_sys_content_t级别MLS/MCS 的级别一般是s0多类别时会有c0.c1023查看文件和进程的上下文ls-Z/etc/passwd# system_u:object_r:etc_t:s0 /etc/passwdps-eZ|grepsshd# system_u:system_r:sshd_t:s0-s0:c0.c1023 ...id-Z# unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023SELinux 策略就是靠比对上下文主要是类型来判断访问权限的。进程是httpd_t类型它就只能访问类型匹配的内容比如httpd_sys_content_t想碰/etc/shadowshadow_t就会被拦。我当时把这个理解成工作证对工牌进程带着工作证文件贴着工牌门卫策略只放行对得上的。四、让 httpd 能读 /custom 目录这是课堂的实操题也是 RHCSA 常见的考点把 /custom 目录设为网站内容目录让 httpd 能读。第一次我直接chmod 777 /custom心想权限都给了肯定行。结果刷新页面还是 403。看日志才知道是SELinux 拦的——/custom 目录的文件默认是default_t类型httpd 根本不让碰。正确做法分两步先定规则再打标签。第一步定义文件上下文规则semanage fcontext-a-thttpd_sys_content_t/custom(/.*)?这条命令的含义给/custom目录以及里面所有文件(/.*)?这个正则就是匹配子目录和文件定义一条规则——将来的标签类型是httpd_sys_content_t。semanage fcontext只是写规则并不会立刻改文件标签。第一次我没搞清楚这步执行完就去访问还是 403。第二步用 restorecon 按规则打标签restorecon-Rv/customrestorecon会按规则重新设置文件的上下文-R递归处理目录里所有内容-v显示过程。查看当前有哪些规则semanage fcontext-l|grepcustom查看标签是否打上ls-Zd/custom# system_u:object_r:httpd_sys_content_t:s0 /customchcon 和 restorecon 的区别除了restorecon还有个chcon能直接改标签chcon-thttpd_sys_content_t /custom/index.html但chcon改的是当前标签是临时的跟规则无关之后一次restorecon就会被打回原形。所以规范做法永远是用semanage fcontext定规则 restorecon打标签。记法semanage fcontext像立规矩restorecon像照规矩办事chcon像临时手动改。注意semanage 可能没装RHEL9 上执行semanage可能报command not found需要装个包dnfinstall-ypolicycoreutils-python-utils五、布尔值开关式策略Bonus课堂上顺带讲的我觉得挺有用。SELinux 有些策略是开关式的叫布尔值boolean比如httpd 能不能联网“能不能访问家目录”。getsebool-a|grephttpd setsebool-Phttpd_can_network_connect on踩坑setsebool如果不加-P重启后就还原了。加-P才是永久persistent。这跟setenforce 0一个套路——临时和永久的区别真的是这章最容易踩的坑。六、被拒了怎么排查遇到权限明明给了还是拒绝先别急着chmod 777先看是不是 SELinux 拦的。SELinux 的拒绝记录在审计日志里# 最近被拒绝的记录ausearch-mavc-tsrecent# 直接 grep 日志grepdenied/var/log/audit/audit.log装了 setroubleshoot-server 的话还能让它直接给建议dnfinstall-ysetroubleshoot-server sealert-a/var/log/audit/audit.logsealert会给出类似你想让 httpd 访问某个目录可以执行semanage fcontext ...的建议对新手特别友好。我踩过的坑合集考前必看坑说明解决方法只chmod 777不看 SELinux权限给了还是 403先查 audit.log八成是 SELinux 拦的setenforce 0重启失效以为永久生效永久要改/etc/selinux/configsemanage命令不存在提示 command not founddnf install policycoreutils-python-utils只写了规则忘了 restorecon执行semanage fcontext后直接访问restorecon -Rv按规则打标签restorecon忘了-R只改了目录本身子文件没变加-R递归mv 过来的文件还是 403mv 保留原来的上下文用restorecon重新打标签setsebool忘加-P重启后开关还原永久要加-P把 SELINUX 改成 disabled想改回 enforcing 后登录不了/卡住改回 enforcing 重启等它自动 autorelabel 扫完关于mv 还是 403cp出来的新文件会继承目标目录的默认上下文但mv是移动文件的标签原封不动跟着走。所以把一个 html 从/homeuser_home_tmv 到/var/www/html标签还是user_home_thttpd 照样读不了——必须restorecon一下。这是我猜了半天才发现的。

相关新闻

抖音无水印下载器:终极解决方案,轻松保存高清视频

抖音无水印下载器:终极解决方案,轻松保存高清视频

抖音无水印下载器:终极解决方案,轻松保存高清视频 【免费下载链接】douyin_downloader 抖音短视频无水印下载 win编译版本下载:https://www.lanzous.com/i9za5od 项目地址: https://gitcode.com/gh_mirrors/dou/douyin_downloader 你是…

2026/8/4 15:57:03 阅读更多 →
抖音评论批量采集终极指南:3步自动化提取视频评论数据

抖音评论批量采集终极指南:3步自动化提取视频评论数据

抖音评论批量采集终极指南:3步自动化提取视频评论数据 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 抖音评论数据分析工具 TikTokCommentScraper 是一款专业高效的评论采集解决方案&#xff0…

2026/8/4 15:57:03 阅读更多 →
绝区零一条龙:5步开启全自动游戏体验的智能助手

绝区零一条龙:5步开启全自动游戏体验的智能助手

绝区零一条龙:5步开启全自动游戏体验的智能助手 【免费下载链接】ZenlessZoneZero-OneDragon 绝区零 一条龙 | 全自动 | 自动闪避 | 自动每日 | 自动空洞 | 支持手柄 项目地址: https://gitcode.com/gh_mirrors/ze/ZenlessZoneZero-OneDragon 还在为《绝区零…

2026/8/4 15:57:03 阅读更多 →

最新新闻

不装SSH客户端也能连服务器?极空间部署WebSSH实战

不装SSH客户端也能连服务器?极空间部署WebSSH实战

前言 远程维护Linux服务器时,通常需要在电脑中安装SSH客户端,并提前准备主机地址、端口和登录凭据。临时更换设备,或者只能使用平板和公共电脑时,重新配置客户端并不方便。 WebSSH是一套将SSH连接界面放进浏览器中的开源工具。部…

2026/8/4 16:38:33 阅读更多 →
Spring Boot自习室预约系统设计与实现

Spring Boot自习室预约系统设计与实现

1. 项目概述自习室预约系统是高校和公共图书馆场景下的刚需应用。这个基于Spring Boot实现的系统,核心解决了传统纸质登记方式存在的三大痛点:座位资源利用率低、预约过程不透明、管理统计困难。我在实际开发中发现,一个合格的预约系统需要同…

2026/8/4 16:38:33 阅读更多 →
5分钟掌握AI音频修复:让模糊语音重获新生

5分钟掌握AI音频修复:让模糊语音重获新生

5分钟掌握AI音频修复:让模糊语音重获新生 【免费下载链接】voicefixer General Speech Restoration 项目地址: https://gitcode.com/gh_mirrors/vo/voicefixer 你是否曾为嘈杂的会议录音而烦恼?是否曾为模糊不清的采访音频而遗憾?在数…

2026/8/4 16:38:33 阅读更多 →
2026年西藏智慧燃气安全监测管理系统的建设与服务商观察

2026年西藏智慧燃气安全监测管理系统的建设与服务商观察

高海拔地区的燃气安全监测标准,无法照搬平原方案。拉萨、日喀则、山南等城镇燃气管网建设起步较晚,管线里程持续扩展,高原施工条件艰苦,管道焊接和防腐质量比低海拔地区更难控制。昼夜近三十度温差、冬季零下二三十度持续低温&…

2026/8/4 16:38:33 阅读更多 →
ADP7118ARDZ-3.3-R7,带软启动的高精度线性稳压器

ADP7118ARDZ-3.3-R7,带软启动的高精度线性稳压器

简介ADP7118ARDZ-3.3-R7 是 ADI 推出 8 引脚带散热焊盘 SOIC 封装、固定 3.3V 输出的 CMOS 低压差线性稳压器,专为高精度低噪声模拟电路设计,输入兼容 2.7V 至 20V 宽电压,最大可输出 200mA 电流,适配工业、医疗、通信等多类设备的…

2026/8/4 16:38:33 阅读更多 →
Dart函数调用:fun与fun()的本质区别与应用场景

Dart函数调用:fun与fun()的本质区别与应用场景

1. Dart函数调用基础概念在Dart语言中,函数作为一等公民,其调用方式直接影响程序执行流程。初学者最容易混淆的就是fun和fun()这两种写法,它们看似相似却有着本质区别。1.1 函数标识符与函数调用fun代表的是函数对象本身,相当于获…

2026/8/4 16:37:33 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →