Z którego dziennika mogę uzyskać szczegółowe informacje na temat poleceń sudo wykonywanych przez dowolnego użytkownika. Powinien zawierać katalog roboczy, polecenie, użytkownika. Pomocne będzie podanie skryptu powłoki
10
W zależności od twojej dystrybucji; po prostu:
$ sudo grep sudo /var/log/secure
lub
$ sudo grep sudo /var/log/auth.log
co daje:
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
Użytkownik uruchamiający polecenie jest po sudo:
- gareth
w tym przypadku.
PWD
to katalog.
USER
to użytkownik gareth
działający jako - root
w tym przykładzie.
COMMAND
polecenie zostało wykonane.
Dlatego w powyższym przykładzie gareth
użyto sudo
do uruchomienia, yum update
a następnie uruchomiono ten przykład. Wcześniej wpisał nieprawidłowe hasło.
W nowszych systemach:
$ sudo journalctl _COMM=sudo
daje bardzo podobny wynik.
„Filtr wyników” dla rozwiązania Garetha. (dla tych, którzy dotarli według tytułu postu, a nie opisu)
Daje ci czystą listę tylko poleceń, uruchomioną jako sudo, przez wszystkich użytkowników.
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
Obejście problemu, jeśli sed jest niedostępny
$sudo journalctl _COMM=sudo | grep COMMAND
Wyniki C&P w arkuszach Google
W komórce B1 C&P ta formuła
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))