Entendendo as Permissões de Arquivo do Linux e Como Gerenciá-las
Uma das bases fundamentais da segurança do sistema Linux e da arquitetura multiusuário é seu modelo de permissões de arquivos. Ao contrário do Windows, o Linux impõe rigorosamente a propriedade e o controle de acesso para cada arquivo e diretório no sistema. Dominar as permissões de arquivos não é apenas uma questão de segurança — é essencial para gerenciar servidores, implantar software, executar scripts e automatizar tarefas.
O Modelo de Permissão de Arquivos do Linux
Cada arquivo e diretório no Linux tem três tipos de direitos de acesso, atribuídos a três tipos de usuários:
| Classe de Usuário | Descrição |
|---|---|
| proprietário | O usuário que possui o arquivo |
| grupo | Usuários no grupo do arquivo |
| outros | Todos os outros usuários no sistema |
Cada classe pode receber três tipos de permissões:
| Permissão | Símbolo | Significado |
|---|---|---|
| leitura | r | Ver conteúdo do arquivo / listar dir |
| escrita | w | Modificar arquivo ou diretório |
| execução | x | Executar arquivo ou acessar diretório |
Visualizando Permissões com ls -l
Use o comando ls -l para exibir permissões de arquivos:
ls -l myscript.sh
Saída:
-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh
Análise:
- – → arquivo regular
- rwx → proprietário (leitura/escrita/execução)
- r-x → grupo (leitura/execução)
- r– → outros (somente leitura)
Alterando Permissões com chmod
📌 Modo Simbólico:
chmod u+x myscript.sh # Add execute to user chmod g-w myscript.sh # Remove write from group chmod o=r myscript.sh # Set read-only for others
📌 Modo Numérico:
chmod 755 myscript.sh # rwx for owner, rx for group, rx for others
| Octal | Significado |
|---|---|
| 7 | rwx |
| 6 | rw- |
| 5 | r-x |
| 4 | r– |
| 0 | — |
Exemplo:
chmod 644 file.txt # owner: rw-, group: r--, others: r-- chmod 700 script.sh # owner: rwx, group/others: ---
Gerenciando Propriedade com chown e chgrp
Alterar proprietário do arquivo:
chown alice file.txt
Alterar grupo:
chgrp devs file.txt
Alterar ambos:
chown bob:admins file.txt
Use -R para aplicar alterações recursivamente:
chown -R www-data:www-data /var/www/
Bits de Permissão Especiais
O Linux suporta três modos especiais que modificam o comportamento padrão:
1. SUID (Set User ID)
- Aplica-se a arquivos executáveis
- Executa com privilégios do proprietário, não do chamador
chmod u+s /usr/bin/passwd
🔍 saída do ls -l: -rwsr-xr-x
Caso de uso: /usr/bin/passwd deve ser executado como root para atualizar /etc/shadow.
SGID (Set Group ID) s
- Em arquivos: executa com o privilégio do grupo do arquivo
- Em diretórios: novos arquivos herdam o grupo
chmod g+s /opt/project
🔍 saída do ls -l: drwxr-sr-x
Útil em pastas de desenvolvimento compartilhadas.
Sticky Bit t
- Em diretórios: somente o proprietário pode excluir/renomear seus arquivos
- Comum em /tmp para proteger arquivos de usuários
chmod +t /shared/folder
ls -ld /tmpdrwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp
Compreendendo umask
O umask define permissões padrão para novos arquivos/diretórios:
Verifique o valor atual: umask
Valor comum: 0022
| Arquivo | Permissões padrão | Com umask 0022 |
|---|---|---|
| Arquivo | 666 → 644 | rw-r–r– |
| Dir | 777 → 755 | rwxr-xr-x |
Defina um umask temporário:
umask 0077 # Files: 600, Dirs: 700
Correções de Permissão Recursivas
Defina permissões de pasta e arquivo separadamente:
find /my/project -type d -exec chmod 755 {} ; find /my/project -type f -exec chmod 644 {} ;
Conclusão
As permissões de arquivos do Linux fornecem controle de acesso detalhado para segurança, ambientes multiusuário e automação. Compreender como visualizar, alterar e impor permissões capacita você a gerenciar servidores com confiança, proteger dados e colaborar com segurança.
Seja implantando aplicativos web, gerenciando servidores em nuvem ou construindo scripts de shell — conhecer seu caminho em torno de chmod, chown, umask e bits de permissão especiais é essencial.
