selinux作用是为了加固操作系统,是NSA的一个项目,为了让系统安全性达到军方级别
CS:安全上下文(context secure),含义就是:一个进程到底能访问哪些文件取决于发起进程的用户的权限和访问的文件的权限设定
vim /etc/sysconfig/selinux :
strict: NFA 开发,全系统进程和文件都会被selinux 所控制
targeted:redhat开发,只对某些需要控制的进程和文件进行控制
enforcing :强制生效
permissive:如果哪个进程访问了本来没有权限的文件,不会被阻止,但是会被记录到日志文件里面
disabled:关闭selinux
因为系统中selinux 规定的规则有很多(众多规则合称策略),为了提高规则工作效率,因此系统中规则通常以二进制形式存在(编辑的时候是文本格式,但是生效的时候通常是二级制策略)这些策略一般放在 /etc/selinux/targeted/policy/,selinux把这些规则都做成了“开关(on/off)”形式(bool类型)
getsebool -a #查看系统中所有“开关形式”的规则
getenforce #查看selinux 的status
setenforce 0/1 #设置selinux的status(临时生效)
ls -Z #查看文件的标签
ps auxZ #查看进程的标签(用户:角色:类型)
ps auxz | grep httpd #查看httpd的标签
ls -dZ /var/www/html #查看此目录的标签
#上面进程和目录被selinux定义的类型相同,所以能被访问
chcon -t #改文件类型
-R #该目录类型(递归修改)
--reference
chcon -R --reference=/var/www/html /www #参照/www更改/var/www/html文件类型
chcon -t default_t /www/index.html #更改文件类型为default_t
restorecon -R #恢复目录的文件原有默认属性
-F #强制恢复
-v #显示信息
restorecon -R -v -F /www #强制恢复/www目录的默认属性
semanage fcontext #更改文件安全上下文(永久性更改)
getsebool -a | grep httpd #查看httpd服务能用的“开关”
如何开启/关闭这些规则:
setsebool httpd_enable_cgi=1 #开启
setsebool httpd_enable_cgi=1 #关闭