Corrigindo Permission Denied no Ubuntu - Guia de chmod, chown e sudo
O que voce vai aprender
- Como diagnosticar rapidamente erros de
Permission deniedno Ubuntu - Quando usar
chmod,chownousudo - Como evitar erros comuns (como abrir permissoes demais)
Resumo Rapido
Permission denied geralmente se encaixa em uma dessas categorias:
- Sem permissao de execucao ->
chmod +x - Proprietario/grupo errado ->
chown/chgrp - Requer privilegios de administrador -> Execute com
sudo - Nao consegue entrar no diretorio (sem permissao x) -> Verifique permissoes do diretorio
Comece com ls -la (ou namei -l) para ver quem esta bloqueando o que.
Pre-requisitos
- SO: Ubuntu
- Shell: bash
- Permissoes: Acesso
sudoassumido (contate o administrador se indisponivel)
1. Verifique os sintomas
Conclusao: O tipo de erro — arquivo, script ou diretorio — determina qual caminho de correcao seguir.
Exemplo: Nao consegue ler um arquivo
$ cat /path/to/file cat: ...: Permission denied
Exemplo: Nao consegue executar um script
$ ./script.sh bash: ./script.sh: Permission denied
Exemplo: Nao consegue entrar em um diretorio
$ cd /path/to/dir bash: cd: ...: Permission denied
2. Verifique as permissoes (ls -la)
Conclusao: Execute
ls -la— os bits rwx para proprietario, grupo e outros revelam o que esta faltando.
$ ls -la /path/to/target
Lendo as permissoes
r: leituraw: escritax: execucao (ou entrada para diretorios)
Tres grupos: proprietario | grupo | outros
Exemplos:
-rw-r--r--: Proprietario pode escrever, outros so podem lerdrwxr-x---: Proprietario tem acesso total, grupo pode ler/entrar, outros nao tem acesso
Caso A: Script nao executa (sem x)
Conclusao: Execute
chmod +xquando o bitxesta ausente — ele adiciona apenas execucao, nada mais.
Verifique:
$ ls -la script.sh
Se voce ve -rw-r--r-- (sem x), adicione permissao de execucao:
$ chmod +x script.sh
Isso apenas adiciona permissao de "execucao". Nao e necessario ampliar permissoes de leitura/escrita.
Caso B: Nao consegue escrever (sem w / proprietario errado)
Conclusao: O acesso de escrita e definido pelo diretorio — use
chownousudoconforme apropriado.
Permissoes de escrita dependem do diretorio.
Se voce deveria ser o dono do local -> Corrija o proprietario (Caso C)
Se e um diretorio do sistema (/etc, /var, /usr) -> Use sudo (Caso D)
Caso C: Proprietario/grupo errado (chown/chgrp)
Conclusao: Use
chown user:group /path— sempre verifique o caminho antes de adicionar-R.
Alterar proprietario (exemplo: usuario e ubuntu):
$ sudo chown ubuntu:ubuntu /path/to/dir
Recursivo (cuidado):
$ sudo chown -R ubuntu:ubuntu /path/to/dir
Atencao: -R afeta tudo sob o caminho. Verifique duas vezes antes de executar.
Alterar apenas o grupo:
$ sudo chgrp www-data /path/to/dir
Caso D: Precisa de privilegios de administrador (sudo)
Conclusao: Use
sudopara arquivos do sistema — acesso elevado temporario, proprietario inalterado.
Arquivos e servicos do sistema requerem acesso de administrador:
$ sudo vim /etc/nginx/nginx.conf
$ sudo systemctl restart nginx
Caso E: Nao consegue entrar no diretorio (sem x)
Conclusao: Diretorios precisam de
xpara entrar — corrija comchown, nao comchmod 777.
Permissao negada no cd geralmente significa que o diretorio nao tem permissao de execucao (entrada).
$ ls -ld /path/to/dir
Se voce deveria poder entrar, corrija o proprietario ou grupo (Caso C).
Nao use chmod 777 descuidadamente.
3. Rastreie o caminho (namei)
Conclusao: Execute
namei -l /path— mostra as permissoes de cada diretorio e revela o bloqueio.
Quando voce nao consegue descobrir onde esta o bloqueio em um caminho longo:
$ namei -l /path/to/target
Isso mostra as permissoes de cada diretorio no caminho, facilitando encontrar o diretorio com problema.
4. O que NAO fazer
Conclusao: Nunca use
chmod 777ouchown -R /— ambos criam brechas ou destroem o sistema.
Nao use chmod 777 para tudo
Pode funcionar temporariamente mas cria vulnerabilidades de seguranca, especialmente para servidores web e arquivos de configuracao.
Nao execute chown -R na raiz
$ sudo chown -R ubuntu:ubuntu / # NUNCA faca isso!
Isso vai quebrar seu sistema. Sempre verifique o caminho antes de usar -R.