STM32G473 IAP实战:用CAN总线给设备远程升级固件,附完整工程代码
2026/5/31 6:52:52
SELinux 是Security-Enhanced Linux(安全增强型 Linux)的缩写,是 Linux 内核里的一套强制访问控制(MAC)安全机制。它的核心作用是:
👉即使某个程序被攻破,也尽量限制它能干什么,防止“横向扩散”造成更大破坏。
下面用好理解的方式给你讲清楚。
Linux 原本只有自主访问控制(DAC):
rwx问题在于:
例如:
apache用户SELinux 在传统权限之上,再加一层强制规则:
谁(进程)
→能对什么(文件/端口/资源)
→做什么操作
即使你是 root,只要策略不允许,也不能做。
httpd 进程 → 可以读 /etc/shadow(如果权限给了)httpd_t 类型 → 只能访问 httpd_sys_content_t即使:
👉SELinux 不允许,就访问不了
每个对象都有标签:
ls-Z示例:
system_u:object_r:httpd_sys_content_t:s0组成:
用户 : 角色 : 类型 : 级别最重要的是:类型(Type)
这是 SELinux 的核心机制:
进程有类型(如httpd_t)
文件有类型(如httpd_sys_content_t)
策略决定:
httpd_t 能否访问 httpd_sys_content_t查看方式:
getenforce| 模式 | 说明 |
|---|---|
| Enforcing | 强制执行策略(真正生效) |
| Permissive | 只记录违规,不阻止 |
| Disabled | 完全关闭 |
Permission denied但:
👉90% 是 SELinux 拦了
cpxxx /var/www/html/标签变了 ❌
正确做法:
cp--preserve=context# 或restorecon -Rv /var/www/htmlausearch -m avc或:
/var/log/audit/audit.logsetenforce0如果问题立刻消失 👉 就是 SELinux
❌不推荐长期关闭
✔ 推荐做法:
vim/etc/selinux/configSELINUX=disabledSELinux 是 Linux 的“安全警察”
权限对了还不够,策略说了才算
如果你愿意,我可以:
你可以直接告诉我你现在卡在什么错误提示。