Permissões no Linux: como corrigir erros com chmod e chown
Entenda a lógica de permissões no Linux. Aprenda a usar chmod e chown para resolver erros de acesso em diretórios e arquivos de forma prática.
Resumo
- O sistema de permissões do Linux divide os acessos entre dono, grupo e outros usuários.
- As letras r, w e x representam respectivamente a leitura, escrita e execução de um arquivo.
- O comando chmod altera os níveis de acesso enquanto o chown redefine o dono legítimo do objeto.
- Erros de permissão negada geralmente ocorrem por incompatibilidade entre o UID do processo e o dono do arquivo.
- A gestão rigorosa de permissões evita que falhas de segurança exponham dados críticos do servidor.
Entendendo a lógica de permissões do Linux
No coração de qualquer sistema operacional tipo Unix, como o Linux, a segurança não é uma camada extra, mas a própria base. Cada arquivo e diretório possui um 'dono' e um 'grupo' associado, além de uma lista de permissões que definem quem pode ler, gravar ou executar aquele recurso. Quando você recebe um erro de 'Permission denied', o sistema está apenas aplicando uma regra que você, como administrador, deve aprender a ajustar.
As permissões são divididas em três categorias básicas: Usuário (Owner), Grupo (Group) e Outros (Others). Imagine que cada arquivo tem três cadeados: um para o dono, um para o grupo de pessoas autorizadas e um para qualquer outra pessoa no sistema. Para cada um desses cadeados, temos três chaves: r (read - leitura), w (write - escrita) e x (execute - execução). Se uma letra está presente, o acesso é permitido; se houver um traço, o acesso está bloqueado.
Como diagnosticar quem é o dono com ls -l
Antes de alterar qualquer coisa, você precisa ver a situação atual. O comando ls -l é o seu melhor aliado para isso. Ao rodar esse comando em um diretório, você verá uma coluna com algo como -rwxr-xr--. A primeira parte indica o tipo de arquivo e as permissões, enquanto as colunas seguintes mostram o usuário e o grupo donos do arquivo.
Muitas vezes, ao mover arquivos entre servidores ou extrair backups, o proprietário (UID) do arquivo perde a referência com o usuário atual do sistema. É aqui que começam os problemas. Se um arquivo pertence ao usuário 'root' e sua aplicação roda como o usuário 'web-user', a aplicação não conseguirá editar ou deletar esse arquivo. Para verificar essas conexões de rede e processos, você pode precisar analisar outras configurações, como detalhamos em nosso guia sobre como usar o comando netstat no Linux para ver conexões ativas.
Corrigindo o dono do arquivo com chown
O comando chown (change owner) serve para transferir a propriedade de um arquivo. Se um diretório de uploads do seu site ficou inacessível porque o dono foi alterado indevidamente durante uma migração, você corrige isso facilmente. O formato padrão é chown usuario:grupo arquivo_ou_pasta.
Para aplicar isso de forma recursiva, garantindo que todos os arquivos dentro de uma pasta também recebam a alteração, usamos a flag -R. Veja como aplicar na prática:
sudo chown -R www-data:www-data /var/www/html/uploadsEste comando diz ao Linux que o usuário www-data agora é o dono de tudo dentro da pasta uploads. É uma operação fundamental para evitar falhas em aplicações web. Se precisar de mais controle sobre a rede além das permissões, veja também nosso artigo sobre como configurar regras de firewall no Ubuntu com UFW para proteger seu ambiente.
Ajustando acessos com chmod
Depois de definir o dono, você pode precisar ajustar o que cada um pode fazer com o arquivo. É aqui que entra o chmod. Podemos usar o modo simbólico (letras) ou o modo numérico (octal). O modo numérico é muito comum: 4 para leitura, 2 para escrita e 1 para execução. A soma desses valores define o nível de acesso.
Por exemplo, 7 (4+2+1) significa que o usuário pode ler, escrever e executar. Para configurar um diretório onde o dono tem controle total (7), o grupo pode apenas ler e executar (5) e outros não têm acesso (0), usamos o valor 750. Aplique assim:
chmod 750 /var/www/html/configuracaoCuidado ao usar permissões muito amplas como 777, que permite que qualquer usuário do sistema altere seus arquivos. Isso é um risco grave de segurança e deve ser evitado em qualquer ambiente de produção.
Considerações finais
Dominar o uso de chmod e chown é a diferença entre um administrador que resolve problemas em minutos e um que perde horas tentando adivinhar por que uma aplicação falha. Ao entender a hierarquia rwx e como atribuir proprietários corretamente, você garante que o sistema funcione de forma previsível e segura.
Lembre-se sempre de testar as alterações de permissão em um ambiente de desenvolvimento antes de aplicá-las em servidores críticos. A gestão correta desses acessos não é apenas uma tarefa de configuração, mas um pilar fundamental da integridade de qualquer sistema Linux.