Pular para o conteúdo principal

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:

  1. groupname: Nome do grupo
  2. password: x (em /etc/gshadow, raramente usado)
  3. GID: Group ID
  4. 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