Capítulo 5.2 - Gerenciamento de Grupos
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender o sistema de grupos do Linux
- Criar e remover grupos
- Adicionar/remover usuários de grupos
- Entender grupo principal vs grupos secundários
- Utilizar grupos para permissões
Introdução
Os grupos permitem agrupar usuários para compartilhar permissões e recursos.
Vantagens:
- Permissões compartilhadas
- Gerenciamento simplificado
- Acesso controlado a recursos
Tipos de Grupos
Grupo Principal (Primary Group)
Características:
- Um usuário possui apenas um grupo principal
- Definido em
/etc/passwd(GID) - Criado automaticamente junto com o usuário
- Geralmente tem o mesmo nome do usuário
Grupos Secundários (Supplementary Groups)
Características:
- Um usuário pode pertencer a vários grupos
- Definidos em
/etc/group - Permissões adicionais
- Acesso a recursos extras
Arquivo /etc/group
Formato
# Formato: groupname:password:GID:members
root:x:0:
users:x:100:user1,user2
developers:x:1001:user1,user3,user4
sudo:x:27:user1,user2
www-data:x:33:
Campos:
- groupname: Nome do grupo
- password: x (em /etc/gshadow, raramente usado)
- GID: Group ID
- members: Lista de membros (separados por vírgula)
Criar um Grupo
groupadd
# Grupo simples
sudo groupadd developers
# Com GID específico
sudo groupadd -g 2000 developers
# Verificar se GID está disponível
sudo groupadd -g 2000 developers # Erro se já existir
# Sistema (GID < 1000)
sudo groupadd -r systemgroup
Modificar um Grupo
groupmod
# Alterar GID
sudo groupmod -g 2001 developers
# Renomear
sudo groupmod -n newname oldname
# Verificar
getent group developers
Remover um Grupo
groupdel
# Remover grupo
sudo groupdel developers
# Nota: Não é possível remover se for grupo principal de um usuário
Gerenciar Membros
Adicionar um Usuário
# Adicionar a um grupo (mantém outros grupos)
sudo usermod -aG developers user1
# -a: append (adicionar, não substituir)
# -G: grupos secundários
# Verificar
groups user1
id user1
Remover um Usuário
# Remover de um grupo (manualmente)
# Editar /etc/group ou usar gpasswd
sudo gpasswd -d user1 developers
Ver Membros
# Membros de um grupo
getent group developers
grep developers /etc/group
# Grupos de um usuário
groups user1
id user1
groups # Usuário atual
Grupo Principal vs Secundários
Alterar Grupo Principal
# Alterar grupo principal
sudo usermod -g developers user1
# Verificar
id user1
# uid=1000(user1) gid=1001(developers) groups=1001(developers),1002(sudo)
Novos Arquivos
Regra:
- Novos arquivos são criados com o grupo principal do usuário
- Pode ser alterado temporariamente com
newgrp
# Alterar grupo efetivo temporariamente
newgrp developers
# Verificar
groups # developers se torna o primeiro
Comandos Úteis
getent
# Informações do grupo
getent group developers
# Todos os grupos
getent group
# Verificar se grupo existe
getent group developers && echo "Existe"
id
# Informações do usuário
id
id user1
# Formato: uid=1000(user1) gid=1000(user1) groups=1000(user1),27(sudo),1001(developers)
groups
# Grupos do usuário atual
groups
# Grupos de um usuário
groups user1
Casos de Uso Práticos
Grupo para Projeto
# Criar grupo do projeto
sudo groupadd projet-alpha
# Adicionar membros
sudo usermod -aG projet-alpha dev1
sudo usermod -aG projet-alpha dev2
# Criar diretório compartilhado
sudo mkdir /srv/projet-alpha
sudo chgrp projet-alpha /srv/projet-alpha
sudo chmod 775 /srv/projet-alpha
# Os membros agora podem colaborar
Grupo de Administradores
# Adicionar ao grupo sudo
sudo usermod -aG sudo user1
# Verificar
groups user1
# user1 sudo
# Agora pode usar sudo
Resumo
Neste capítulo, você aprendeu:
Grupos: Agrupamento de usuários para permissões compartilhadas
Tipos: Principal (um só) vs Secundários (vários)
Arquivos: /etc/group para configuração
Criação: groupadd
Modificação: groupmod
Membros: usermod -aG, gpasswd -d
Comandos: getent, id, groups
Próximos Passos
Capítulo 5.3: Permissões Avançadas
Capítulo 5.4: ACL (Access Control Lists)
Capítulo criado em: Dezembro de 2024