Detail tentang perintah sudo dijalankan oleh semua pengguna

10

Dari log mana saya bisa mendapatkan rincian tentang perintah sudo yang dijalankan oleh pengguna mana pun. Itu harus berisi direktori kerja, perintah, pengguna. Akan sangat membantu jika Anda bisa memberi saya skrip shell untuk melakukannya

Rakesh R Nair
sumber

Jawaban:

23

Tergantung distro Anda; secara sederhana:

$ sudo grep sudo /var/log/secure

atau

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

pemberian yang mana:

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

Pengguna yang menjalankan perintah setelah sudo:- garethdalam kasus ini.

PWD adalah direktori.

USERadalah pengguna yang garethmenjalankan as - rootdalam contoh ini.

COMMAND adalah perintah dijalankan.

Oleh karena itu, dalam contoh di atas, garethdigunakan sudountuk menjalankan yum updatedan kemudian menjalankan contoh ini. Sebelumnya dia mengetik kata sandi yang salah.

Pada sistem yang lebih baru:

$ sudo journalctl _COMM=sudo

memberikan hasil yang sangat mirip.

garethTheRed
sumber
0

"Filter hasil" untuk solusi Gareth. (bagi mereka yang datang dengan judul posting, bukan deskripsi)

Memberi Anda daftar bersih hanya perintah, jalankan sebagai sudo, oleh semua pengguna.

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

Penanganan masalah jika tidak tersedia

$sudo journalctl _COMM=sudo | grep COMMAND

Hasil K&P menjadi lembaran Google

Dalam sel B1 C&P rumus ini

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