1、查看SELinux的状态
SELINUX 有 disabled、permissive、enforcing 3 种模式选择。enforcing:强制模式,只要 selinux 不允许,就无法执行;permissive:警告模式,将该事件记录下来,依然允许执行;disabled:关闭 selinux停用,启用需要重启计算机。
可通过命令getenforce 或者sestatus查看SELinux的状态,一般安装后默认状态是disabled。
还可通过查看配置文件/ect/selinux/config查看SELinux的状态
获取SELinux激活状态:selinuxenabled,0代表已激活,1代表未激活
2、三种状态切换
(1)disabled->enforcing
编辑/etc/selinux/config,修改SELINUX为enforcing,重启。
(2)enforcing->permissive
命令行:setenforce 0
(3)permissive->disabled
编辑/etc/selinux/config,修改SELINUX为disabled,重启。
3、安全上下文
安全上下文是一个简单的、一致的访问控制属性。所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在 SELinux 中,访问控制属性就叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。常常用下面的格式指定或显示安全上下文:
USER:ROLE:TYPE[LEVEL[:CATEGORY]]
安全上下文中的用户和角色标识符除了对强制有一点约束之外对类型强制访问控制策略没什么影响,对于进程,用户和角色标识符显得更有意义,因为它们是用于控制类型和用户标识符的联合体,这样就会与 Linux 用户账号关联起来;然而,对于客体,用户和角色标识符几乎很少使用,为了规范管理,客体的角色常常是 object_r,客体的用户常常是创建客体的进程的用户标识符,它们在访问控制上没什么作用。
检查帐号安全上下文:# id -Z
检查进程安全上下文:# ps -Z
检查目录安全上下文:# ls -Z
在启用SELinux的环境下,将/home下的用户文件index.html移动到/var/www/html目录下,如果使用cp操作进行移动,那么是可以正常访问index.html页面的;如果使用mv操作,页面将无法访问。原因是cp操作会重新生成安全上下文,而mv操作安全上下文是不变的。
有两种方法可以解决mv操作带来的安全上下文问题。一是将enforcing模式切换成permissive模式,当然安全强度要求高的时候不建议这么做,我们可以采用第二种方法:手动更改安全上下文。命令如下:chcon --reference=/var/www/html /var/www/html/index.html