SELinux相关

SELinux的全称是Security Enhanced Linux, 直译就是安全加强的Linux。在SELinux之前,root账号能够任意的访问所有文档和服务;如果某个文件设为777,那么任何用户都可以访问甚至删除;这种方式称为DAC(主动访问机制),很不安全;SELinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个标签进行区分,只有对应的标签才能允许访问。否则即使权限是777,也是不能访问的。

这个标签在程序或者进程上叫做domain(域),在访问对象或者文件上叫做context (上下文)。

查看上下文可以通过ls,查看域可以使用 ps Z -Z,wKiom1TxMoOAjvJaAADi0Q1p4ZU028.jpg

wKiom1TxM_SSt5DZAAOVpAB9qqk548.jpg测试,在/var/www/html/下新建一个文档index.html,在其他目录下新建另一个文档index2.html,然后移动到/var/www/html/ 下

vi /var/www/html/index.html

this is a test

vi /root/index2.html

this is a test too

mv /root/index2.html /var/www/html/

网页访问:http://localhost/index.html 和http://localhost/index2.html 

wKiom1TxNwngy2PIAAFffW9Pato953.jpg

之所以会出现这种情况是因为index2.html与/var/www/html目录的标签不匹配

wKioL1TxOTeQ2r6zAAD09vuKR9c927.jpg

如何修复?有两种方式,一种是通过restorerecon( restore context) 修复继承当前目录默认的上下文;一种是通过chcon (change context) 修改当前的上下文

自动修复 

[root@localhost html]# restorecon -R /var/www/html/

wKioL1TxOwOxeBXNAADVDYtUEls069.jpg

也可以强行指定另外一个文件的上下文来设置

[root@localhost html]# chcon --reference=/var/www/html/index.html /var/www/html/index1.html

默认的上下文属性从哪里来?是通过 semanage 来配置


你可能感兴趣的:(linux,selinux,书签匹配)