web-dev-qa-db-ja.com

すべてのユーザーが実行したSudoコマンドの詳細

どのログから、任意のユーザーが実行したSudoコマンドの詳細を取得できますか。作業ディレクトリ、コマンド、ユーザーが含まれている必要があります。あなたが私にそうするためのシェルスクリプトを提供できればそれは役に立ちます

10
Rakesh R Nair

ディストリビューションによって異なります。単に:

$ 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は実行されたコマンドです。

したがって、上記の例では、garethSudoを使用してyum updateを実行し、この例を実行しました。その前に、彼は間違ったパスワードを入力しました。

新しいシステム:

$ Sudo journalctl _COMM=Sudo

非常によく似た出力が得られます。

23
garethTheRed

Garethのソリューションの「結果フィルター」。 (説明ではなく、投稿のタイトルで到着したもの)

すべてのユーザーがSudoとして実行するコマンドのみの明確なリストを提供します。

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

Sedが利用できない場合の回避策

$Sudo journalctl _COMM=Sudo | grep COMMAND

GoogleシートへのC&P結果

セルB1 C&Pで、この数式

=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))
0
GreenEyedGus