日期:2014-05-17  浏览次数:20889 次

rhl设置umask导致apache服务器异常
在一个生产环境rhl服务器上,根据第3方安全公司的建议进行了如下其中一项设置:
vi /etc/profile
vi /etc/csh.login
vi /etc/csh.cshrc
vi /etc/bashrc
在上述文件中增加 umask 027
我们知道umask的作用,设置系统用户的创建目录和文件的默认的初始权限,根据umask的工作原理,设置该参数后,之后创建的目录或在文件的默认权限是777-027=750,注意最后一个0,这个是针对other的权限设置,貌似看起来没啥问题呀,为了安全嘛!
但是,悲催的是没有考虑周全,在一台apache服务器上出现问题了,具体现象是客户报告无法浏览刚刚上传的图片(apache文件服务器),由于做这个参数配置操作的是另外一个同事,但是我并不知道,在登陆服务器之后用手工mkdir和touch了几个文件没发现什么问题,唯一的问题是新文件出来的权限与已有的有所不同,就是少了other列的权限,而已有的文件都有other的r权限,发现这个问题的时间还算短(5min之内,包括了与动手操作配置该参数的同事进行的争辩,还好有点见识,不然囧大了),于是立即让该同事恢复上述配置文件,之后重启apache,这样重新操作上次的文件已经可以正常浏览了,对于已经上传无法浏览的文件,批量执行 chmod o+x *.jpg也解决了。
好了,现在分析下原因:0、系统创建新目录和文件的默认权限被修改了;1、由于apache运行用户是独立的nologin的用户(比如nobody或者apache);重点在于第1点,出于安全考虑apache一般都不会用系统正常帐户登陆,虽然用的是root用户执行启动apache,但是内部真正的操作却是这个nologin用户,对应root而言当然是在other组里面了,所以就没有了r的权限,所以就无法正常浏览上传的图片,至于为什么可以上传,这是因为目录有x的权限。
-The End-