目录
- [SELinux 是如何保护资源的?](#SELinux 是如何保护资源的?)
- 什么是自由决定的访问控制(DAC)?它有什么特点?
- 什么是强制访问控制(MAC)?它有什么特点?
- [什么是 SELinux 上下文?](#什么是 SELinux 上下文?)
- [setenforce 0 命令的作用是什么?](#setenforce 0 命令的作用是什么?)
- [定义一条 SELinux 文件上下文规则,以便将 /custom 目录及目录中所有文件的上下文类型设置为 httpd_sys_content_t。](#定义一条 SELinux 文件上下文规则,以便将 /custom 目录及目录中所有文件的上下文类型设置为 httpd_sys_content_t。)
SELinux 是如何保护资源的?
SELinux
(Security-Enhanced Linux)是在传统用户/组权限基础上 ,增加一套基于 强制访问控制(MAC)
的安全机制。它通过为进程和资源打上安全标签
,并依据预定义的访问策略控制它们之间的交互 ,从而实现精细化权限管理,确保进程只能访问被允许的资源,有效防止恶意利用和误操作带来的系统破坏。
什么是自由决定的访问控制(DAC)?它有什么特点?
自由决定的访问控制
(DAC
, Discretionary Access Control)是一种由资源拥有者自主决定谁可以访问其资源
的权限控制方式,也是 Linux 中最常见的权限控制方式。
在 Linux 中,它体现在用户/组/权限(如 chmod、chown)机制中,具有灵活、易管理的特点,但安全性较低,容易被权限提升或入侵利用。
什么是强制访问控制(MAC)?它有什么特点?
强制访问控制
(MAC
,Mandatory Access Control)是一种由系统统一定义并强制执行的访问控制机制
,访问权限由预先设定的安全策略 决定,用户和进程无法自行更改。
它严格限制进程对资源的访问权限,即使是超级用户(root)也必须遵守,从而有效防止权限滥用和安全攻击,但其配置和管理相对复杂。
什么是 SELinux 上下文?
在 SELinux 中,每个文件、进程、目录和端口
都会被赋予一个称为SELinux 上下文
的安全标签。这个上下文由用户 (user)、角色 (role)、类型 (type)和安全级别 (level) 四部分组成。
SELinux 策略通过这些上下文来判断进程是否有权限访问特定资源 ,其中 类型(type)
是实现细粒度访问控制的关键字段。
setenforce 0 命令的作用是什么?
setenforce 0 命令的作用是将 SELinux 切换到 宽容模式
(Permissive mode)。在该模式下,SELinux 不会阻止任何访问操作,但会继续记录所有原本会被拒绝的访问尝试的日志,方便调试和排查问题。
定义一条 SELinux 文件上下文规则,以便将 /custom 目录及目录中所有文件的上下文类型设置为 httpd_sys_content_t。
使用semanage fcontext -a -t httpd_sys_content_t '/custom(/.*)?'
命令为 /custom 目录及其所有子文件设置 SELinux 上下文类型为 httpd_sys_content_t ,
然后通过restorecon -Rv /custom
递归应用该上下文,使得该目录及其中所有内容符合指定的 SELinux 策略要求。