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
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:
- gareth
dalam kasus ini.
PWD
adalah direktori.
USER
adalah pengguna yang gareth
menjalankan as - root
dalam contoh ini.
COMMAND
adalah perintah dijalankan.
Oleh karena itu, dalam contoh di atas, gareth
digunakan sudo
untuk menjalankan yum update
dan 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.
"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"))