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

本简要指南说明了如何更改默认值 sudo Linux 发行版中的日志文件,例如 Debian、Ubuntu、CentOS、 Fedora 和 openSUSE。

介绍

为什么我们要更改默认值 sudo 日志文件? 你可能想知道。 默认情况下,所有 sudo 事件将被登录 /var/log/auth.log Ubuntu 等基于 Debian 的系统中的文件。 在 CentOS 等基于 RPM 的系统中 Fedora, 这 sudo 活动存储在 /var/log/secure/ 文件。 在 openSUSE 中, sudo 日志存储在 /var/log/messages 文件。

然而,他们并不致力于 sudo 日志。 如果您查看这些文件,您会注意到其中还存储了其他类型的日志,例如 cron、ssh、systemd 等。 因此,如果要设置一个专用文件来记录成功和不成功 sudo 尝试(以及错误),请按照以下步骤操作。

更改默认值 sudo Linux中的日志文件

默认情况下 sudo 将通过 系统日志但这可以通过 /etc/sudoers 文件。 首先,我们将了解如何在基于 Debian 的系统中执行此操作。

1. 如何在 Ubuntu 中更改默认 Sudo 日志文件

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

更改或设置专用日志文件 sudo 在 Ubuntu 20.04 中,编辑“/etc/sudoers” 文件使用命令:

$ sudo visudo

在末尾添加以下行:

Defaults syslog=local1

在 Debian、Ubuntu 中设置 Sudo 日志文件位置

CTRL+X 其次是 保存并退出文件。

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

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

在“auth,authpriv.*“ 线。

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

在 Debian、Ubuntu 中更改 Sudo 日志文件位置

这里, /var/log/sudo.log 是所有的文件 sudo 日志将被存储。 Save 和 close 文件(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

样本输出:

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

看到上面输出的最后一行了吗? 这 ”apt update” 命令已登录 /var/log/sudo.log 文件。

2. 如何在 Debian 中更改默认 Sudo 日志文件

编辑 ”/etc/sudoers” 使用命令在 Debian 中创建文件:

$ sudo visudo

在末尾添加以下行:

Defaults syslog=local1

Save 和 close 文件。

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

$ sudo nano /etc/rsyslog.conf

在“auth,authpriv.*;local1.none“ 线。

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

Save 和 close 通过按 CTRL+X 然后按 Y 来创建文件。

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

$ sudo systemctl restart rsyslog

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

3. 如何在 CentOS 中更改默认 Sudo 日志文件, Fedora

这 sudo 日志保存在“/var/log/secure” 文件在基于 RPM 的系统中,例如 CentOS 和 Fedora.

设置一个专用 sudo CentOS 8 中的日志文件,编辑“/etc/sudoers” 文件使用命令:

$ sudo visudo

此命令将在 Vi 编辑器中打开 /etc/sudoers 文件。 按 ”一世” 进入插入模式并在末尾添加以下行:

[...]
Defaults syslog=local1

按 ESC 并输入 :wq 保存和 close.

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

$ sudo nano /etc/rsyslog.conf

添加/修改以下行(行号 4647):

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

在 CentOS 中更改 Sudo 日志文件位置

在 CentOS 中更改 Sudo 日志文件位置

按 CTRL+X 然后按 Y 保存并 close 文件。

重新启动 rsyslog 以使更改生效。

$ sudo systemctl restart rsyslog

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

$ sudo cat /var/log/sudo.log

样本输出:

May 3 17:13:26 centos8 sudo[20191]: ostechnix : TTY=pts/0 ; PWD=/home/ostechnix ; USER=root ; COMMAND=/bin/systemctl restart rsyslog
May 3 17:13:35 centos8 sudo[20202]: ostechnix : TTY=pts/0 ; PWD=/home/ostechnix ; USER=root ; COMMAND=/bin/systemctl status rsyslog
May 3 17:13:51 centos8 sudo[20206]: ostechnix : TTY=pts/0 ; PWD=/home/ostechnix ; USER=root ; COMMAND=/bin/yum update

看法 sudo CentOS 中的日志文件

看法 sudo CentOS 中的日志文件

4. 如何在 openSUSE 中更改默认 Sudo 日志文件

这 sudo 日志保存在“/var/log/messages” SUSE 和 openSUSE 中的文件。

设置一个专用 sudo openSUSE 中的日志文件,编辑“/etc/sudoers” 文件使用命令:

$ sudo visudo

该命令将打开 /etc/sudoers Vi 编辑器中的文件。 按 ”一世” 进入插入模式并在末尾添加以下行:

[...]
Defaults syslog=local1

按 ESC 并输入 :wq 保存和 close.

接下来,编辑“/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

Save 和 close 文件。 重新启动 rsyslog 以使更改生效:

$ sudo systemctl restart rsyslog

建议阅读:

  • 如何在 Linux 中更改 Sudo 密码超时
  • 如何在 Linux 中添加、删除和授予用户 Sudo 权限
  • 如何恢复用户的 Sudo 权限
  • 如何在你的 Linux 系统中查找所有 Sudo 用户
  • 如何在 Linux 中运行没有 Sudo 密码的特定命令

希望这可以帮助。