O gerenciamento de usuários e grupos é uma parte essencial da administração de sistemas Linux. Ele permite que você controle o acesso ao sistema, configure permissões adequadas e mantenha a segurança. Agora, exploraremos como criar, modificar e excluir usuários e grupos, além de configurar suas permissões e propriedades.
Conceitos Básicos
Usuários
No Linux, cada usuário tem um nome de usuário (username), um UID (User ID) e está associado a um grupo principal (primary group) e possivelmente a grupos suplementares (secondary groups). O arquivo /etc/passwd contém informações sobre os usuários.
Grupos
Os grupos são usados para agrupar usuários e gerenciar permissões coletivamente. Cada grupo tem um nome de grupo (group name) e um GID (Group ID). O arquivo /etc/group contém informações sobre os grupos.
Comandos para Gerenciamento de Usuários
Comando useradd
O comando useradd é usado para criar novos usuários. Ele permite especificar várias opções, como o diretório home, o shell de login, e grupos adicionais.
$ sudo useradd -m -s /bin/bash -G grupo_suplementar novo_usuario- -m: Cria um diretório home.
- -s: Especifica o shell de login.
- -G: Adiciona o usuário a grupos suplementares.
Exemplo Prático
Para criar um usuário chamado joao com diretório home, shell Bash, e adicioná-lo ao grupo sudo:
$ sudo useradd -m -s /bin/bash -G sudo joao
$ sudo passwd joao
# Defina uma senha para o usuário joaoComando usermod
O comando usermod é usado para modificar contas de usuários existentes. Ele permite alterar o diretório home, o shell de login, e grupos suplementares.
$ sudo usermod -s /bin/zsh joao- -s: Altera o shell de login.
- -d: Altera o diretório home.
- -G: Define grupos suplementares.
Exemplo Prático
Para adicionar o usuário joao ao grupo developers:
$ sudo usermod -aG developers joaoO parâmetro -aG adiciona o usuário a grupos suplementares sem removê-lo dos grupos atuais.
Comando userdel
O comando userdel é usado para excluir usuários. Ele pode excluir o diretório home e outros arquivos associados ao usuário.
$ sudo userdel -r joao- -r: Remove o diretório home e os arquivos do usuário.
Exemplo Prático
Para excluir o usuário joao e seu diretório home:
$ sudo userdel -r joaoComandos para Gerenciamento de Grupos
Comando groupadd
O comando groupadd é usado para criar novos grupos.
$ sudo groupadd developersExemplo Prático
Para criar um grupo chamado analysts:
$ sudo groupadd analystsComando groupmod
O comando groupmod é usado para modificar grupos existentes, como alterar o nome do grupo ou o GID.
$ sudo groupmod -n novo_nome developers- -n: Altera o nome do grupo.
- -g: Altera o GID do grupo.
Exemplo Prático
Para alterar o nome do grupo analysts para data_analysts:
$ sudo groupmod -n data_analysts analystsComando groupdel
O comando groupdel é usado para excluir grupos.
$ sudo groupdel developersExemplo Prático
Para excluir o grupo analysts:
$ sudo groupdel analystsGerenciamento de Senhas
Comando passwd
O comando passwd é usado para definir ou alterar senhas de usuários.
$ sudo passwd joaoExemplo Prático
Para forçar o usuário joao a alterar sua senha no próximo login:
$ sudo passwd -e joao- -e: Expira a senha do usuário, forçando-o a definir uma nova no próximo login.
Arquivos Importantes
/etc/passwd
O arquivo /etc/passwd contém informações sobre os usuários do sistema. Cada linha representa um usuário, com campos separados por dois-pontos (:).
joao:x:1001:1001:Joao da Silva:/home/joao:/bin/bash- joao: Nome de usuário.
- x: Senha (armazena uma referência à senha criptografada no arquivo- /etc/shadow).
- 1001: UID.
- 1001: GID do grupo principal.
- Joao da Silva: Campo de comentário (GECOS).
- /home/joao: Diretório home.
- /bin/bash: Shell de login.
/etc/shadow
O arquivo /etc/shadow armazena senhas criptografadas e informações de expiração de senhas.
joao:$6$saltsalt$hashedpassword:18598:0:99999:7:::- joao: Nome de usuário.
- $6$saltsalt$hashedpassword: Senha criptografada.
- 18598: Última alteração de senha (em dias desde 1 de janeiro de 1970).
- 0: Dias até que a senha possa ser alterada.
- 99999: Dias até que a senha deva ser alterada.
- 7: Dias de aviso antes de expirar a senha.
- ::: Campos reservados para expiração da conta e outras informações.
/etc/group
O arquivo /etc/group contém informações sobre os grupos do sistema. Cada linha representa um grupo, com campos separados por dois-pontos (:).
developers:x:1002:joao,maria- developers: Nome do grupo.
- x: Senha do grupo (geralmente não usada).
- 1002: GID.
- joao,maria: Lista de usuários membros do grupo.
Exemplos Práticos
Exemplo 1: Criando e Configurando um Usuário
- Crie um novo usuário chamado carloscom um diretório home e adicione-o ao gruposudo:
$ sudo useradd -m -s /bin/bash -G sudo carlos
$ sudo passwd carlos- Adicione carlosao grupodevelopers:
$ sudo usermod -aG developers carlos- Verifique as informações do usuário carlos:
$ id carlos
uid=1002(carlos) gid=1002(carlos) groups=1002(carlos),27(sudo),1001(developers)Exemplo 2: Gerenciando Grupos
- Crie um grupo chamado qa:
$ sudo groupadd qa- Adicione o usuário mariaao grupoqa:
$ sudo usermod -aG qa maria- Verifique a associação do grupo qa:
$ getent group qa
qa:x:1003:mariaExemplo 3: Configurando Políticas de Senha
- Expire a senha do usuário carlospara que ele seja forçado a alterá-la no próximo login:
$ sudo passwd -e carlos- Defina um tempo máximo de 90 dias para a senha do usuário maria:
$ sudo chage -M 90 maria- Verifique as políticas de senha do usuário maria:
$ sudo chage -l maria
Última alteração de senha : mai 18, 2024
Senha expira            : ago 16, 2024
Senha inativa           : nunca
Conta expira            : nunca
Número mínimo de dias entre mudanças de senha       : 0
Número máximo de dias entre mudanças de senha       : 90
Número de dias de aviso antes da expiração da senha : 7O gerenciamento de usuários e grupos é essencial para a segurança e a administração eficiente de sistemas Linux. Nesta aula, exploramos como criar, modificar e excluir usuários e grupos, além de configurar suas permissões e propriedades. Pratique esses comandos para ganhar confiança no gerenciamento de usuários e grupos no Linux.
Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, exploraremos o gerenciamento de permissões avançadas e ACLs (Access Control Lists) no Linux.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.





