Est-il possible d’obtenir quel utilisateur de sudo travaille dans quel répertoire sur quel fichier?
Y at-il un fichier qui montre les détails du répertoire de travail en cours de tous les utilisateurs sudo.
Vous pouvez utiliser pgrep sudo
pour obtenir tous les processus sudo, puis ps h --ppid $THEPID -o pid
pour obtenir ses processus enfants et enfin pwdx $SUBPID
pour obtenir le répertoire de travail de ces sous-processus.
Vous pouvez enfin résumer en deux boucles for, qui pourraient ressembler à ceci:
for sudo in `pgrep sudo`; do
sudo pwdx $sudo;
for subsudo in `ps h --ppid $sudo -o pid`; do
sudo pwdx $subsudo
done
done
Étant donné que vous n'obtenez qu'une génération de processus enfants à chaque appel ps
, les numéros de processus des processus enfants doivent être obtenus de manière récursive. Le script suivant fait ceci:
#!/bin/bash
function getchildren()
{
echo $1
children=`ps h --ppid $1 -o pid`
if [[ -n $children ]]; then
for child in $children; do
getchildren $child
done
fi
}
for sudo in `pgrep sudo`; do
for subsudo in `getchildren $sudo`; do
sudo pwdx $subsudo
done
done | sort | uniq
La sortie est triée et les doubles lignes sont supprimées au cas où quelqu'un exécuterait un sudo
processus depuis une sudo su
session.