Détails sur les commandes sudo exécutées par tous les utilisateurs


10

À 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:


23

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.


0

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"))
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.