Organizar usuários, grupos e permissões no Linux é a base da segurança do sistema. O objetivo principal deve ser sempre o Princípio do Menor Privilégio (PoLP): um usuário ou processo deve ter apenas o acesso mínimo necessário para realizar sua função.
Aqui está um guia estruturado para organizar seu ambiente de forma segura e escalável.
1. Estratégia de Grupos (A Chave da Organização)
O erro mais comum é atribuir permissões diretamente a usuários individuais. A forma correta e escalável é gerenciar permissões via Grupos.
- Grupos Funcionais: Crie grupos baseados em funções ou departamentos (ex:
devs,admins,auditores,webmasters). - Fluxo de Trabalho:
- Crie o grupo.
- Dê permissão ao grupo no diretório/arquivo.
- Adicione os usuários ao grupo.
- Vantagem: Quando um funcionário sai ou muda de área, você apenas remove o usuário do grupo, sem precisar caçar arquivos no sistema para alterar permissões.
Comandos Úteis:
# Criar grupo groupadd developers # Adicionar usuário ao grupo (o -aG mantém os outros grupos do usuário) usermod -aG developers joao # Verificar grupos de um usuário id joao
2. Hierarquia de Permissões (UGO e Octal)
Entenda a estrutura de propriedade para aplicar as regras corretas. O Linux divide permissões em três níveis:
- User (u): O dono do arquivo.
- Group (g): O grupo associado ao arquivo.
- Others (o): Todo o resto do mundo (o mais perigoso).
A Regra de Ouro da Segurança
Evite chmod 777 a todo custo. Isso dá controle total a qualquer um. Para diretórios compartilhados, use configurações mais restritas.
Permissões Recomendadas:
- Arquivos de configuração sensíveis:
600(rw——-) ou640(rw-r—–). Apenas o dono lê/escreve; grupo lê (se necessário). - Scripts/Binários:
750(rwxr-x—). Dono faz tudo, grupo executa, outros não têm acesso. - Diretórios Web: Geralmente
755para diretórios e644para arquivos.
3. Permissões Especiais (SetUID, SetGID, Sticky Bit)
Para cenários avançados onde o padrão rwx não basta.
A. SetGID (g+s) – Para Colaboração
Quando vários usuários precisam editar arquivos no mesmo diretório, o problema comum é: O usuário A cria um arquivo, e o usuário B não consegue editar porque o arquivo pertence ao grupo do usuário A.
Solução: Use o SetGID no diretório pai. Isso força todos os arquivos criados lá dentro a herdarem o grupo do diretório, não do usuário criador.
# 1. Mudar o grupo do diretório chown :developers /var/www/projeto # 2. Aplicar permissão de escrita para o grupo chmod 770 /var/www/projeto # 3. Ativar o SetGID (o '2' na frente ou g+s) chmod 2770 /var/www/projeto # ou chmod g+s /var/www/projeto
B. Sticky Bit (+t) – Para Diretórios Públicos
Útil para pastas como /tmp ou pastas de upload compartilhadas. Permite que todos criem arquivos, mas somente o dono (ou root) pode deletar seu próprio arquivo. Impede que o Usuário B apague o trabalho do Usuário A.
chmod +t /home/share/publico
4. Controle Granular com ACLs (Access Control Lists)
Às vezes, o modelo Dono/Grupo/Outros é muito rígido. Se você precisa que o Usuário A leia, o Usuário B escreva e o Usuário C não tenha acesso (e todos estão em grupos diferentes), use ACLs.
Exemplo:
# Dar permissão de leitura especificamente para o usuário 'ana' num arquivo setfacl -m u:ana:r arquivo_confidencial.txt # Verificar as ACLs getfacl arquivo_confidencial.txt # Remover todas as ACLs setfacl -b arquivo_confidencial.txt
5. Gestão de Root e Sudoers
Nunca logue diretamente como root. Use o sudo para rastreabilidade (logs) e segurança.
- Edição Segura: Sempre use
visudopara editar o/etc/sudoers. Ele verifica a sintaxe antes de salvar, evitando que você quebre o sistema. - Sudo por Grupo: Em vez de adicionar usuários individuais ao sudoers, descomente a linha do grupo
wheel(RHEL/CentOS/Alma) ousudo(Debian/Ubuntu) e adicione os administradores a esse grupo.
# Permitir que membros do grupo 'sysadmin' usem sudo sem senha (usar com cautela) %sysadmin ALL=(ALL) NOPASSWD: ALL
6. Auditoria de Segurança
Periodicamente, você deve verificar se existem arquivos com permissões perigosas.
Encontrar arquivos com permissão 777 (perigo mundial):
find /var/www -type f -perm 0777
Encontrar arquivos com SUID (podem ser executados com privilégios do dono, risco de escalada de privilégio):
find / -perm /4000 -type f 2>/dev/null
Resumo das Melhores Práticas
| Ação | Comando/Conceito | Por quê? |
| Trocar Dono | chown user:group arquivo | Define quem é responsável. |
| Trocar Permissão | chmod 750 | Define quem pode ler/escrever. |
| Colaboração | chmod g+s pasta | Garante herança de grupo. |
| Segurança | umask 027 | Define permissão padrão restritiva para novos arquivos. |
| Exceções | setfacl | Para regras que fogem do padrão. |
Clique aqui e consulte nossos planos de Gerenciamento de Servidor

