Pular para o conteúdo
Início » Aprendendo Linux – Parte 7 – Gerenciamento de Usuários e Grupos no Linux

Aprendendo Linux – Parte 7 – Gerenciamento de Usuários e Grupos no Linux

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 joao
Comando 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 joao

O 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 joao

Comandos para Gerenciamento de Grupos

Comando groupadd

O comando groupadd é usado para criar novos grupos.

$ sudo groupadd developers
Exemplo Prático

Para criar um grupo chamado analysts:

$ sudo groupadd analysts
Comando 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 analysts
Comando groupdel

O comando groupdel é usado para excluir grupos.

$ sudo groupdel developers
Exemplo Prático

Para excluir o grupo analysts:

$ sudo groupdel analysts

Gerenciamento de Senhas

Comando passwd

O comando passwd é usado para definir ou alterar senhas de usuários.

$ sudo passwd joao
Exemplo 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
  1. Crie um novo usuário chamado carlos com um diretório home e adicione-o ao grupo sudo:
$ sudo useradd -m -s /bin/bash -G sudo carlos
$ sudo passwd carlos
  1. Adicione carlos ao grupo developers:
$ sudo usermod -aG developers carlos
  1. 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
  1. Crie um grupo chamado qa:
$ sudo groupadd qa
  1. Adicione o usuário maria ao grupo qa:
$ sudo usermod -aG qa maria
  1. Verifique a associação do grupo qa:
$ getent group qa
qa:x:1003:maria
Exemplo 3: Configurando Políticas de Senha
  1. Expire a senha do usuário carlos para que ele seja forçado a alterá-la no próximo login:
$ sudo passwd -e carlos
  1. Defina um tempo máximo de 90 dias para a senha do usuário maria:
$ sudo chage -M 90 maria
  1. 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 : 7

O 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.