---
title: "Permissões no Linux: chmod, chown e o erro Permission denied"
description: "Aprenda a ler o ls -l, a notação rwx e octal (644, 755, 600), usar chmod e chown, por que 777 é erro e como corrigir Permission denied com Nginx e PHP na VPS."
url: "https://streethosting.com.br/guias/vps/permissoes-linux-chmod-chown"
category: "vps"
slug: "permissoes-linux-chmod-chown"
datePublished: "2026-11-13"
dateModified: "2026-11-13"
author: "Equipe StreetHosting"
difficulty: "iniciante"
language: "pt-BR"
keywords:
  - "chmod chown linux"
  - "permissões linux"
  - "permission denied linux"
  - "chmod 755 644"
  - "chmod 777 perigoso"
  - "www-data nginx permissões"
---

# Permissões no Linux na prática: chmod, chown e como resolver Permission denied

Todo arquivo no Linux tem um dono, um grupo e três tipos de permissão. Entender isso resolve a maioria dos erros de acesso negado em site, bot e chave SSH, sem apelar para o chmod 777.

> **Resposta rápida**
>
> Cada arquivo no Linux tem um **dono**, um **grupo** e permissões de **leitura (r)**, **escrita (w)** e **execução (x)** para dono, grupo e outros. Em octal, r vale 4, w vale 2 e x vale 1, e os valores comuns são `644` para arquivos, `755` para pastas e programas e `600` para a chave SSH. O `chmod` muda as permissões e o `chown` muda o dono. Nunca resolva erro de acesso com `chmod 777`: acerte o dono com `chown`.

## Como ler o ls -l

O comando `ls -l` lista arquivos com as permissões. Se você ainda está se familiarizando com o terminal, comece pelos [comandos Linux básicos para a VPS](https://streethosting.com.br/guias/vps/comandos-linux-basicos-vps). Uma saída típica é esta:

```
$ ls -l
-rw-r--r-- 1 ana  ana   2048 nov 13 10:02 index.html
drwxr-xr-x 2 ana  ana   4096 nov 13 10:00 imagens
-rwxr-x--- 1 root deploy  512 nov 12 18:30 deploy.sh
```

Cada linha começa com dez caracteres. O primeiro é o tipo: `-` para arquivo, `d` para pasta e `l` para link simbólico. Os nove seguintes são três blocos de três: permissões do dono, do grupo e dos outros. Depois vêm o número de links, o dono, o grupo, o tamanho, a data e o nome. No exemplo, `index.html` pertence ao usuário ana e ao grupo ana, e o `deploy.sh` pertence ao root e ao grupo deploy.

## Leitura, escrita e execução

Os três tipos de permissão significam coisas diferentes em arquivo e em pasta:

| Letra | Em um arquivo | Em uma pasta |
| --- | --- | --- |
| r (read) | Ler o conteúdo | Listar os nomes dentro dela |
| w (write) | Alterar o conteúdo | Criar, apagar e renomear itens dentro dela |
| x (execute) | Executar como programa ou script | Entrar na pasta e acessar o que está dentro |

O detalhe que mais confunde: para acessar um arquivo, você precisa de permissão **x em todas as pastas do caminho**, e não só permissão no arquivo. Uma pasta sem x impede o acesso a tudo que está dentro dela, mesmo que os arquivos sejam legíveis. E apagar um arquivo depende da permissão w na pasta que o contém, e não do arquivo em si.

## Notação octal: 644, 755 e 600

Em vez de escrever rwx, o chmod aceita três dígitos. Cada dígito é a soma dos valores r = 4, w = 2 e x = 1, na ordem dono, grupo e outros. Então 6 é 4 mais 2 (rw), 5 é 4 mais 1 (rx) e 7 é 4 mais 2 mais 1 (rwx).

| Octal | Símbolos | Quando usar |
| --- | --- | --- |
| 644 | rw-r--r-- | Arquivos comuns: o dono edita, todos leem |
| 755 | rwxr-xr-x | Pastas, programas e scripts executáveis |
| 600 | rw------- | Só o dono lê e escreve: chave SSH privada, arquivo .env |
| 700 | rwx------ | Pasta privada do dono, como ~/.ssh |
| 640 | rw-r----- | Dono edita, grupo lê, outros nada |
| 777 | rwxrwxrwx | Evite: qualquer um pode tudo |

> **Dica**
>
> Para a chave SSH, o cliente é exigente: a chave privada deve estar em `600` e a pasta `~/.ssh` em `700`. No servidor, o arquivo `~/.ssh/authorized_keys` não pode ter escrita para o grupo nem para outros (600 é o mais seguro), e o mesmo vale para a pasta `~/.ssh` e para a sua pasta pessoal. Se alguém além do dono puder alterar esses caminhos, o servidor SSH ignora a chave e pede senha. O passo a passo da chave está em [configurar chave SSH sem senha na VPS](https://streethosting.com.br/guias/vps/configurar-chave-ssh-sem-senha-vps).

## chmod e chown

O `chmod` muda permissões, em octal ou em símbolos. O `chown` muda dono e grupo. A opção `-R` aplica a mudança recursivamente, em toda a pasta e dentro dela.

```
# octal
chmod 644 index.html
chmod 600 ~/.ssh/id_ed25519
chmod 700 ~/.ssh

# símbolos: u dono, g grupo, o outros, a todos
chmod +x deploy.sh        # dá permissão de execução
chmod g+w arquivo         # o grupo passa a poder escrever
chmod o-rwx segredo.txt   # tira tudo dos outros

# dono e grupo
sudo chown ana arquivo
sudo chown ana:ana arquivo        # dono e grupo
sudo chown -R www-data:www-data /var/www/meusite
```

Mudar o dono exige sudo, porque só o root pode dar um arquivo a outro usuário. Quando precisar aplicar permissões diferentes a pastas e a arquivos dentro de uma árvore, não use um único `chmod -R`, porque ele trata tudo igual: com 755 deixa todos os arquivos executáveis, e com 644 tira o x das pastas e bloqueia o acesso a elas. Separe com o `find`:

```
sudo find /var/www/meusite -type d -exec chmod 755 {} +
sudo find /var/www/meusite -type f -exec chmod 644 {} +
```

> **Atenção**
>
> Com `-R` o estrago é grande se o caminho estiver errado. Um `sudo chown -R www-data /` ou um `chmod -R` na pasta errada pode quebrar o sistema inteiro, inclusive o acesso SSH. Confira o caminho com `pwd` e `ls` antes de rodar.

## Por que 777 é um erro

O `chmod 777` é a resposta mais comum, e a pior, que se encontra na internet para um erro de acesso. Ele funciona porque abre tudo, e justamente por isso é perigoso:

- **Qualquer processo escreve:** um plugin vulnerável, um outro site na mesma máquina ou um usuário comum passa a poder alterar ou criar arquivos ali.
- **Arquivo executável por todos:** um upload malicioso em uma pasta 777 vira um programa pronto para rodar.
- **Esconde o problema real:** o erro quase sempre é dono ou grupo errado, e o 777 só mascara isso até a próxima mudança.
- **Alguns programas recusam permissão aberta demais:** o cliente SSH recusa chave privada que outros usuários podem ler, e o servidor ignora o authorized_keys que outros podem alterar.

A regra prática: ninguém precisa de 777 em um servidor. Se uma pasta precisa ser gravável pelo site, dê a ela o dono ou o grupo certo e libere escrita só para ele, como na seção a seguir.

## www-data no Nginx e PHP

No Ubuntu e no Debian, o Nginx e o PHP FPM rodam com o usuário `www-data`. É esse usuário que precisa ler os arquivos do site e gravar nas pastas de upload e cache. Um arranjo comum e seguro:

1. Deixe os arquivos do site com o seu usuário como dono, para você editar e fazer deploy: `sudo chown -R ana:www-data /var/www/meusite`.
2. Dê leitura ao grupo e nada aos outros: pastas em `750` e arquivos em `640`, com o `find` mostrado acima, trocando os valores. O www-data lê pelo grupo.
3. Nas pastas em que o site precisa gravar, como `wp-content/uploads` no WordPress ou `storage` no Laravel, dê escrita ao grupo: `sudo chmod -R g+w storage`.

Se preferir o jeito direto, dar tudo ao www-data com `chown -R www-data:www-data` também funciona e é o que muitos tutoriais fazem. O custo é que você passa a precisar de sudo para editar os arquivos. Para a instalação completa do WordPress com essas permissões, veja [hospedar WordPress na VPS com Nginx](https://streethosting.com.br/guias/vps/hospedar-wordpress-vps-nginx).

## umask e as permissões de arquivos novos

O `umask` é a máscara que tira bits das permissões de todo arquivo ou pasta criado a partir dali. Com`022`, o padrão do root e dos serviços no Ubuntu, arquivos novos nascem 644 e pastas novas 755. Em sessões de usuário comum o Ubuntu costuma aplicar`002`, que deixa o grupo escrever também (664 e 775), já que cada usuário tem um grupo só dele. Para ver o valor da sua sessão, rode `umask`.

## Diagnosticar Permission denied

Quando aparecer *Permission denied*, não chute valores. Siga a ordem:

```
id
namei -l /var/www/meusite/storage/app.log
ls -ld /var/www/meusite /var/www/meusite/storage
sudo -u www-data cat /var/www/meusite/storage/app.log
```

1. **Descubra quem você é e quem precisa acessar.** O `id` mostra o seu usuário e grupos. Se o acesso é do Nginx ou do PHP, o usuário é o www-data.
2. **Veja as permissões do arquivo e de todas as pastas do caminho.** O `namei -l` mostra cada nível de uma vez, e o `ls -ld` mostra a própria pasta, sem listar o conteúdo.
3. **Teste como o outro usuário.** O `sudo -u www-data cat` reproduz o erro do site no seu terminal e confirma que o problema é de permissão.
4. **Corrija a causa:** dono errado se resolve com `chown`, falta de x em uma pasta com `chmod`, e falta de acesso ao grupo com `chmod g+r` ou `g+w`.
5. **Olhe o log do serviço.** O erro real do Nginx fica em `/var/log/nginx/error.log`, e quando vem junto de um 502, o caminho segue em [erro 502 Bad Gateway no Nginx](https://streethosting.com.br/guias/vps/erro-502-bad-gateway-nginx).

> **Dica**
>
> Se o comando funciona com sudo e falha sem ele, o problema é o seu usuário. Confira se faz sentido ele acessar aquilo e, se fizer, coloque o usuário no grupo certo com `sudo usermod -aG nomedogrupo seuusuario`. A mudança vale depois de sair e entrar de novo na sessão. Para criar um usuário comum com sudo, veja [criar usuário com sudo na VPS](https://streethosting.com.br/guias/vps/criar-usuario-sudo-vps-linux).

## Onde aplicar

Permissões são o dia a dia de quem administra o próprio servidor, e para isso você precisa de acesso root e de liberdade para criar usuários e grupos. Nas [VPS da StreetHosting](https://streethosting.com.br/vps) você tem acesso root, virtualização KVM e IPv4 dedicado. A VPS Xeon, a partir de R$ 26,00 por mês, com 2 vCPU, 2 GB DDR4 e 20 GB NVMe, serve bem para praticar e para hospedar um site com Nginx e PHP. Todas ficam em São Paulo, com AntiDDoS incluso, até 5 TB de tráfego por mês e ativação em cerca de 60 segundos após o pagamento por Pix ou cartão.

## Perguntas frequentes

### O que significa chmod 755?

O dono pode ler, escrever e executar (7), e o grupo e os outros podem ler e executar (5), mas não escrever. É o padrão para pastas e para programas e scripts que todo mundo precisa executar.

### Qual permissão usar para a chave privada SSH?

600 no arquivo da chave, ou seja, só o dono lê e escreve. A pasta ~/.ssh deve ficar em 700. O cliente SSH recusa chaves privadas com permissão aberta demais e mostra o aviso UNPROTECTED PRIVATE KEY FILE.

### Qual a diferença entre chmod e chown?

O chmod muda o que cada categoria pode fazer com o arquivo (ler, escrever, executar). O chown muda quem é o dono e o grupo do arquivo. Os dois costumam ser usados juntos para acertar uma pasta de site.

### Por que não devo usar chmod 777?

Porque dá permissão total a qualquer usuário e a qualquer processo do servidor. Se um site for invadido, o invasor pode alterar ou colocar arquivos em toda a pasta. O erro de permissão quase sempre se resolve acertando o dono, não abrindo tudo.

### Qual usuário o Nginx e o PHP usam no Ubuntu?

O www-data. Nginx e PHP FPM rodam com esse usuário no Ubuntu e no Debian, então a pasta do site precisa estar legível por ele, e as pastas de upload gravável por ele.

## Guias relacionados

- [Comandos Linux básicos para usar na sua VPS](https://streethosting.com.br/guias/vps/comandos-linux-basicos-vps.md)
- [Como criar um usuário com sudo na VPS Linux](https://streethosting.com.br/guias/vps/criar-usuario-sudo-vps-linux.md)
- [Como configurar chave SSH sem senha na VPS](https://streethosting.com.br/guias/vps/configurar-chave-ssh-sem-senha-vps.md)
- [Hospedar WordPress na VPS: Nginx, PHP 8.3 e MariaDB](https://streethosting.com.br/guias/vps/hospedar-wordpress-vps-nginx.md)
- [Erro 502 Bad Gateway no Nginx: causas e como corrigir](https://streethosting.com.br/guias/vps/erro-502-bad-gateway-nginx.md)

## Produtos citados

- https://streethosting.com.br/vps

## Dados estruturados

```json
[
  {
    "@context": "https://schema.org",
    "@type": [
      "Article",
      "TechArticle"
    ],
    "headline": "Permissões no Linux na prática: chmod, chown e como resolver Permission denied",
    "name": "Permissões no Linux: chmod, chown e o erro Permission denied",
    "abstract": "Todo arquivo no Linux tem um dono, um grupo e três tipos de permissão. Entender isso resolve a maioria dos erros de acesso negado em site, bot e chave SSH, sem apelar para o chmod 777.",
    "description": "Aprenda a ler o ls -l, a notação rwx e octal (644, 755, 600), usar chmod e chown, por que 777 é erro e como corrigir Permission denied com Nginx e PHP na VPS.",
    "datePublished": "2026-11-13",
    "dateModified": "2026-11-13",
    "author": {
      "@type": "Organization",
      "name": "Equipe StreetHosting"
    },
    "publisher": {
      "@type": "Organization",
      "name": "StreetHosting",
      "url": "https://streethosting.com.br"
    },
    "inLanguage": "pt-BR",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://streethosting.com.br/guias/vps/permissoes-linux-chmod-chown"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "O que significa chmod 755?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "O dono pode ler, escrever e executar (7), e o grupo e os outros podem ler e executar (5), mas não escrever. É o padrão para pastas e para programas e scripts que todo mundo precisa executar."
        }
      },
      {
        "@type": "Question",
        "name": "Qual permissão usar para a chave privada SSH?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "600 no arquivo da chave, ou seja, só o dono lê e escreve. A pasta ~/.ssh deve ficar em 700. O cliente SSH recusa chaves privadas com permissão aberta demais e mostra o aviso UNPROTECTED PRIVATE KEY FILE."
        }
      },
      {
        "@type": "Question",
        "name": "Qual a diferença entre chmod e chown?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "O chmod muda o que cada categoria pode fazer com o arquivo (ler, escrever, executar). O chown muda quem é o dono e o grupo do arquivo. Os dois costumam ser usados juntos para acertar uma pasta de site."
        }
      },
      {
        "@type": "Question",
        "name": "Por que não devo usar chmod 777?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Porque dá permissão total a qualquer usuário e a qualquer processo do servidor. Se um site for invadido, o invasor pode alterar ou colocar arquivos em toda a pasta. O erro de permissão quase sempre se resolve acertando o dono, não abrindo tudo."
        }
      },
      {
        "@type": "Question",
        "name": "Qual usuário o Nginx e o PHP usam no Ubuntu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "O www-data. Nginx e PHP FPM rodam com esse usuário no Ubuntu e no Debian, então a pasta do site precisa estar legível por ele, e as pastas de upload gravável por ele."
        }
      }
    ]
  }
]
```
