[CentOS7] SELinux
声明:本文主要总结自:鸟哥的Linux私房菜-第十六章、程序管理與 SELinux 初探,如有侵权,请通知博主
SELinux = Security Enhanced Linux
传统的文件权限与账号关系:DAC模式(Discretionary Access Control,自主式存取控制)
依据进程的拥有者与文件的rwx权限来决定进程有无读写能力
以政策规则规定特定进程读取特定文件:MAC模式(Mandatory Access Control,委托式存取控制)
通过SELinux针对特定进程与特定文件资源来进行权限的管制
SELinux运行的各部分之间的关系
详细参考:鸟哥的Linux私房菜-SELinux
获取相关的策略类型
获取某策略类型的三种方法:
设定策略类型为开启状态(未写入设定文件)
设定策略类型为永久开启状态(写入设定文件)
查看策略类型下的具体规则
查看fcron_crond该策略类型下有哪些规则
所有关于SELinux的指令:
sestatus ==> 查看目前的SELinux使用的哪个政策(Policy: 1.targeted 2.minimum 3.mls)
setsebool [ -P ] xxx 1 ==> 设置SELinux的某规则为开启状态
getsebool [ -a ] ==> 列出SELinux所有规则与该规则的开启状态(布尔值)
seinfo [ -u | r | t | b ] ==> 列出SELinux所有[-u(user)身份识别的种类],[-r(role)角色的种类],[-t(type)类别的种类],[-b(boolean)规则的种类]
sesearch [-A] [-s 主体类别] [-t 目标类别] [-b 规则类别] ==> 列出某规则允许放行的文件的SELinux的类别
例如:
sesearch -A ==> 列出所有放行(-A allow)的规则
sesearch -A -s crond_t -t admin_home_t ==> 列出所有主体类别为crond_t,目标类别为admin_home_t的所有放行规则
sesearch -A -b fcron_crond ==> 列出fcron_crond规则下的详细信息
sesemanage boolean -l ==> 列出SELinux所有规则与该规则的开启状态(布尔值),与 getsebool -a 效果相同
chcon [-R] [-u user] [-r role] [-t type] 文件 ==> 手动更改文件的SELinux的类型
chcon [-R] --reference=文件1 文件2 ==> 手动更改文件2的SELinux的类型(参考文件1的SELinux的类型)
restorecon [-R] [-v] ==> 让文件或目录恢复正确的SELinux的类型(-R 包含子目录,-v 将过程显示到屏幕上)
semanage fcontext [-a | m | d] ==> -a增加,-m修改,-d删除预设的SELinux的类型
semanage fcontext -l ==> 查询所有预设(默认)的目录和文件的SELinux的类型,当使用restorecon -Rv 就能将文件恢复为预设(默认)SELinux的类型
semanage fcontext -a -t admin_home_t "/srv/test(/.*)?" ==> 将/srv/test目录即目录下的预设(默认)SELinux的类型设为admin_homt_t类型