Linux Syslogd:使用/dev/log和/jail/apache/dev/log不会记录任何内容
时间:2020-01-09 10:43:49 来源:igfitidea点击:
我已经在/jail/apache目录的chroot Jail中配置了我的Apache。
但是,我的syslogd无法正常工作,使用/dev/log和/jail/apache/dev/log没有任何记录。
如何在带有SELinux的CentOS 5.x AMD64下解决此问题?
缺省情况下,syslogd守护程序正在侦听套接字/dev/log。
您可以使用lsof命令进行验证:
lsof -c syslogd lsof -c syslogd | grep '/dev/'
输出示例:
syslogd 38944 root 0u unix 0xffff8103215b08c0 28951978 /dev/log
但是,您需要从syslogd中设置其他套接字,以监听所有chroot环境。
默认情况下,您最多可以使用19个其他套接字。
如果您的环境需要更多,则必须在syslogd.c源文件中增加符号MAXFUNIX。
编辑/etc/sysconfig/syslog,执行:
# vi /etc/sysconfig/syslog
现在,设置/jail/apache/dev/log以及默认的/dev/null syslogd守护程序套接字路径:
SYSLOGD_OPTIONS="-m 0 -a /jail/apache/dev/log"
保存并关闭文件。
现在,重新启动syslogd:
# service syslog restart
确保您的syslogd守护进程正在侦听套接字/dev/log和/jail/apache/dev/log,执行:
# lsof -c syslogd | grep '/dev/'
输出示例:
syslogd 38944 root 0u unix 0xffff8103215b08c0 28951978 /dev/log syslogd 38944 root 7u unix 0xffff8103215b1100 28951980 /jail/apache/dev/log
SELinux问题
当您重新启动syslogd时,没有任何应有的工作,那么SELinux可能会引起问题。
您会注意到上面的命令并不表示syslogd使用了/dev/log和/jail/apache/dev/log套接字。
要解决此问题,请执行以下命令:
# setenforce 0 # service syslog restart # setenforce 1 # lsof -c syslogd | grep '/dev/'
使用带有1选项的setenforce命令将SELinux置于强制模式。
使用0选项将SELinux置于宽松模式。
这用于排除SELinux问题。
您可能需要修补/etc/init.d/syslog以永久解决此问题。