Usando top para ver os processos executados por um usuário em nome do sudo

5

Se eu executar top -u username , verei todos os processos de um usuário específico. Existe uma maneira de ver também todos os processos que o usuário chamou via sudo?

    
por amccormack 13.02.2011 / 03:21

2 respostas

10

Não parece ser possível de maneira fácil.

Do ponto de vista de top , qualquer comando executado por um usuário usando sudo parece estar sendo executado como root , porque está sendo executado como root.

Uma maneira que você pode tentar é rastreá-lo até o terminal em que o usuário está logado e, em seguida, ver os processos sendo executados como root nesse terminal.

Por exemplo,

$ w user
USER     TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    w.x.y.z     07:01    0.00s  1.07s  0.03s w user

Observe que o usuário está em pts/0 .

Agora, execute top .

Agora pressione f (seleção de campo), então g (alterne o campo de controle tty), então Digite .

Agora, observe os processos com pts/0 na coluna TTY .

Você também pode classificar por TTY pressionando g pela segunda vez.

Ou você pode usar procfs para obter uma lista de pids , por exemplo

$ sudo grep -l SUDO_USER="\<user\>" /proc/*/environ

Depois faça qualquer coisa com essa lista. Até mesmo usá-lo para executar top -p <pid1>,<pid2>... .

sudo top -p $(sudo grep -l SUDO_USER='\<user\>' /proc/[0-9]*/environ |
    cut -f 3 -d / |
    tr '\n' ',' |
    sed -e 's/,$//')

É claro que, nesse caso, top não mostrará se esse usuário iniciar um novo comando usando sudo .

Também não se esqueça de que um usuário que está executando um comando provavelmente está sendo registrado, por exemplo, para /var/log/secure ou /var/log/auth.log , ou /var/log/sudo.log , ou seja qual for o seu sistema.

    
por 13.02.2011 / 04:53
0

Você pode instalar htop e ver se ele oferece uma visão geral melhor. o htop também suporta a filtragem pelo usuário.

    
por 13.02.2011 / 12:42

Tags