如何在Linux中更改默认sudo日志文件

时间:2020-03-21 11:44:09  来源:igfitidea点击:

本教程介绍如何在Linux中更改默认sudo日志文件。
默认情况下,所有Sudo事件都将在基于Debian的系统中登录/var/log/auth.log文件,如Ubuntu。
在基于RPM的系统中,如CentOS和Fedora,Sudo活动存储在/var/log/secure /文件中。
在OpenSuse中,Sudo日志存储在/var/log/messages文件中。
但是,它们并不致力于sudo日志。
如果我们查看这些文件,我们会注意到还有其他类型的日志,例如Cron,SSH,Systemd等,也存储其中。
如果我们想要设置的专用文件,用于记录成功和不成功的sudo尝试(以及错误),请按照下面给出的步骤操作。

在Linux中更改默认sudo日志文件

默认情况下,sudo将通过syslog记录,但这可以通过"/etc/sudoers"文件更改。
首先,我们将看到如何在基于Debian的系统中进行。

如何在ubuntu中更改默认sudo日志文件

在Ubuntu中,sudo活动存储在/var/log/auth.log文件中。

要在Ubuntu 20.04中更改或者设置sudo的专用日志文件,请使用命令编辑"/etc/sudoers"文件:

$sudo visudo

最后添加以下行:

Defaults syslog=local1

按Ctrl + X,然后按Y以保存并退出该文件。

接下来,编辑"/etc/rsyslog.d/50-default.conf"文件:

$sudo nano /etc/rsyslog.d/50-default.conf

在"Auth,authpriv"之前,添加以下行(行号8)标记为红色。

[...]
local1.*                        /var/log/sudo.log
auth,authpriv.*                 /var/log/auth.log
[...]

其中/var/log/sudo.log是将存储所有sudo日志的文件。
保存并关闭文件(Ctrl + X和Y)。

最后,重新启动rsyslog服务以生效更改:

$sudo systemctl restart rsyslog

从现在开始,所有sudo尝试都将登录/var/log/sudo.log文件。
例如,我将运行以下命令:

$sudo apt update

现在让我验证它是否已登录/var/log/sudo.log文件:

$cat /var/log/sudo.log

示例输出:

Jan 2 12:14:18 theitroad sudo: sk : TTY=pts/0 ; PWD=/home/sk ; USER=root ; COMMAND=/usr/bin/apt update

查看上面的输出中的最后一行?
"apt更新"命令在/var/log/sudo.log文件中记录。

如何在Debian中更改默认sudo日志文件

使用命令编辑"/etc/sudoers"文件:

$sudo visudo

最后添加以下行:

Defaults syslog=local1

保存并关闭文件。

接下来,编辑"/etc/rsyslog.conf"文件:

$sudo nano /etc/rsyslog.conf

在"auth,authpriv"之前,添加以下行(行号61)标记为红颜色。
*; local1.none"行。

[...]
local1.*                        /var/log/sudo.log
auth,authpriv.*;local1.none     /var/log/auth.log
[...]

按Ctrl + X然后按Y保存并关闭文件。

重新启动rsyslog服务以生效更改:

$sudo systemctl restart rsyslog

从现在开始,所有sudo尝试都将登录/var/log/sudo.log文件。

如何在Centos,Fedora更改默认sudo日志文件

Sudo日志保存在基于RPM的系统中的"/var/log/secure"文件中,例如CentOS和Fedora。

要在CentOS 8中设置专用sudo日志文件,请使用命令编辑"/etc/sudoers"文件:

$sudo visudo

此命令将在VI编辑器中打开/etc/sudoers文件。
按"i"进入插入模式并在最后添加以下行:

[...]
Defaults syslog=local1

按ESC和类型:WQ保存和关闭。

接下来,编辑"/etc/rsyslog.conf"文件:

$sudo nano /etc/rsyslog.conf

添加/修改以下行(行号46和47):

[...]
*.info;mail.none;authpriv.none;cron.none;local1.none   /var/log/messages
local1.*                /var/log/sudo.log
[...]

按Ctrl + X,然后按Y以保存并关闭文件。

重新启动rsyslog以生效更改。

$sudo systemctl restart rsyslog

从现在开始,所有sudo尝试都将登录/var/log/sudo.log文件。

$sudo cat /var/log/sudo.log

示例输出:

Jan 3 17:13:26 centos8 sudo[20191]: theitroad : TTY=pts/0 ; PWD=/home/theitroad ; USER=root ; COMMAND=/bin/systemctl restart rsyslog
Jan 3 17:13:35 centos8 sudo[20172]: theitroad : TTY=pts/0 ; PWD=/home/theitroad ; USER=root ; COMMAND=/bin/systemctl status rsyslog
Jan 3 17:13:51 centos8 sudo[20176]: theitroad : TTY=pts/0 ; PWD=/home/theitroad ; USER=root ; COMMAND=/bin/yum update

如何在opensuse中更改默认sudo日志文件

sudo日志保存在suse和opensuse中的"/var/log/messages"文件中。

要在OpenSuse,编辑"/etc/sudoers"文件中设置专用sudo日志文件:

$sudo visudo

此命令将在VI编辑器中打开/etc/sudoers文件。
按"i"进入插入模式并在最后添加以下行:

[...]
Defaults syslog=local1

按ESC和类型:WQ保存和关闭。

接下来,编辑"/etc/rsyslog.conf"文件:

$sudo nano /etc/rsyslog.conf

添加/修改以下行(行号168,180):

# Add the following line at line number 168:
*.*;mail.none;news.none;local1.none     -/var/log/messages
# line 180: remove [local1]
local0.*                      -/var/log/localmessages
# Add this line at the end:
local1.*                       -/var/log/sudo.log

保存并关闭文件。
重新启动rsyslog以生效更改:

$sudo systemctl restart rsyslog