本简要指南说明了如何更改默认值 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
添加/修改以下行(行号 46 和 47):
[...] *.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages local1.* /var/log/sudo.log [...]
在 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 中的日志文件
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 密码的特定命令
希望这可以帮助。