Desenvolvedor de Software e Especialista em Tecnologia da Informação

🚫 Erro 403 Forbidden? Resolva em 30 segundos com chmod e chown! 🚀

O erro 403 Forbidden é um dos problemas mais comuns para quem trabalha com Linux, Apache, Nginx, PHP e Laravel. Muitas vezes o código está correto, o servidor está funcionando, mas o navegador continua exibindo a mensagem "Access Forbidden". Neste guia completo, você vai aprender como utilizar os comandos chmod e chown para corrigir permissões de arquivos e diretórios, garantindo que seu servidor web consiga acessar seu projeto sem comprometer a segurança.

📅  11 de junho de 2026
⏱️  11 min
🏷️  Linux
📚 artigos +


CHMOD e CHOWN no Linux: O guia definitivo para resolver o erro 403 Forbidden em Apache e Nginx

Seu site está quebrado e você não sabe o que está acontecendo? Pode ser um problema de permissão de arquivos, especialmente se você estiver usando um servidor linux como o ubuntu server. Neste artigo, vamos explorar como o comando chown e chmod podem ser usados para resolver problemas de permissão de arquivos no seu servidor web, incluindo o apache e o nginx. Se você é um desenvolvedor backend que trabalha com php e laravel, ou um sysadmin responsável por manter um servidor web seguro, este artigo é para você. Vamos aprender como usar o comando find para localizar arquivos com permissões incorretas e como usar o chmod para alterar as permissões de arquivos e pastas. Além disso, vamos discutir como evitar erros como o 403 Forbidden e como garantir que o seu site esteja funcionando corretamente. Se você está tendo problemas para deployar o seu aplicativo laravel ou está enfrentando problemas de permissão de arquivos, este artigo vai ajudá-lo a resolver esses problemas e manter o seu servidor web seguro e funcionando corretamente.

🚫 Erro 403 Forbidden? Resolva em 30 segundos com chmod e chown! 🚀

CHMOD CHOWN Linux Ubuntu Server Apache Nginx Laravel 403 Forbidden Permissões Linux Servidor Web DevOps RogerioPontesTI

"Seu site está quebrado e você não sabe o que está acontecendo? Pode ser um problema de permissão de arquivos, especialmente se você estiver usando um servidor Linux como o Ubuntu Server. Neste artigo, vamos explorar como os comandos chown e chmod podem ser usados para resolver problemas de permissão no seu servidor web, incluindo Apache e Nginx."


O que é o erro 403 Forbidden e por que ele acontece?

O erro 403 Forbidden é uma resposta HTTP que indica que o servidor entendeu a requisição, mas se recusa a atendê-la. Em outras palavras, o servidor web (Apache ou Nginx) está dizendo: "Você não tem permissão para acessar este recurso."

As causas mais comuns para o erro 403 Forbidden em servidores Linux são:

  • Permissões incorretas de arquivos e diretórios
  • Proprietário incorreto (o servidor web não tem acesso aos arquivos)
  • Configuração incorreta do Apache ou Nginx
  • Arquivo .htaccess bloqueando o acesso
  • Problemas com SELinux ou AppArmor

💡 Dica: Na maioria dos casos, o erro 403 Forbidden pode ser resolvido com ajustes simples de permissão usando os comandos chmod e chown.


🔐 O comando CHMOD — Alterando permissões de arquivos e diretórios

O comando chmod (Change Mode) é utilizado para alterar as permissões de leitura, escrita e execução de arquivos e diretórios no Linux.

As permissões no Linux são divididas em três grupos:

  • Usuário (u) — o proprietário do arquivo
  • Grupo (g) — o grupo ao qual o arquivo pertence
  • Outros (o) — todos os outros usuários

Cada grupo pode ter três tipos de permissões:

  • r (read) — leitura — valor numérico: 4
  • w (write) — escrita — valor numérico: 2
  • x (execute) — execução — valor numérico: 1

📊 Tabela de permissões numéricas

Número Permissão Descrição
0 --- Sem permissões
1 --x Execução apenas
2 -w- Escrita apenas
3 -wx Escrita e execução
4 r-- Leitura apenas
5 r-x Leitura e execução
6 rw- Leitura e escrita
7 rwx Leitura, escrita e execução

📁 Permissões recomendadas para servidores web

📄 Arquivos

644rw-r--r--
O que significa: O proprietário pode ler e escrever. O grupo e outros podem apenas ler.

Quando usar: Arquivos PHP, HTML, CSS, JavaScript e imagens.

📁 Diretórios

755rwxr-xr-x
O que significa: O proprietário pode ler, escrever e executar. O grupo e outros podem ler e executar.

Quando usar: Diretórios de projetos web e pastas de uploads.

⚠️ Arquivos de cache e logs

664 ou 775
O que significa: Permissões mais flexíveis para escrita por parte do servidor web.

Quando usar: Diretórios storage e bootstrap/cache no Laravel.

🚫 NUNCA use 777

777rwxrwxrwx
O que significa: Todos os usuários podem ler, escrever e executar.

Por que evitar: É extremamente inseguro e permite que qualquer usuário modifique ou execute arquivos no seu servidor.

EXEMPLO CHMOD
terminal — chmod
rogerio@servidor:/var/www/html$ sudo chmod 644 index.php rogerio@servidor:/var/www/html$ sudo chmod 755 uploads/ rogerio@servidor:/var/www/html$ sudo chmod -R 755 storage/ rogerio@servidor:~$ ls -la -rw-r--r-- 1 rogerio www-data 1024 jan 15 10:30 index.php drwxr-xr-x 2 rogerio www-data 4096 jan 15 10:35 uploads/ rogerio@servidor:~$

👤 O comando CHOWN — Alterando o proprietário e grupo

O comando chown (Change Owner) é utilizado para alterar o proprietário e o grupo de arquivos e diretórios no Linux.

Para que o servidor web (Apache ou Nginx) consiga acessar e executar os arquivos do seu projeto, o proprietário e o grupo precisam estar corretamente configurados.

Em servidores Ubuntu e Debian, o usuário padrão do Apache é www-data. No Nginx, também é comum usar www-data ou nginx.

🔍 Como identificar o proprietário atual
Use o comando ls -la para listar os arquivos e verificar o proprietário e grupo:
IDENTIFICANDO O PROPRIETÁRIO
terminal — ls
rogerio@servidor:/var/www/html$ ls -la -rw-r--r-- 1 rogerio rogerio 1024 jan 15 10:30 index.php rogerio@servidor:/var/www/html$

No exemplo acima, o arquivo index.php pertence ao usuário rogerio e ao grupo rogerio. O servidor web (Apache/Nginx) roda como www-data, então ele não tem permissão para acessar este arquivo.

✅ Como corrigir o proprietário
Use o comando chown para alterar o proprietário e grupo para o usuário do servidor web:
CORRIGINDO O PROPRIETÁRIO
terminal — chown
rogerio@servidor:/var/www/html$ sudo chown www-data:www-data -R /var/www/html/meuprojeto rogerio@servidor:/var/www/html$ ls -la -rw-r--r-- 1 www-data www-data 1024 jan 15 10:30 index.php rogerio@servidor:~$

⚠️ Atenção: Alterar o proprietário para www-data pode impedir que você edite os arquivos diretamente. Uma prática comum é manter o usuário como seu próprio usuário e o grupo como www-data: sudo chown -R rogerio:www-data /var/www/html/meuprojeto.


⚙️ Permissões específicas para Laravel

No Laravel, os diretórios storage e bootstrap/cache exigem permissões especiais para que o framework possa escrever logs, cache e arquivos de sessão.

LARAVEL PERMISSIONS
terminal — laravel
rogerio@servidor:/var/www/html/laravel$ sudo chown -R rogerio:www-data storage rogerio@servidor:/var/www/html/laravel$ sudo chown -R rogerio:www-data bootstrap/cache rogerio@servidor:/var/www/html/laravel$ sudo chmod -R 775 storage rogerio@servidor:/var/www/html/laravel$ sudo chmod -R 775 bootstrap/cache rogerio@servidor:~$

💡 Dica: Para projetos Laravel em produção, considere usar 775 para diretórios e 664 para arquivos, garantindo que o servidor web tenha permissão de escrita quando necessário.


🔍 Como identificar e corrigir permissões incorretas

1. Verificando o erro no navegador

Quando você acessa seu site e vê o erro 403 Forbidden, a primeira coisa a fazer é verificar os logs do servidor web.

LOGS DO APACHE
terminal — apache
rogerio@servidor:~$ sudo tail -f /var/log/apache2/error.log [Fri Jan 15 10:30:00.000000 2025] [core:error] [pid 1234] (13)Permission denied: AH00035: access to /meuprojeto/index.php denied (filesystem path '/var/www/html/meuprojeto/index.php') because search permissions are missing on a component of the path rogerio@servidor:~$
LOGS DO NGINX
terminal — nginx
rogerio@servidor:~$ sudo tail -f /var/log/nginx/error.log 2025/01/15 10:30:00 [error] 1234#1234: *1 open() "/var/www/html/meuprojeto/index.php" failed (13: Permission denied), client: 192.168.1.100, server: meusite.com, request: "GET / HTTP/1.1" rogerio@servidor:~$

2. Verificando as permissões atuais

VERIFICANDO PERMISSÕES
terminal — ls
rogerio@servidor:/var/www/html$ ls -la drwxr-xr-x 2 rogerio rogerio 4096 jan 15 10:30 meuprojeto rogerio@servidor:/var/www/html$ ls -la meuprojeto/ -rw-r--r-- 1 rogerio rogerio 1024 jan 15 10:30 index.php rogerio@servidor:~$

3. Corrigindo as permissões

CORRIGINDO PERMISSÕES
terminal — correção
rogerio@servidor:/var/www/html$ sudo chown -R rogerio:www-data meuprojeto rogerio@servidor:/var/www/html$ sudo chmod -R 755 meuprojeto rogerio@servidor:/var/www/html$ sudo find meuprojeto -type f -exec chmod 644 {} \; rogerio@servidor:/var/www/html$ sudo find meuprojeto -type d -exec chmod 755 {} \; rogerio@servidor:~$

🔐 Boas práticas de segurança para permissões

1️⃣ NUNCA use 777

777 dá permissão total para todos os usuários. Isso é extremamente inseguro e pode comprometer todo o seu servidor.

2️⃣ Use 644 para arquivos

Arquivos devem ter permissão 644 (rw-r--r--) para que o servidor web possa ler, mas não escrever.

3️⃣ Use 755 para diretórios

Diretórios devem ter permissão 755 (rwxr-xr-x) para que o servidor web possa listar e acessar seu conteúdo.

4️⃣ Verifique regularmente

Use comandos como find para localizar arquivos e diretórios com permissões incorretas e corrija-os.


🔍 Encontrando arquivos com permissões incorretas usando find

O comando find é extremamente útil para localizar arquivos e diretórios com permissões incorretas.

ENCONTRANDO ARQUIVOS
terminal — find
# Encontrar arquivos com permissão 777 rogerio@servidor:/var/www/html$ sudo find meuprojeto -type f -perm 777 meuprojeto/uploads/malicioso.php # Encontrar diretórios com permissão 777 rogerio@servidor:/var/www/html$ sudo find meuprojeto -type d -perm 777 meuprojeto/uploads/ # Corrigir arquivos 777 para 644 rogerio@servidor:/var/www/html$ sudo find meuprojeto -type f -perm 777 -exec chmod 644 {} \; # Corrigir diretórios 777 para 755 rogerio@servidor:/var/www/html$ sudo find meuprojeto -type d -perm 777 -exec chmod 755 {} \; rogerio@servidor:~$

⏱️ Capítulos do vídeo

  • 00:00 — Introdução ao erro 403 Forbidden
  • 00:05 — Verificando permissões com ls -la
  • 00:10 — Alterando proprietário com chown
  • 00:20 — Alterando permissões com chmod
  • 00:30Boas práticas de segurança
  • 00:38 — Recapitulação dos comandos

🎯 Conclusão

O erro 403 Forbidden é um dos problemas mais comuns em servidores Linux, mas também um dos mais fáceis de resolver quando você conhece os comandos certos.

Neste artigo, você aprendeu:

  • ✅ O que é o erro 403 Forbidden e suas causas
  • ✅ Como usar o comando chmod para alterar permissões de arquivos e diretórios
  • ✅ Como usar o comando chown para alterar proprietários e grupos
  • ✅ As permissões recomendadas para servidores web (644 para arquivos, 755 para diretórios)
  • ✅ Por que nunca usar 777 e os riscos de segurança envolvidos
  • ✅ Como usar o comando find para localizar e corrigir permissões incorretas
  • Boas práticas de segurança para administração de servidores

💡 Lembre-se: Manter as permissões corretas não é apenas uma questão de fazer seu site funcionar — é uma questão de segurança. Configure tudo com 644 para arquivos e 755 para diretórios, e nunca use 777 em produção.


🤔 O que você achou?

💬 Quer aprender JavaScript do ZERO? Comece agora a escrever seu primeiro código e seus fundamentos!


❓ FAQ: Perguntas Frequentes sobre CHMOD, CHOWN e Erro 403 Forbidden

O erro 403 Forbidden significa que o servidor entendeu a requisição, mas se recusa a atendê-la por falta de permissão.

Sim. É uma das causas mais comuns em servidores Linux. Permissões incorretas de arquivos e diretórios são a fonte mais frequente do erro.

Use chown quando o proprietário do arquivo ou diretório está incorreto. Por exemplo, quando o servidor web não tem acesso ao projeto porque os arquivos pertencem a outro usuário.

Use chmod quando as permissões de leitura, escrita ou execução precisam ser ajustadas. Por exemplo, para definir 644 para arquivos e 755 para diretórios.

Pode funcionar temporariamente, mas é extremamente inseguro e não deve ser utilizado em produção. Use 644 para arquivos e 755 para diretórios.

Sim. Ambos dependem das permissões corretas do sistema operacional para acessar os arquivos do projeto.

Sim. Diretórios como storage e bootstrap/cache frequentemente exigem permissões específicas para que o framework possa escrever logs e cache.

A permissão recomendada para arquivos é 644 (rw-r--r--), que permite leitura e escrita para o proprietário e leitura para o grupo e outros.

A permissão recomendada para diretórios é 755 (rwxr-xr-x), que permite leitura, escrita e execução para o proprietário e leitura/execução para o grupo e outros.

Use o comando ls -la para listar os arquivos e verificar as permissões, proprietário e grupo.

🎬 Assista ao Vídeos completo sobre Refatoração

O vídeo foi feito em Javascript mais o conceito pode ser utilizado em qualquer outra linguagem de programação..

🎬 Assista ao Vídeos completo sobre Refatoração


🔗 Conecte-se Comigo


💬 Você já passou pelo erro 403 Forbidden? Qual foi a causa? Conte nos comentários! 👇

#Linux #Ubuntu #Apache #Nginx #PHP #Laravel #Backend #Servidor #403Forbidden #DevOps #Programação #RogerioPontesTI