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

7

Todos nós sabemos que temos usuários do sistema e usuários do serviço. Eu estou procurando uma maneira de separá-los como usuários do sistema e lista de usuários do serviço.

Existe alguma maneira?

    
por Ten-Coin 13.02.2014 / 18:31

2 respostas

6

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.

    
por souravc 14.02.2014 / 19:00
2

Para listar usuários locais (usuários do sistema) do que podem fazer login e ter homedir e GID abaixo de 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 ter um GID menor que 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
    
por kamil 13.02.2014 / 18:56