注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

笑遍世界@网易博客

明天还会在路上……

 
 
 

日志

 
 
关于我

Stay hungry, stay foolish. 工作用脑,生活用心! 走过山重水复,必然迎来柳暗花明! 受苦的人没有悲观的权利,远征的人没有流泪的资格。 Live each day as if we should die tomorrow.

网易考拉推荐
 
 

apache访问/var/www之外的目录没权限的问题(万恶的SELinux)  

2011-06-25 10:01:51|  分类: Linux技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
前几天,我搞了个准备一些git或者hg的repositories,为了网页访问的方便,我找到了其中一个工具,Git自带的gitweb,但是当我把它作为CGI让apache调用它去发布/home/repo/pub目录时,不管怎样都访问不到/home/repo/pub下面的东西,与此同时,在/var/www目录下的文件和目录,通过apache访问是正常的。而且,我不通过apache,而直接运行gitweb.cgi程序,是可以访问/home/repo/pub目录下的git repository的。经过很长时间来排查原因,终于,明白了,万恶的selinux啊,权限问题。
其实,原因是我的机器SElinux处于开启状态,而SELinux默认的策略,apache的进程默认只能访问/var/www目录。
解决方法:
1. 关掉SELinux,并重启系统让其生效。
    修改/etc/selinux/config配置文件,设置SELINUX=disabled
    如果不想重启系统,使用命令:setenforce 0
    (也可在grub.conf修改kernel启动参数,添加selinux=0。当然需要重启系统)
2. 或者,修改SELinux的设置,让apache进程可以访问了我的目录。
     命令为:chcon –t var_t /home/repo;       chcon –R –t httpd_sys_content_t pub
当我们把SELinux的权限问题解决后,重启了Apache,就一切正常了,我的GitWeb就可以正常运行了。
我们在局域网中使用,网络环境相对安全,所以实际测试过程中一般都disable SELinux的。当然,为了安全也是可以开启的。


下面,再简单一下SELinux相关的知识吧。
查看selinux状态:/usr/bin/setstatus -v
查看和设置SELinux的当前工作模式 :getenforce/setenforce
查看和设置当前Policy(策略)的布尔值:getsebool/setsebool
查看文件(夹)、进程和用户的SELinx属性:ls -Z / ps -Z / id -Z
改变文件或文件夹的content标记:chcon

SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能。比MS NT所谓的C2等高得多。
应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并提供对机密性和完整性有很高要求的信息很高的安全保障。 SELinux vs Linux 普通Linux安全和传统Unix系统一样,基于自主存取控制方法,即DAC,只要符合规定的权限,如规定的所有者和文件属性等,就可存取资源。在传统的安全机制下,一些通过setuid/setgid的程序就产生了严重安全隐患,甚至一些错误的配置就可引发巨大的漏洞,被轻易攻击。
而SELinux则基于强制存取控制方法,即MAC,透过强制性的安全策略,应用程序或用户必须同时符合DAC及对应SELinux的MAC才能进行正常操作,否则都将遭到拒绝或失败,而这些问题将不会影响其他正常运作的程序和应用,并保持它们的安全系统结构。

Security-Enhanced Linux (SELinux) is a Linux feature that provides a mechanism for supporting access control security policies, including United States Department of Defense-style mandatory access controls, through the use of Linux Security Modules (LSM) in the Linux kernel. It is not a Linux distribution, but rather a set of Kernel modifications and user-space tools that can be added to various Linux distributions. Its architecture strives to streamline the volume of software charged with security policy enforcement, which is closely aligned with the Trusted Computer System Evaluation Criteria (TCSEC, referred to as Orange Book) requirement for trusted computing base (TCB) minimization (applicable to evaluation classes B3 and A1) but is quite unrelated to the least privilege requirement (B2, B3, A1) as is often claimed.

参考资料:
http://hi.baidu.com/gtfcugb/blog/item/89381aeafd7de3d4d439c92e.html
http://www.eun.cn/?p=2488
http://en.wikipedia.org/wiki/Security-Enhanced_Linux
  评论这张
 
阅读(2004)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017