Com base em gid
, os usuários do sistema e os usuários do serviço podem ser separados da seguinte forma,
/etc/passwd
contém uma lista para todos os usuários junto com outras informações. Usuários de serviço ou usuários reais têm gid
maior que ou igual a 1000. Assim, uma lista de usuários reais pode ser obtida como
awk -F: '(>=1000)&&(!="nobody"){print }' /etc/passwd
Além disso, uma lista de usuários do sistema ( gid
& lt; 1000) pode ser extraída como
awk -F: '(<1000){print }' /etc/passwd
Como funciona
O conteúdo de /etc/passwd
é como
root:x:0:0:root:/root:/bin/bash
...
souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash
Ao usar awk
com -F:
, ele divide o conteúdo de uma linha em vários campos, tratando :
como separador de campo. O primeiro campo contém o nome do usuário e o terceiro campo tem o gid
.
Por isso, para extrair usuários reais awk
, basta verificar que o valor do terceiro campo é maior que igual a 1000 e não é nenhum usuário e imprime o primeiro campo, ou seja, o nome do usuário.
Para listar todos os usuários do sistema, ele apenas verifica gid
é menor que 1000 e imprime o nome do usuário.
Editar
Como você deseja listar root
(gid = 0) na lista de usuários reais. Obtenha usuários reais como,
awk -F: '(==0)||(>=1000)&&(!="nobody"){print }' /etc/passwd
Obtenha usuários do sistema como
awk -F: '(<1000)&&(!="root"){print }' /etc/passwd
Nota Estou sempre a ignorar nobody
user.