摘要

有台 Ubuntu 14.04 的机器,想要查看sshd登录日志,发现没有 /var/log/auth.log 日志文件,同时连 /var/log/syslog 日志文件都不存在,遂排查并处理该问题。

基本情况:

1.rsyslog服务正常启动

2.rsyslog配置了记录日志文件

3./var/log目录中,没有相关日志文件

原因:

/var/log 目录权限是root:root 0755,rsyslog服务配置的用户和组是 syslog:adm,导致无权限在/var/log目录创建相关日志文件。

解决方法:

更改目录所有者和组

sudo chown syslog.adm /var/log/

1.背景

/var/log 中没有auth.log 和 syslog日志文件

admin@003:/var/log$ ls syslog
ls: cannot access syslog: No such file or directory

rsyslog服务已配置记录日志文件 /var/log/auth.log/var/log/syslog

admin@003:/var/log$ cat /etc/rsyslog.d/50-default.conf
#  Default rules for rsyslog.
#
#                       For more information see rsyslog.conf(5) and /etc/rsyslog.conf

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
kern.*                          -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
mail.*                          -/var/log/mail.log
#user.*                         -/var/log/user.log

rsyslog服务进程启动

admin@003:/var/log$ sudo service rsyslog status
rsyslog start/running, process 12248

2.原因

/var/log 目录权限的问题

rsyslog配置的用户syslog和组adm,但是 /var/log 目录的权限是 root:root 0755,这意味着rsyslog无法在目录中创建新的日志文件,例如: /var/log/auth.log/var/log/syslog 文件。

rsyslog配置文件/etc/rsyslog.conf中的用户和组

admin@003:/var/log$ grep File /etc/rsyslog.conf
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640

/var/log目录权限

admin@003:/var/log$ ls -alh /var/log/ -d
drwxr-xr-x 8 root root 4.0K Sep  5 06:33 /var/log/

rsyslogd 进程,用户 syslog

admin@003:/var/log$ ps -ef |grep rsyslog
syslog   12248     1  0 10:22 ?        00:00:00 rsyslogd

3.解决方法

1.更改目录所有者和组

admin@003:/var/log$ sudo chown syslog.adm /var/log/

调整后,日志文件成功生成

admin@003:/var/log$ sudo service rsyslog restart
rsyslog stop/waiting
rsyslog start/running, process 12248
admin@003:/var/log$ ls auth.log
auth.log
admin@003:/var/log$ ls syslog
syslog

使用该方法解决的问题

2.目录设置所有用户都可写

sudo chmod 0777 /var/log

3.手动创建auth.log 并将所有者和组修改为syslog:adm

sudo touch /var/log/auth.log
sudo chown syslog.adm /var/log/auth.log

4.更改rsyslogd的运行用户和组,不推荐

sudo vim /etc/rsyslog.conf
$FileOwner root
$FileGroup root

参考

标签: Ubuntu, 问题记录

添加新评论