user
Exibir Todos os Usuários
Para listar todos os usuários no sistema, você pode usar o comando cat para
exibir o conteúdo do arquivo /etc/passwd:
cat /etc/passwd
Este arquivo contém informações sobre todos os usuários registrados no sistema, incluindo seus IDs de usuário (UIDs), grupos primários, diretórios home e informações de shell.
No passado, também era utilizado para salvar as senhas.
Atualmente as senhas dos usuários ficam em formato de hash no arquivo
/etc/shadow e somente os usuários com direito de sudoers pode visualiza-lo.
Estrutura do Arquivo /etc/shadow
O arquivo /etc/shadow é utilizando para armazenar as informações sensíveis dos
usuários, já que somente usuários com permissões de sudoers podem
visualiza-lo. Dentre as informações sensíveis o arquivo shadow armazena a
senha do usuário em formato de hash. No exemplo abaixo, a maioria dos usuário
não possuem senha, porém aqueles com maiores informações, como exemplo o usuário
kali possui.
uuidd:*:19683:0:99999:7:::
tcpdump:*:19683:0:99999:7:::
kali:$y$j9T$P4e5rDVu4IoZc9phsGnXr0$Bug5WTkDSra/pzgNbm7aFWTJAa1RSO5iI5msAaADYCC:19996:0:99999:7:30:3403031096:
mysql:!:19931:0:99999:7:::
postgres:*:19931:0:99999:7:::
sshd:*:20015:0:99999:7:::
Fazendo a decomposição dessa linha em várias partes temos:
kali: ID do usuário.
$y$j9T$P4e5rDVu4IoZc9phsGnXr0$Bug5WTkDSra/pzgNbm7aFWTJAa1RSO5iI5msAaADYCC:
Informações do algoritmo hash e o próprio hash.
19996": Última alteração de senha em Unix time.
0: O número mínimo de dias necessários entre as alterações de senha.
99999: O número máximo de dias em que a senha é válida.
7: O número de dias antes da expiração da senha em que o usuário é avisado de
que sua senha deve ser alterada.
30: O número de dias após a expiração da senha em que a conta é desativada.
3403031096: A data de expiração da conta em Unix time.
No fragmento que representa as informações do algorítmo hash e o próprio hash, podemos identificar qual o algoritmo hash seguindo a tabela abaixo:
| ID do Hash | Nome do Hash |
|---|---|
| $1 | MD5 |
| $2 | Blowfish |
| $2a | eksblowfish |
| $5 | SHA-256 |
| $6 | SHA-512 |
| $y | yescrypt |
Maiores detalhes com o comando man crypt.
Para verificar como efetuar a quebra dos Hashs acima confira a documentação do Hashcat ou John the Ripper.
Adicionar um Novo Usuário
Para adicionar um novo usuário, utilize o comando adduser seguido pelo nome do
usuário desejado. Este comando irá criar um novo usuário e configurar seu
ambiente inicial:
adduser nomedousuario
Siga as instruções apresentadas para definir uma senha e informações adicionais, se necessário.
Remover um Usuário
Para excluir um usuário do sistema, utilize o comando deluser seguido do nome
do usuário que deseja remover:
deluser nomedousuario
Tenha cuidado ao executar este comando, pois a exclusão de um usuário pode resultar na perda de dados associados a esse usuário.
Definir uma Senha para um Usuário
Para definir ou modificar a senha de um usuário, utilize o comando passwd
seguido do nome do usuário:
passwd nomedousuario
Siga as instruções para configurar a nova senha.
Entrar no Terminal como um Usuário Específico
Para entrar no terminal como um usuário específico, use o comando su
(substituir usuário) seguido do nome do usuário:
su nomedousuario
Isso solicitará a senha do usuário, e você estará logado como o usuário especificado.
Conceder Privilégios de Sudo (Administrativos)
Para conceder a um usuário a capacidade de executar comandos como administrador, você pode adicioná-lo ao grupo sudo. Use o seguinte comando para fazer isso:
adduser nomedousuario sudo
Isso permitirá que o usuário execute comandos com privilégios administrativos
usando o comando sudo.
Revogar Privilégios de Sudo
Se você precisar remover os privilégios de sudo de um usuário, execute o seguinte comando:
deluser nomedousuario sudo
Isso removerá o usuário do grupo sudo, limitando suas capacidades administrativas.
Alterar as Configurações do Sudoers Manualmente
Outra maneira de alterar se um usuário tem privilégios de sudo ou não é editando
manualmente o arquivo /etc/sudoers. No entanto, essa abordagem é mais avançada
e requer cuidado para evitar erros de sintaxe.
Verificar Autenticações de Usuário
Para verificar as autenticações realizadas por cada usuário no sistema, você
pode examinar o arquivo de log de autenticação, geralmente encontrado em
/var/log/auth.log:
cat /var/log/auth.log
Este arquivo registra as tentativas de login e outros eventos de autenticação no sistema, fornecendo informações úteis para monitorar a segurança e a atividade dos usuários. Certifique-se de ter permissões adequadas para acessar este arquivo.
Lembre-se de que o gerenciamento de usuários no Linux é uma tarefa crítica para a segurança e a administração do sistema. Tome cuidado ao adicionar, remover ou modificar usuários e seus privilégios para garantir um ambiente de sistema seguro e funcional.