como saber em qual diretório um usuário sudo está trabalhando se eu for um usuário root

1

Existe alguma maneira pela qual eu posso obter qual usuário sudo trabalhando em qual diretório em qual arquivo.

Existe algum arquivo que mostra detalhes do diretório de trabalho atual de todos os usuários do sudo.

    
por champs 04.09.2013 / 13:47

1 resposta

4

Você pode usar pgrep sudo para obter todos os processos sudo e, em seguida, ps h --ppid $THEPID -o pid para obter seus processos filhos e, finalmente, pwdx $SUBPID para obter o diretório de trabalho desses subprocessos.

Você pode resumir em dois loops forçados, que podem ter a seguinte aparência:

for sudo in 'pgrep sudo'; do
 sudo pwdx $sudo;
 for subsudo in 'ps h --ppid $sudo -o pid'; do
   sudo pwdx $subsudo
 done
done

Como você obtém apenas uma geração de processos filhos com cada chamada de ps , os números de processos de processos filhos devem ser obtidos recursivamente. O script a seguir faz isso:

#!/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

A saída é classificada e linhas duplas são removidas no caso de alguém executar um processo sudo dentro de uma sessão sudo su .

    
por 04.09.2013 / 14:56

Tags