Contents

今天搭一个LAMP的网站,我准备用phpmyadmin初始化一下表的结构,就把之前放在笔记本上压缩好的tar给scp上去了,结果顿时GG,访问php页面,返回一片空白,然后发现是selinux在作怪,上传的tar里的文件被标记成了不可运行的文件导致无法使用,那么,selinux到底是什么,能干什么呢
selinux目前在各大发行版上均已内置,它是由NSA最先开发并置入linux系统的,从2.6版内核起,selinux作为linux内核的一部分,逐渐走进了各种linux主机里,安卓系统在4.2开始也提供了selinux的可选项,5.0之后更是将其直接默认打开。
selinux基于最小权限原则设计,也就是在维持程序运行的情况下,赋予其尽可能少的权限。也正是因为这种设计思想,导致经常会有某些软件更新后权限需求发生变化,系统boolen策略没有跟上,导致程序无法运行,还有很多由自己开发的驱动,在开启了selinux的系统中无法运行的情况。还有最恶心的就是oracle的软件在安装时都会让你把selinux给关掉,于是,不会配置的人直接关了一了百了,会配置的人嫌麻烦也关了一了百了。
在个人用户的层面,selinux的存在应该是纯粹的累赘,因为他们根本不需要selinux提供的强权限管理,反而selinux给他们带来了很多乱七八糟的麻烦,所以,建议普通用户,对于自己信息安全要求不太高时,完全可以将其一关了之。
selinux将grant模型分成两大组 subject 和 object ,也就是主客体,主客体可以是文件、网络端口、用户等等,selinux就是提供了一种他们之间的交互权限的控制功能,而且这个控制是非常细粒度的,他可以针对各个不同的对象之间的互相访问分别作出限制规则。
关于规则的配置,过几天春季学期结束了,我要好好谈一谈,现在先说说怎么关掉它
selinux有三种状态:enforcing,permissive,disabled可通过sestatus命令查看当前状态
通过setenforce 0;
或者修改/etc/selinux/config里面的SELINUX=enforcing改为SELINUX=disabled即可

Contents