Da quale registro posso ottenere dettagli sui comandi sudo eseguiti da qualsiasi utente. Dovrebbe contenere la directory di lavoro, il comando, l'utente. Sarà utile se potessi fornirmi uno script di shell per farlo
Da quale registro posso ottenere dettagli sui comandi sudo eseguiti da qualsiasi utente. Dovrebbe contenere la directory di lavoro, il comando, l'utente. Sarà utile se potessi fornirmi uno script di shell per farlo
Risposte:
A seconda della distribuzione; semplicemente:
$ sudo grep sudo /var/log/secure
o
$ sudo grep sudo /var/log/auth.log
che dà:
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
L'utente che esegue il comando è dopo sudo:
- gareth
in questo caso.
PWD
è la directory.
USER
è l'utente che gareth
esegue come - root
in questo esempio.
COMMAND
è il comando eseguito.
Pertanto, nell'esempio sopra, gareth
usato sudo
per eseguire yum update
e quindi ha eseguito questo esempio. Prima ha digitato la password errata.
Sui sistemi più recenti:
$ sudo journalctl _COMM=sudo
dà un risultato molto simile.
Un "filtro dei risultati" per la soluzione di Gareth. (per quelli che sono arrivati per titolo di posta, non descrizione)
Ti dà un elenco pulito di soli comandi, eseguito come sudo, da tutti gli utenti.
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
Soluzione alternativa se sed non disponibile
$sudo journalctl _COMM=sudo | grep COMMAND
Risultati C&P in fogli di Google
Nella cella B1 C&P questa formula
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))