所有用户执行的sudo命令的详细信息


10

我可以从哪个日志中获取有关任何用户执行的sudo命令的详细信息。它应该包含工作目录,命令,用户。如果您可以提供一个shell脚本来这样做,将会很有帮助。

Answers:


23

根据您的发行版;只是:

$ sudo grep sudo /var/log/secure

要么

$ sudo grep sudo /var/log/auth.log

这使:

Nov 14 09:07:31 vm1 sudo: pam_unix(sudo:auth): authentication failure; logname=gareth uid=1000 euid=0 tty=/dev/pts/19 ruser=gareth rhost=  user=gareth
Nov 14 09:07:37 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/yum update
Nov 14 09:07:53 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/grep sudo /var/log/secure

在这种情况下,运行命令的用户位于sudo:- 之后gareth

PWD 是目录。

USER在此示例中gareth是以-身份运行的用户root

COMMAND 命令执行了。

因此,在上面的示例中,gareth用于sudo先运行yum update然后再运行此示例。在此之前,他输入了错误的密码。

在较新的系统上:

$ sudo journalctl _COMM=sudo

给出非常相似的输出。


0

Gareth解决方案的“结果过滤器”。(对于那些通过职务而不是描述来到达的人)

为您提供所有用户以sudo运行的仅命令的干净列表。

$sudo journalctl _COMM=sudo  | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'

sed不可用时的解决方法

$sudo journalctl _COMM=sudo | grep COMMAND

C&P结果进入Google表格

在单元格B1 C&P中,此公式

=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.