comment savoir dans quel répertoire un utilisateur sudo travaille si je suis un utilisateur root

1

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.

champs
la source

Réponses:

4

Vous pouvez utiliser pgrep sudopour obtenir tous les processus sudo, puis ps h --ppid $THEPID -o pidpour obtenir ses processus enfants et enfin pwdx $SUBPIDpour 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 sudoprocessus depuis une sudo susession.

Tim
la source