Última atualização em
É importante saber quem tem acesso ao seu PC Linux (e controle sobre seus arquivos), mas você pode facilmente listar usuários no Linux para descobrir. Aqui está como.
O sistema operacional Linux oferece comandos para criar e excluir usuários e verificar quais estão logados. No entanto, não há comando para listar usuários, logados ou não, no sistema.
Ainda assim, existem algumas maneiras de fazer isso. Se você quiser aprender como listar usuários no Linux, siga nossas etapas abaixo.
Por que você deve verificar sua lista de usuários do Linux
Existem vários motivos pelos quais você pode querer listar usuários no Linux. É uma boa prática em termos de encontrar e excluir contas não utilizadas, por exemplo. Do ponto de vista da segurança, também é uma boa maneira de garantir que você não tenha intrusos criando contas de usuário.
Esta é uma tarefa administrativa que você provavelmente deve fazer pelo menos uma vez por mês. Se você estiver executando um servidor Linux corporativo, talvez queira fazê-lo com mais frequência.
Usuários listados em /etc/passwd
Todas as contas de usuário do seu servidor Linux têm entradas no arquivo /etc/passwd. Cada linha representa um usuário e possui sete campos separados por dois pontos. Os campos fornecem informações sobre o usuário.
- Nome do usuário.
- Senha criptografada (x indica que a senha está realmente em /etc/shadow)
- Número de identificação do usuário (UID).
- Número de identificação do grupo do usuário (GID).
- Nome completo do usuário, se listado.
- Diretório inicial do usuário.
- shell de login
Então, isso nos leva a uma maneira de listar todos os usuários no Linux. Você pode usar o menos comando para ver o arquivo inteiro, uma tela de cada vez.
menos /etc/passwd.
Se você deseja verificar se um usuário específico existe no sistema Linux, é um bom uso para o comando grep:
menos passwd | grep jeff.
Se você não obtiver nenhuma saída, esse usuário não existe no servidor Linux.
Ainda assim, é muita informação. Você pode reduzi-lo apenas ao nome de usuário, por exemplo, usando o awk ou cortar comandos:
awk -F: '{print $1}' /etc/passwd. corte -d: -f1 /etc/passwd.
Isso tende a ser muito mais fácil de entender, mas ainda deixa você ver todas as contas de usuário baseadas no sistema misturadas com seus usuários humanos.
Como usar getent para listar usuários
Outro comando, getent, é muito mais útil. Ele exibe entradas de qualquer banco de dados configurado no seu servidor /etc/nsswitch.conf Arquivo. Um deles é o senha base de dados. Usar getent para exibir uma lista de todos os usuários do Linux, funciona assim:
getent passwd
A saída se parece exatamente com o uso do menos comando, mas lista qualquer usuário LDAP no sistema Linux. Mais uma vez, nosso awk e cortar comandos podem ajudar a ver apenas o primeiro campo, os nomes de usuário.
Se você quiser verificar se um usuário específico existe no sistema Linux, getent facilita:
getent passwd jeff.
Novamente, nenhuma saída deste comando informa que o usuário não existe.
Outro ótimo uso para getent é descobrir quantas contas de usuário existem no servidor. Isso é feito por tubulação getentsaída de através do banheiro comando, assim:
getent passwd | wc -l.
Como você pode ver, meu sistema Linux tem um total de 48 contas. Bem interessante, já que sou o único que usa, mas isso só mostra quantas contas de sistema são criadas no Linux.
Eliminando usuários do sistema de usuários normais
Aos olhos do Linux, não há diferença entre um usuário do sistema e um humano. Sempre que você instala o sistema operacional, ele cria vários usuários do sistema. Outros usuários do sistema são criados para vários pacotes, como software de serviço da Web ou de correio.
Então, como você pode listar apenas os usuários humanos comuns no sistema Linux? A chave aqui é entender que quando você cria um usuário normal, seu UID é atribuído dentro de um certo intervalo de números. Ao verificar o /etc/login.defs arquivo, podemos determinar o intervalo de valores de UID disponíveis para contas de usuário comuns.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Com base na saída, sei que usuários normais devem ter um UID entre 1000 e 60000. A partir disso, posso construir um getent consulta que exibirá apenas usuários normais.
getent passwd {1000..60000}
Ter em mente, getent parecerá travar mesmo depois de exibir sua saída. Você pode pressionar Ctrl-C para finalizar o processo ou espere até que ele termine. Geralmente, leva menos de 15 segundos para concluir a pesquisa no senha base de dados.
Uma versão mais genérica deste comando leva em consideração diferentes UID_MIN e UID_MAX valores que vários servidores podem usar.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
Nesse comando, estamos aproveitando a capacidade do Linux de fazer várias coisas ao mesmo tempo. O awk comandos obtêm o UID_MIN e UID_MAX valores e, em seguida, use-os dentro do getent comando.
Agora, digamos que tudo o que queremos são os nomes de usuário. Mais uma vez, canalizamos nossa saída através do cortar comando, assim:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | corte -d: -f1.
Este comando pode levar de 10 a 15 segundos para ser concluído, portanto, seja paciente.
Gerenciando Efetivamente Seus Usuários Linux
É importante acompanhar quais contas de usuário existem em seu sistema Linux. Quando você souber que um funcionário saiu, seja rápido em excluir sua conta de usuário. Listar periodicamente seus usuários do Linux ajudará a garantir que você capture todas as contas que possam ter permanecido por aí.
Ao mesmo tempo, certifique-se de manter-se atualizado sobre políticas de segurança de senha e incentive seus usuários a alterar suas senhas regularmente.