Skip to content

📁 Gerenciamento de Usuários e Grupos no Linux - Primeira parte.

Este tutorial abrange os comandos essenciais para a criação, modificação e exclusão de usuários e grupos, além de como gerenciar suas permissões no sistema Linux.

1 - Entendendo Usuários e Grupos

No Linux, usuários são as entidades que interagem com o sistema, enquanto grupos são coleções de usuários. Eles são usados para organizar usuários e aplicar permissões de forma eficiente.

  • Usuário Root: O superusuário com controle total sobre o sistema. Use-o com extrema cautela.

  • Usuários Regulares: Usuários com privilégios limitados.

  • Usuários do Sistema: Usuários com privilégios específicos de serviços/aplicativos.

  • Grupos Primários: O grupo padrão ao qual um usuário pertence no momento da criação.

  • Grupos Suplementares: Grupos adicionais aos quais um usuário pode pertencer.

2 - Gerenciando Usuários

Criando um Novo Usuário, use o comando useradd.

sudo useradd [opções] <nome_do_usuario>

Opções Comuns:

  • -m Cria o diretório home do usuário se ele não existir. (Altamente recomendado)

  • -s : Especifica o shell de login do usuário (ex: /bin/bash, /bin/zsh).

  • -g : Define o grupo primário do usuário.

  • -G : Adiciona o usuário a grupos suplementares.

  • -c "": Adiciona um comentário sobre o usuário (ex: nome completo).

Exemplo:

sudo useradd -m -s /usr/bin/fish -aG www-data,sudo -c "João Silva" joaosilva

Atenção Se a opção -a for omitida no comando usermod acima, o usuário é removido de todos os outros grupos não listados em grupos_adicionais (i.e. o usuário será membro apenas daqueles grupos em grupos_adicionais).

Isso cria o usuário joaosilva com um diretório home, bash como shell padrão, e o adiciona aos grupos www-data e sudo.

3 - Definindo a Senha de um Usuário

Após criar um usuário, ele está logando sem senha, você precisa definir uma senha para ele usando o comando passwd.

sudo passwd <nome_do_usuario>

O sistema irá pedir para você digitar a nova senha duas vezes.

Exemplo:

sudo passwd joaosilva

4 - Modificando um Usuário Existente

O comando usermod é usado para modificar as propriedades de um usuário.

sudo usermod [opções] <nome_do_usuario>

Opções Comuns:

  • -l : Altera o nome de usuário (o diretório home e o grupo primário não são alterados automaticamente).

  • -d : Altera o diretório home do usuário.

  • -m: Move o conteúdo do diretório home antigo para o novo (usado com -d).

  • -s : Altera o shell de login.

  • -g : Altera o grupo primário.

  • -G : Adiciona o usuário a grupos suplementares (sobrescreve os grupos existentes se não usar -a).

  • -aG : Adiciona o usuário a grupos suplementares sem remover os existentes. (Altamente recomendado)

  • -L: Bloqueia a conta do usuário.

  • -U: Desbloqueia a conta do usuário.

Exemplos:

Para adicionar joaosilva ao grupo docker sem remover outros grupos:

sudo usermod -aG docker joaosilva

Para mudar o nome de usuário de joaosilva para jsilva:

sudo usermod -l jsilva joaosilva

Importante: Após renomear um usuário com -l, o diretório home e o grupo primário ainda terão o nome antigo. Você precisará renomeá-los manualmente:

sudo mv /home/joaosilva /home/jsilva
sudo groupmod -n jsilva joaosilva
sudo usermod -d /home/jsilva -m jsilva

Adiconar um usuário á um grupo específico com o comando adduser:

sudo adduser jsilva tape

Adiconar um usuário á um grupo específico com o comando gpasswd:

sudo gpasswd -a jsilva tape

5 - Excluindo um Usuário

Use o comando userdel para remover um usuário.

sudo userdel [opções] <nome_do_usuario>

Opções Comuns:

  • -r: Remove o diretório home do usuário e o mail spool. (Altamente recomendado)

Exemplo:

sudo userdel -r joaosilva

6 - Gerenciando Grupos

3.1. Criando um Novo Grupo

Use o comando groupadd para criar um novo grupo.

sudo groupadd [opções] <nome_do_grupo>

Exemplo:

sudo groupadd desenvolvedores

7 - Modificando um Grupo Existente

O comando groupmod é usado para modificar as propriedades de um grupo.

sudo groupmod [opções] <nome_do_grupo>

Opções Comuns:

  • -n : Altera o nome do grupo.

Exemplo:

Para mudar o nome do grupo desenvolvedores para devs:

   sudo groupmod -n devs desenvolvedores

8 - Excluindo um Grupo

Use o comando groupdel para remover um grupo.

sudo groupdel <nome_do_grupo>

Exemplo:

sudo groupdel devs

9 - Gerenciando Membros do Grupo

Adicionando Usuários a um Grupo

Para adicionar um usuário a um grupo existente, a maneira mais comum é usar usermod -aG.

sudo usermod -aG <nome_do_grupo> <nome_do_usuario>

Exemplo:

sudo usermod -aG www-data joaosilva

10 - Removendo Usuários de um Grupo

Para remover um usuário de um grupo, você pode usar gpasswd ou deluser (dependendo da distribuição).

Usando gpasswd (mais comum e recomendado):

sudo gpasswd -d <nome_do_usuario> <nome_do_grupo>

Exemplo:

sudo gpasswd -d joaosilva www-data

Usando deluser (disponível em algumas distribuições como Debian/Ubuntu):

sudo deluser <nome_do_usuario> <nome_do_grupo>

Exemplo:

sudo deluser joaosilva www-data

11 - Visualizando Informações de Usuários e Grupos

Listar Usuários

As informações dos usuários são armazenadas em /etc/passwd. Você pode visualizá-lo com cat ou less.

cat /etc/passwd

Listar Grupos

As informações dos grupos são armazenadas em /etc/group.

cat /etc/group

Visualizar Informações de um Usuário Específico

Use o comando id para ver o ID do usuário, grupo primário e grupos suplementares de um usuário.

id <nome_do_usuario>

Exemplo:

id joaosilva

5.4. Visualizar Membros de um Grupo

grep <nome_do_grupo> /etc/group

Exemplo:

grep sudo /etc/group

Ou, em algumas distribuições, você pode usar members (se instalado).

members <nome_do_grupo>

12 - Permissões de Arquivos e Diretórios

As permissões no Linux são baseadas em usuário, grupo e outros.

  • r (leitura): 4

  • w (escrita): 2

  • x (execução): 1

A combinação dessas permissões é um número octal.

Exemplo:

  • rwx (4+2+1 = 7), rw- (4+2+0 = 6), r-x (4+0+1 = 5).

6.1. Alterando Permissões (chmod)

Use chmod para alterar as permissões de um arquivo ou diretório.

chmod <permissões_octais> <arquivo/diretório>

Exemplo:

Dar ao proprietário, grupo e outros permissão total (leitura, escrita, execução) para um script:

chmod 777 meu_script.sh

Dar ao proprietário leitura/escrita, ao grupo leitura e a outros nenhuma permissão para um arquivo:

    chmod 640 meu_arquivo.txt

Alterando o Proprietário (chown)

Use chown para alterar o proprietário de um arquivo ou diretório.

sudo chown <novo_proprietario> <arquivo/diretório>

Exemplo:

sudo chown joaosilva meu_arquivo.txt

6.3. Alterando o Grupo Proprietário (chgrp)

Use chgrp para alterar o grupo proprietário de um arquivo ou diretório.

sudo chgrp <novo_grupo> <arquivo/diretório>

Exemplo:

sudo chgrp devs meu_arquivo.txt

Você também pode usar chown para alterar o proprietário e o grupo simultaneamente:

sudo chown <proprietario>:<grupo> <arquivo/diretório>

Exemplo:

sudo chown joaosilva:devs meu_arquivo.txt

Considerações Finais

  • Sempre use sudo: A maioria dos comandos de gerenciamento de usuários e grupos requer privilégios de superusuário.

  • Segurança: Evite dar permissões excessivas. Siga o princípio do menor privilégio.

  • Documentação: Consulte as páginas man para obter informações detalhadas sobre cada comando (ex: man useradd).

  • Backup: Sempre faça backup de arquivos de configuração importantes (como /etc/passwd, /etc/group, /etc/shadow) antes de fazer grandes alterações.

That's all folks