Como listar todos os usuários que possuem sessões de terminal, incluindo sessões de tela?

3

Eu gostaria de ter uma lista de todos os usuários que estão ativos no meu sistema Linux, incluindo aqueles que têm sessões de tela em execução, mas desanexadas. O comando who mostra apenas os usuários conectados no momento, mas não os usuários com sessões de tela desanexadas e afins.

Eu estava pensando em analisar a saída de ps , mas isso também faria um usuário mostrar se ele tinha uma tarefa cron funcionando.

    
por Sander Marechal 01.11.2011 / 15:09

2 respostas

4

Tente:

$ ps axno user,tty | awk '$1 >= 1000 && $1 < 65530 && $2 != "?"' | sort -u

Isso deve informar todos os UIDs com processos com um terminal de sessão (como uma janela na tela). Eu uso o UID para eliminar os usuários do 'sistema' (como o apache) e ninguém (alto UID) e ignorar daemons.

    
por 01.11.2011 / 16:40
2

Você pode tentar quem e a saída do ps com um grep:

~$ ps aux | grep screen

E filtrar usuário:

~$  ps aux | grep screen | grep $USER

(substitua $ user pelo nome de usuário).

    
por 01.11.2011 / 15:14