我在 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