どのログから、任意のユーザーが実行したSudoコマンドの詳細を取得できますか。作業ディレクトリ、コマンド、ユーザーが含まれている必要があります。あなたが私にそうするためのシェルスクリプトを提供できればそれは役に立ちます
ディストリビューションによって異なります。単に:
$ 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
非常によく似た出力が得られます。
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"))