我在使用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
答案 0 :(得分:1)
查看/var/log/audit/audit.log,了解SE Linux已拒绝哪些操作(如果有)。
如果SE Linux拒绝访问,则可以使用命令“audit2allow”生成允许这些操作的策略。不要盲目地允许所有操作,只允许那些看似相关的操作。