À partir de quel journal puis-je obtenir des détails sur les commandes sudo exécutées par n'importe quel utilisateur. Il doit contenir le répertoire de travail, la commande, l'utilisateur. Il serait utile de me fournir un script shell pour le faire
À partir de quel journal puis-je obtenir des détails sur les commandes sudo exécutées par n'importe quel utilisateur. Il doit contenir le répertoire de travail, la commande, l'utilisateur. Il serait utile de me fournir un script shell pour le faire
Réponses:
Selon votre distribution; simplement:
$ sudo grep sudo /var/log/secure
ou
$ sudo grep sudo /var/log/auth.log
qui donne:
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'utilisateur exécutant la commande est après le sudo:- garethdans ce cas.
PWD est le répertoire.
USERest l'utilisateur qui gareths'exécute en tant que - rootdans cet exemple.
COMMAND est la commande exécutée.
Par conséquent, dans l'exemple ci-dessus, garethutilisé sudopour exécuter yum updatepuis exécuté cet exemple. Avant cela, il a tapé le mot de passe incorrect.
Sur les nouveaux systèmes:
$ sudo journalctl _COMM=sudo
donne une sortie très similaire.
Un "filtre de résultats" pour la solution de Gareth. (pour ceux qui sont arrivés par titre de poste et non par description)
Vous donne une liste claire de commandes uniquement, exécutées en tant que sudo, par tous les utilisateurs.
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
Solution si sed n'est pas disponible
$sudo journalctl _COMM=sudo | grep COMMAND
Résultats C&P dans les feuilles Google
Dans la cellule B1 C&P cette formule
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))