0

我在 CentOS 5.7 系统上安装了 syslog-ng,并执行 SELinux。

由于以下错误,我无法通过“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

4

1 回答 1

1

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

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

于 2012-07-29T07:45:38.137 回答