首页 >> 企业信息

关闭SeLinux Linux服务器无需重启的方法

发布时间:2012-6-13 15:11:24 被阅览数:次 来源:厦门凌众科技有限公司

随着公司业务的不断开展,最近又租了台Linux服务器,本想用Debian,但机房的管理人员不会装,只好用RHEL5代替。
 
因为系统而要用Zend optimizer,我装的是v3.3,安装过程一切顺利,重启apache后发现并没有加载Zend optimizer模块,在apache的error_log里也没有发现记录,执行php -v命令有以下输出:
 
 
Failed loading /usr/local/Zend/lib/Optimizer-3.3.0/php-5.1.x/ZendOptimizer.so: /usr/local/Zend/lib/Optimizer-3.3.0/php-5.1.x/ZendOptimizer.so: cannot restore segment prot after reloc: Permission denied
 
 
 
上网查找原因,说是seLinux的原因,服务器确实开着selinux的,更改selinux的配置文件将其设为disable,可我不想重启服务器,有以下解决办法:
 
 
执行命令:setenforce 0 
 
就可以不重启关闭selinux了,不过关闭selinux而使zend optimizer生效毕竟不是完美的解决办法,继续关注中。
 
附selinux的资料:
 
 
selinux简介
 
SElinux 在linux内核级别上提供了一个灵活的强制访问控制系统(MAC),这个强制访问控制系统是建立在自由访问控制系统(DAC)之上的。
 
DAC是指系统的安全访问控制都是由系统管理员root自由管理的,不是系统强制行为
 
MAC运行的时候,比如一个应用程序或者一个线程以某个用户UID或者SUID运行的时候同样对一些其他的对象拥有访问控制限制,比如文件,套接子(sockets)或者其他的线程
 
通过运行SElinux MAC内核可以保护系统不受到恶意程序的侵犯,或者系统本身的bug不会给系统带来致命影响(把影响限定在一定范围内)
 
SElinux为每一个用户,程序,进程,还有文件定义了访问还有传输的权限。然后管理所有这些对象之间的交互关系
 
对于SELinux设定的对象全限是可以根据需要在安装时候规定严格程度,或者完全禁用
 
在大多数情况下,SElinux对于用户来说是完全透明的,普通用户根本感觉不到Selinux的存在,只有系统管理员才需要对这些用户环境,以及策略进行考虑。这些策略可以按照需要宽松的部署或者应用严格的限制,Selinux提供了非常具体的控制策略,范围覆盖整个linux系统
 
 
比如,当一个对象如应用程序要访问一个文件对象,内核中的控制程序检查访问向量缓存(AVC),从这里寻找目标和对象的权限,如果在这里没有发现权限定义,则继续查询安全定义的上下关联,以及文件权限,然后作出准许访问以及拒绝访问的决定。如果在var/log/messages出现avc: denied信息,则表明访问拒绝。
 
目标和对象通过安装的策略来决定自身的安全关联,同时这些安装的策略也负责给系统产生安全列表提供信息。
 
除了运行强制模式以外,SELinux可以运行在许可模式,这时候,检查AVC之后,拒绝的情况被记录。Selinux不强制使用这种策略.   
 
以下介绍一下SELinux相关的工具
 
/usr/bin/setenforce 修改SELinux的实时运行模式
 
setenforce 1 设置SELinux 成为enforcing模式
 
setenforce 0 设置SELinux 成为permissive模式
 
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数
 
/usr/bin/setstatus -v
 
察看系统的状态
 
 
以下是运行输出,请参考
 
SELinux status: enabled
 
SELinuxfs mount: /selinux
 
Current mode: enforcing
 
Policy version: 18

  • 电话咨询

  • 05925908028