O Linux é um sistema operacional multiusuário, portanto, é fácil criar várias contas de usuário. Com o tempo, é fácil perder o controle de quais contas são necessárias. Listar contas de usuário ajuda a gerenciá-las.
Índice
Contas de usuário
Os avanços na tecnologia muitas vezes trazem seus próprios novos problemas. Assim que os computadores foram capazes de suportar vários usuários, a necessidade de delimitar e encapsular o trabalho de cada pessoa de todos os outros tornou-se aparente. Isso levou ao conceito de contas de usuário . Cada usuário tem um ID nomeado e uma senha. Essas são as credenciais que permitem que eles façam login em sua conta. Seus arquivos são mantidos em uma área privada para cada usuário.
Em um sistema ocupado, é fácil perder de vista quais contas você criou e quais não são mais necessárias. Do ponto de vista da segurança, é uma prática ruim manter contas de usuário que você não precisa mais configurar e acessar em seu computador. Você deve remover esses usuários .
Mesmo que você não tenha outras pessoas usando seu computador, você pode ter criado algumas contas apenas para aprender como fazê-lo ou para aprender e praticar os processos de administração.
A primeira etapa é listar as contas de usuário configuradas em seu computador. Isso permite que você os revise e faça um julgamento sobre o que pode ser excluído. Existem vários métodos para listar usuários. Não importa qual distribuição você esteja usando, essas técnicas devem funcionar para você sem a necessidade de instalar nenhum aplicativo ou utilitário.
Listar usuários com o comando cat
Uma lista dos usuários configurados é mantida, juntamente com informações sobre cada usuário, no arquivo “/etc/passwd”. Este é um arquivo de texto que usuários regulares podem listar na janela do terminal. Você não precisa usar sudo
para procurar no arquivo “/etc/passwd”.
Podemos usar o cat
comando para enviar o conteúdo do arquivo “/etc/passwd” para a janela do terminal. Isso listará todo o conteúdo do arquivo. Isso significa que você também verá as entradas de contas de usuários pertencentes a processos e ao sistema, não a pessoas.
cat /etc/passwd
Há uma linha de informações densas relatadas para cada conta de usuário.
As informações da conta de usuário chamada “dave” contêm essas informações, com dois pontos “ :
” entre elas.
- dave : O nome da conta de usuário. Geralmente o nome da pessoa que possui a conta.
- x : Ao mesmo tempo, isso continha a senha da conta . Atualmente, as senhas são armazenadas no arquivo “/etc/shadow”. O “x” significa que a senha está nesse arquivo.
- 1000 : O ID do usuário para esta conta. Todas as contas de usuário têm um ID numérico exclusivo. As contas de usuários regulares geralmente começam em 1000, com cada nova conta recebendo o próximo ID gratuito, como 1001, 1002 e assim por diante.
- 1000 : O ID do grupo padrão ao qual o usuário pertence. Em circunstâncias normais, o grupo padrão tem o mesmo valor que o ID do usuário.
- dave,,, : Uma coleção de informações extras opcionais sobre o usuário. Este campo contém dados com vírgulas “
,
” entre eles. Eles podem conter coisas como o nome completo do usuário, o número do escritório e o número de telefone. A entrada para a conta de usuário “mary” mostra que seu nome completo é Mary Quinn. - /home/dave : O caminho para a pasta pessoal do usuário.
- /bin/bash : O shell padrão para este usuário.
Se canalizarmos a saída deste comando através do wc
utilitário e usarmos a -l
opção (linhas), podemos contar as linhas no arquivo. Isso nos dará o número de contas configuradas neste computador.
cat /etc/passwd | wc -l
Esse número inclui as contas do sistema e os usuários criados pelos aplicativos. Existem cerca de 400 usuários regulares configurados neste computador. Seu resultado provavelmente será muito menor.
Com tantas contas, é mais conveniente usar less
para visualizar o arquivo “/etc/passwd”.
menos /etc/passwd
O uso less
também permite pesquisar na saída, caso você queira procurar uma conta de usuário específica.
O comando awk
Usando o awk
comando , podemos exibir apenas o nome de usuário. Isso pode ser útil quando você está escrevendo um script que precisa fazer algo em muitas contas de usuário. Listar os nomes das contas de usuário e redirecioná-los para um arquivo de texto pode economizar muito tempo. Tudo o que você precisa fazer é copiar e colar o restante do comando em cada linha.
Diremos ao awk para usar os dois pontos “:” como separador de campo e imprimir o primeiro campo. Usaremos a opção -F (separador de campo).
awk -F: '{print $1}' /etc/passwd
Os nomes de contas de usuário são gravados na janela do terminal sem nenhuma outra informação de conta.
O comando de corte
Podemos conseguir o mesmo tipo de coisa usando o cut
comando . Precisamos usar a -d
opção (delimitador) e pedir para selecionar apenas o primeiro campo, usando a -f
opção (campos).
corte -d: -f1
Isso lista todas as contas de usuário, incluindo o sistema e outras contas não humanas.
O comando compgen
O compgen
comando pode ser usado com a -u
opção (usuário) para listar as contas de usuário. Encaminharemos a saída por meio do column
comando para listar as contas de usuário em colunas, em vez de uma longa lista com um único nome de usuário por linha.
compgen -u | coluna
Novamente, as primeiras contas de usuário listadas pertencem a processos, não a humanos.
UID MIN e UID MAX
As contas de usuário recebem um ID numérico, que vimos anteriormente. Normalmente, as contas de usuário humano normais começam em 1000 e as contas de usuário do sistema, não humanas, começam em 0. O ID da conta root é 0.
Se pudermos verificar os IDs de usuário mais baixos e mais altos possíveis, podemos usar essas informações para selecionar as contas de usuário que estão entre esses dois valores. Isso nos permitirá selecionar apenas as contas de usuários pertencentes a pessoas reais.
O Linux acompanha esses dois valores usando parâmetros de configuração chamados UID_MIN
e UID_MAX
. Estes são mantidos no arquivo “/etc/login.defs”. Podemos ver facilmente esses valores usando grep
.
Vamos usar a opção -E
(extended regex ). Nossa string de pesquisa procura por linhas que começam com “UID_MIN” ou “UID_MAX” no arquivo “/etc/login.defs”. O acento circunflexo “ ^
” representa o início de uma linha.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
O intervalo de IDs de usuário neste computador é de 1.000 a 60.000.
O comando getent
O getent
comando lê informações dos bancos de dados do sistema. Podemos dizer a ele para listar as entradas no arquivo “/etc/passwd” usando “passwd” como parâmetro.
getent passwd
Isso nos dá a mesma leitura que podemos obter usando cat
. Mas onde getent
brilha é aceitando valores conhecidos como “chaves”. Uma chave determina quais informações são getent
relatadas. Se quisermos ver a entrada de um único usuário, podemos passar o nome da conta de usuário na linha de comando.
getent passwd Sarah
Observe que o nome da conta de usuário diferencia maiúsculas de minúsculas.
getent passwd sarah
Também podemos passar os limites superior e inferior dos IDs da conta de usuário que queremos ver. Para ver absolutamente todas as contas de usuário regulares, podemos usar os valores de UID_MIN
e UID_MAX
.
getent passwd {1000..60000}
Isso leva algum tempo para ser executado. Eventualmente, você retornará ao prompt de comando.
A razão para o longo tempo de execução é que getent
tenta encontrar correspondências para todos os valores da conta de usuário até 60.000.
Vamos ver qual é o ID de conta de usuário mais alto. Usaremos o cut
comando, mas desta vez pediremos o campo três, o campo ID do usuário. Vamos canalizar a saída sort
e usar a -g
opção (classificação numérica geral).
corte -d: -f3 /etc/passwd | ordenar -g
O valor de ID mais alto de uma conta de usuário de propriedade humana é 1401.
O ID de usuário 65534 é atribuído ao conceito do sistema de “ninguém”.
getent passwd {65534..65534}
Então sabemos que ao invés de usar o UID_MAX
valor de 60000, neste computador podemos usar um valor mais realista como 1500. Isso vai acelerar as coisas muito bem. Também canalizaremos a saída cut
para extrair apenas os nomes das contas de usuário.
getent passwd {1000..1500} | corte -d: -f1
Os usuários são listados e retornamos imediatamente ao prompt de comando.
Em vez de canalizar a saída através cut
de , vamos canalizar a saída wc
e contar as linhas mais uma vez. Isso nos dará o número de contas de usuário “reais”.
getent passwd {1000..1500} | wc -l
Agora podemos ver que neste computador, definitivamente, existem 400 contas de usuário configuradas, pertencentes a humanos.
Poder e Simplicidade
Uma dessas técnicas certamente atenderá às suas necessidades quando você precisar revisar as contas de usuário em um computador Linux. Esses comandos devem estar presentes em todas as distribuições e nenhum deles requer sudo
acesso , portanto, todos estão disponíveis para todos os usuários.