Usuários de sistema e usuários de serviço separados

8

Todos sabemos que temos usuários do sistema e usuários do serviço. Estou procurando uma maneira de separá-los como usuários do sistema e lista de usuários do serviço.

Existe alguma maneira ?

rɑːdʒɑ
fonte

Respostas:

7

Com base em gid, usuários do sistema e usuários do serviço podem ser separados da seguinte maneira:

/etc/passwdcontém lista para todos os usuários, juntamente com outras informações. Usuários de serviço ou usuários reais têm gidmaior ou igual a 1000. Portanto, uma lista de usuários reais pode ser obtida como,

awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Também gidé possível extrair uma lista de usuários do sistema ( <1000) como,

awk -F: '($3<1000){print $1}' /etc/passwd

Como funciona

O conteúdo de /etc/passwdsão como,

    root:x:0:0:root:/root:/bin/bash
    ...
    souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash

Ao usá awk- -F:lo, divide o conteúdo de uma linha em vários campos tratados :como separador de campos. O primeiro campo contém o nome de usuário e o terceiro campo possui o gid.

Portanto, para extrair usuários reais, awkbasta verificar se o valor do terceiro campo é maior que igual a 1000 e não é ninguém e imprime o primeiro campo, ou seja, o nome do usuário.

Para listar todos os usuários do sistema, basta verificar se gidé menor que 1000 e imprimir o nome do usuário.

Editar

Como você deseja listar root(gid = 0) na lista real de usuários. Obtenha usuários reais como,

awk -F: '($3==0)||($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Obtenha usuários do sistema como,

awk -F: '($3<1000)&&($1!="root"){print $1}' /etc/passwd

Nota : estou sempre ignorando o nobodyusuário.

souravc
fonte
Como ele pode cuidar do usuário root?
22414
não entendeu o seu ponto? você receberá root como usuário do sistema. você deseja incluir root na lista real de usuários?
souravc
sim porque ele também é usuário.
19414
@rajagenupula está tudo bem agora?
souravc
Eu gostaria de ter usuário root na lista real de usuários @S
rɑːdʒɑ
2

Para listar locais (usuários do sistema) que podem fazer login e ter homedir e GID menor que 1000

 cat /etc/passwd | cut -d: -f 1,3,6 | grep "[1-9][0-9][0-9][0-9]" | grep "/home" | cut -d: -f1

Para listar todos os outros usuários: (principalmente usuários do sistema e GID menores que 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
kamil
fonte
1
ID do grupo de usuário root e de usuário de ID é inferior a 1000 right.thank por resposta
rɑːdʒɑ
@rajagenupula sim, com certeza. somente raiz é a exceção. e no ubuntu geralmente, o root não pode efetuar login por padrão.
kamil