上周突发怪例, 情况如下:
Linux版本:AS4 update2
postgresql版本:8.1.0
rpm包安装后,postgresql的Service无论如何都启动不来。第一次失败,查看Log,空;第二次重试,报错:无法创建目录‘/var/lib/pgsql/data/pg_log’: 文件已存在。删除该文件夹,启动,失败。
在另一台机器上重试,重新安装操作系统(系统相同),安装时将系统自带的Postgres7.4安装。服务可以启动,配置文件时很郁闷,8比7果然是一个较大的飞跃。于是卸载掉7,安装8,启动服务成功。
对比第三台机器,操作系统centos,kernel为2.6,和AS4相同。未安装系统自带的Postgres7,直接安装Postgres8,直接安装无异常。
问题的根源与解决办法:SELinux(Security Enhanced Linux)是4的新安全机制,是在内核之上增加了一层访问控制。
SELinux:Security-Enhanced Linux。由NSA搞的(不是NASA),是national security agency搞的咚咚。
http://www.nsa.gov/selinux/
SELinux极大的增强了Linxu的安全性。在SELinux下,即使root要不是为所欲为。这样万一WebServer被攻陷了,攻击者的收获也可能仅限与此,无法对其他系统进行破坏。
当然也狠狠的郁闷了我这个菜鸟一把。
回想起来,其实安装时,都问过是否启用SELinux的选项。(大概是在防火墙设置)centos3,AS4,ES4都提示了,只不过一直没在意。
简单的解决办法:
将/etc/selinux/config中的SELINUX=enforcing 改成SELINUX=Disabled,将SELinux停止。
还找到了一个配置文件/etc/sysconfig/selinux,不过该文件只是指向了上面文件,改哪个都一样。
当然这种办法一棍子打死了NSA的辛苦心血,失去了B1级别的安全性。喝杯凉水,还是可以慢慢配置的。
上次由于时间紧张,急了就把SELinux全部停掉了,罪过罪过。
配置:/etc/selinux/targeted/booleans,就可以发现我们需要的配置都在这里,以0和1表示布尔值。
如果觉得麻烦,在“系统设置”“安全级别”中同样也可以配置SELinux。
最后,教训是,以后如果一些服务出了古怪的问题,那么不妨执行sestatus,看看是否被SELinux给屏蔽掉了。
几几歪歪写了一堆,没有好好干活,罪过罪过。
Linux版本:AS4 update2
postgresql版本:8.1.0
rpm包安装后,postgresql的Service无论如何都启动不来。第一次失败,查看Log,空;第二次重试,报错:无法创建目录‘/var/lib/pgsql/data/pg_log’: 文件已存在。删除该文件夹,启动,失败。
在另一台机器上重试,重新安装操作系统(系统相同),安装时将系统自带的Postgres7.4安装。服务可以启动,配置文件时很郁闷,8比7果然是一个较大的飞跃。于是卸载掉7,安装8,启动服务成功。
对比第三台机器,操作系统centos,kernel为2.6,和AS4相同。未安装系统自带的Postgres7,直接安装Postgres8,直接安装无异常。
问题的根源与解决办法:SELinux(Security Enhanced Linux)是4的新安全机制,是在内核之上增加了一层访问控制。
SELinux:Security-Enhanced Linux。由NSA搞的(不是NASA),是national security agency搞的咚咚。
http://www.nsa.gov/selinux/
SELinux极大的增强了Linxu的安全性。在SELinux下,即使root要不是为所欲为。这样万一WebServer被攻陷了,攻击者的收获也可能仅限与此,无法对其他系统进行破坏。
当然也狠狠的郁闷了我这个菜鸟一把。
回想起来,其实安装时,都问过是否启用SELinux的选项。(大概是在防火墙设置)centos3,AS4,ES4都提示了,只不过一直没在意。
简单的解决办法:
将/etc/selinux/config中的SELINUX=enforcing 改成SELINUX=Disabled,将SELinux停止。
还找到了一个配置文件/etc/sysconfig/selinux,不过该文件只是指向了上面文件,改哪个都一样。
当然这种办法一棍子打死了NSA的辛苦心血,失去了B1级别的安全性。喝杯凉水,还是可以慢慢配置的。
上次由于时间紧张,急了就把SELinux全部停掉了,罪过罪过。
配置:/etc/selinux/targeted/booleans,就可以发现我们需要的配置都在这里,以0和1表示布尔值。
如果觉得麻烦,在“系统设置”“安全级别”中同样也可以配置SELinux。
最后,教训是,以后如果一些服务出了古怪的问题,那么不妨执行sestatus,看看是否被SELinux给屏蔽掉了。
几几歪歪写了一堆,没有好好干活,罪过罪过。