Chmod e chown no Linux: como ajustar permissões de arquivos e sites na VPS

Tempo de leitura: 3 minutos

“Permissão negada” é um dos erros mais comuns de quem administra uma VPS. A solução que aparece em muito tutorial é liberar tudo com chmod 777, e isso abre uma brecha de segurança séria. Entender chmod e chown leva uns minutos e evita tanto o erro quanto o perigo.

Num servidor seu, você tem controle total das permissões, e isso começa com uma VPS Linux própria. Se você ainda não tem onde rodar isso, a Cloud VPS Brasil já entrega o servidor pronto.

Como ler as permissões

Rode ls -l numa pasta e veja uma linha como:

-rw-r--r-- 1 www-data www-data 4096 Out 15 10:00 index.php

O primeiro bloco de letras mostra o tipo e as permissões:

  • O primeiro caractere: - é arquivo e d é pasta.
  • Os três seguintes (rw-): permissões do dono.
  • Os três do meio (r--): permissões do grupo.
  • Os três finais (r--): permissões dos outros.

As letras são r (ler), w (escrever) e x (executar, ou entrar na pasta). Depois vêm o dono (www-data) e o grupo (www-data).

Os números do chmod

Cada permissão vale um número: r = 4, w = 2, x = 1. Some para cada grupo:

  • 7 = 4+2+1 = ler, escrever e executar.
  • 6 = 4+2 = ler e escrever.
  • 5 = 4+1 = ler e executar.
  • 4 = só ler.
  • 0 = nada.

Então 755 significa: dono com tudo (7), grupo e outros podem ler e executar (5). E 644 significa: dono lê e escreve (6), grupo e outros só leem (4).

Os valores certos para um site

Para sites (WordPress, por exemplo), o padrão seguro é:

  • Pastas: 755
  • Arquivos: 644
  • wp-config.php: 640 ou 600

Para aplicar em todo o site de uma vez:

sudo find /var/www/meusite -type d -exec chmod 755 {} \;
sudo find /var/www/meusite -type f -exec chmod 644 {} \;
sudo chmod 640 /var/www/meusite/wp-config.php

Por que nunca usar 777

Com 777, qualquer usuário do servidor pode alterar o arquivo. Se uma vulnerabilidade deixar um invasor executar algo como usuário comum, ele consegue gravar e modificar o seu site. Quando um tutorial pedir 777, quase sempre o problema real é o dono errado, e não a permissão.

O chown: trocar o dono

O chown define quem é dono do arquivo e de qual grupo:

sudo chown www-data:www-data arquivo.php
sudo chown -R www-data:www-data /var/www/meusite

O -R aplica em tudo dentro da pasta. Em Ubuntu e Debian, o Nginx e o Apache rodam como www-data. Em outras distribuições o usuário pode ser nginx ou apache. Descubra olhando a configuração do servidor web.

Exemplo real: erro ao fazer upload no WordPress

O WordPress diz que não consegue gravar em wp-content/uploads. Provavelmente a pasta pertence ao usuário errado. Em vez de usar 777, ajuste o dono:

sudo chown -R www-data:www-data /var/www/meusite/wp-content/uploads
sudo find /var/www/meusite/wp-content/uploads -type d -exec chmod 755 {} \;

Dicas finais

  1. Depois de restaurar um backup ou copiar arquivos como root, quase sempre é preciso refazer o chown.
  2. Use ls -ld pasta para ver as permissões da própria pasta, e não do conteúdo.
  3. Em dúvida, comece com o menos permissivo e libere só o necessário.
  4. Para reforçar a segurança do acesso ao servidor, veja Chave SSH na VPS Linux.

Controle total do seu servidor

Com permissões certas e uma VPS própria, o seu site fica mais seguro. Na Cloud VPS Brasil você conta com Intel Xeon Gold, SSD NVMe, baixa latência, tráfego ilimitado, preço fixo em reais e suporte humano via WhatsApp e ticket. Fale com a equipe pelo WhatsApp e escolha o plano ideal para o seu projeto.