Como posso verificar quais usuários 'normais' estão no sistema?

4

Eu quero descobrir quais usuários 'normais' estão disponíveis em um sistema. Por normal, quero dizer aqueles que são criados manualmente, não aqueles como sshd ou gdm .

    
por Tshepang 31.01.2011 / 18:28

4 respostas

2

Normalmente, os "usuários normais" recebem IDs de usuários > = 1000. Se esse for o caso em seu sistema, o seguinte poderá funcionar:

awk -F: '{if ($3 > 999) print $1}' /etc/passwd
    
por 31.01.2011 / 18:57
3

Faça grep UID_MIN /etc/login.defs . Em seguida, faça getent passwd e veja quais usuários têm um UID > = o valor UID_MIN acima.

Explicação: Sempre que um usuário é adicionado manualmente, ele pega o primeiro UID disponível > = o valor UID_MIN do login.defs (a menos que o UID seja especificado manualmente)

    
por 31.01.2011 / 18:57
2

Eu não acho que haja uma maneira de dizer quais usuários foram "criados manualmente". Provavelmente, o melhor que você pode fazer é procurar usuários que tenham um shell válido, já que usuários do sistema, como o sshd e o gdm, têm shells como /bin/false e /sbin/nologin para evitar logins. A lista de shells válidos está em /etc/shells , então você pode usar grep para obter uma lista de usuários com uma dessas shells:

$ grep -f /etc/shells /etc/passwd

Se você quer apenas nomes de usuários:

$ grep -f /etc/shells /etc/passwd | cut -d: -f1
    
por 31.01.2011 / 18:34
1
ls -l /home

Mas essa também não é a fonte mais confiável.

Se uma vez conectado:

lastlog | grep -v 'Never logged in'
    
por 31.01.2011 / 18:43

Tags