今天稍微有点切身体会了SElinux。让我郁闷了一上午。以前都对SElinux没有什么认识(事实上到写这段东西的时候还是没有什么认识的),大致知道SElinux就是Linux系统当中的一个强制安全策略一样的东西。但是一直都没有去仔细了解SElinux,至于开启和关闭它到底有什么不同,也不知道。但是由于今天让我整整郁闷一上午的事件看来,SELinux很有了解和研究的必要。
故事是这样的:
最近一直在弄Web Mail的邮件系统,所以其中会整合进Apache。好久没有弄Apache,有点生疏,所以安装-配置-运行当中难免会遇到这个那个的问题,所以,已经作好心理准备,等它报错,然后参考反馈信息来将它调试嘛~~然后这个过程一走,我又能印象深刻了。
......
原本应该是这样子的....结果,我没有关闭SElinux,当然我跟本就不知道会接下来的问题会和这个有关,无知来的嘛
......
我使用了yum install的httpd包,还安装了php5和其他一些相关的。接着就开始配置,然后运行。
[root@KSRV9 conf]# service httpd start
Starting httpd: [FAILED]
运行失败,反正也是有心理准备的。调试嘛~~结果回头才发现竟然FAILED下面没有提示任何信息...OK,我去/var/log/messages里面tail去。结果发现还是一片空白,messages里面只记录到刚才安装包的信息。开始皱眉,觉得很奇怪,即使我的httpd.conf有哪里配置错误,或者其他的问题,那么messages作为一个系统级的日志,也应该多多少少有一点线索的吧...
[root@KSRV9 conf]# tail /var/log/messages
“~~~~~~ 空白 ~~~~~”
一下子人摸不到头脑,没有错误日志,就凭个人感觉搞Apache么= =....
于是我到网上找了好多资料,也搜“启动Apache服务失败 没有信息反馈”等等...结果没有找到任何和这个问题相关的文档和说明...更郁闷
只能自己静下来分析。
使用Yum安装的httpd,好歹也是使用RPM包安装的,现在就算运行错误或者其他动作,好想系统根本就不知道,或者根本就不接受httpd,好想httpd不是系统的一部分一样。
......
还是说,是不是有什么安全策略一样的东西存在...想到这里,貌似突然想到一样东西,就是SELinux。但是又对这个不了解...姑且看看是不是和SEliux有关吧。
接着我将SElinux尝试关闭掉
[root@KSRV9 conf]# setup
Text Mode Setup Utility 1.19.2 (c) 1999-2006 Red Hat, Inc.
> Firewall configuration
SELinux: Enforcing
Permissive
* Disabled
接着仍然启动有错误的apache
[root@KSRV9 conf]# service httpd start
Starting httpd: httpd: Syntax error on line 147 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_access.so into server: /etc/httpd/modules/mod_access.so: cannot open shared object file: No such file or directory
[FAILED]
于是,就出现了提示信息:
“说的是Apache的配置文件/etc/httpd/conf/httpd.conf当中第147行有错误,里面的/etc/httpd/modules/mod_access.so没有找到不能载入服务中。”
很好,有了提示才能摸着去解决。
当然,我知道很多都高手都了解,但是对于我这样的初学者可能就对SELinux这样的系统部分不了解。然后可能遇到类似的问难也一时间没有线索去解决。这里我写这篇希望能够帮助和我一样遇到这个问题发生困惑的朋友。至于SELinux,我一定会去研究和了解,然后再把心得和体会写出来。

