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
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 .
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)
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
ls -l /home
Mas essa também não é a fonte mais confiável.
Se uma vez conectado:
lastlog | grep -v 'Never logged in'
Tags users