为什么syslog-ng无法使用SELinux TYPE syslogd_exec_t启动?

时间:2012-07-05 16:29:35

标签: linux syslog selinux syslog-ng

我在使用SELinux强制执行的CentOS 5.7系统上安装了syslog-ng。

由于错误,我无法通过“service syslog-ng start”启动syslog-ng服务:

[root@localhost ~]# service syslog-ng start
Starting syslog-ng: 
GThread-ERROR **: file gthread-posix.c: line 135 (): error 'Operation not permitted' during 'pthread_getschedparam (pthread_self(), &policy, &sched)'
aborting...
                                                           [FAILED]

我通过谷歌查看并获得如下:

This is probably related to your SELinux policy, which does not allow syslog-ng  get the scheduler parameters. 

我可以通过

看到SELinux类型
[root@localhost ~]# ls -lZ /sbin/syslog*
-rwxr-xr-x  root root system_u:object_r:syslogd_exec_t /sbin/syslogd
-rwxr-xr-x  root root system_u:object_r:syslogd_exec_t /sbin/syslog-ng

但是使用相同的SELinux类型“syslogd_exec_t”,syslogd可以通过“service syslog start”启动,为什么SELinux不能允许syslog-ng启动?我认为他们都需要获得“调度程序参数”。

如何让syslog-ng与SELinux类型“syslogd_exec_t”一起使用,因为它们本身都适用于syslog机制。

感谢, EM

1 个答案:

答案 0 :(得分:1)

查看/var/log/audit/audit.log,了解SE Linux已拒绝哪些操作(如果有)。

如果SE Linux拒绝访问,则可以使用命令“audit2allow”生成允许这些操作的策略。不要盲目地允许所有操作,只允许那些看似相关的操作。