Maneira fácil de obter todas as contas de usuário

3

Estou no processo de migração para um novo servidor e estou tendo vários problemas porque as contas de usuário não estão presentes (por exemplo, o nginx parece estar sendo executado sob o usuário nginx no novo sistema www-data no antigo sistema).

Existe uma maneira fácil de obter todas as informações da conta do usuário / grupo. (O ideal é que eu gostaria de criar scripts para a criação de novas contas com o Ansible, se isso fizer alguma diferença).

    
por wobbily_col 22.04.2016 / 11:41

2 respostas

3
cat /etc/passwd  # show all users
cat /etc/group   # show all groups

Você pode enviar a saída para outros programas / scripts para processamento posterior.

    
por 22.04.2016 / 11:48
8

Como listar todos os usuários e grupos depende de como a autenticação é configurada.

Os mais básicos são os arquivos /etc/passwd e /etc/group usados para autenticação local.

O uso desses arquivos é insuficiente para obter uma listagem completa quando os dados do usuário / grupo são armazenados centralmente, por exemplo, em LDAP, NIS, Hesiod, etc.

A autenticação central geralmente é configurada além de os arquivos /etc/passwd e /etc/group para permitir que o sistema seja inicializado e viável no modo de usuário único por meio do arquivo de configuração de troca de serviço de nome /etc/nsswitch.conf

Se configurado com o NSS:

getent passwd 

mostrará todas as contas de usuário : as de /etc/passwd e seu diretório central de usuários.

getent group 

mostrará todos os grupos .

Ao monitorar o status de saída do comando getent , você também saberá se realmente listou todos os usuários / grupos (código de saída 0 ) ou se está faltando algum (código de saída 3 indica um banco de dados que não suporta enumeração e você precisará usar ferramentas apropriadas para esse banco de dados específico ...).

    
por 22.04.2016 / 16:29