À 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:
- gareth
dans ce cas.
PWD
est le répertoire.
USER
est l'utilisateur qui gareth
s'exécute en tant que - root
dans cet exemple.
COMMAND
est la commande exécutée.
Par conséquent, dans l'exemple ci-dessus, gareth
utilisé sudo
pour exécuter yum update
puis 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"))