Security enhanced linux
UGO安全模型是基于用户和组的模型,称为自由决定的访问控制。
SELinux安全模型基于对象的规则控制,称为强制访问控制。

理解:UGO模型对有些场景不好处理,SELinux从另外一个维度好解决。
比如***web服务器后,获取到apache用户和组的权限。那么它对系统上Others类别用户的任何文件都可以读或者写入的权限。
SELinux用于规定进程可以文件和目录,端口。每个文件,进程,端口都有标签,也叫上下文。SELinux用它来确定进制可以访问文件,端口和目录。

SELinux 标签有多种上下午:用户、角色、类型、敏感度。SElinux会根据 类型 来定规则。
比如/var/www/html中文件和目录的 类型为 httpd_sys_content_t。

显示selinux上下文:ls -Z, ps -axZ

配置selinux模式:强制,许可,禁用。配置文件位置:/etc/selinux/config
配置模式:setenforce [ Enforcing | Permissive | 1 | 0 ]
如果禁用,需要重启系统。

查看当前模式:getenforce

初始SELinux上下文:继承于父目录。如果文件移动,原始SELinux上下文不会变化( mv 和 cp -p or -a)

更改文件的SELinux上下文: chcon和restorecon(推荐)

更改文件的SELinux上下文:semanage fcontext -a -t httpd_sys_content_t '/webcontent(/.*)?'
restorecon -Rv /webcontent

安装setroubleshoot-server,以便查看/var/log/messages 定位SELinux原因。

setsebool 停用或者激活SELinux规则