Permissões de Arquivos no Linux Explicadas: chmod, -rw-r–r– e Direitos de Acesso

目次

1. Introdução

O que são “Permissões de Acesso” no Linux?

Em sistemas Linux e semelhantes ao Unix, gerenciar adequadamente as “permissões de acesso” (permissões) de arquivos e diretórios é crucial. Isso é um elemento essencial tanto do ponto de vista de segurança quanto para o funcionamento estável do sistema. Muitas pessoas, ao exibir uma lista de arquivos no terminal, provavelmente viram símbolos desconhecidos como -rw-r--r-- e se perguntaram: “O que isso significa?”

A Relação Entre chmod e -rw-r–r–

Esses símbolos são uma representação simbólica das permissões de acesso de um arquivo. O comando chmod é usado para definir e alterar essas permissões de acesso. Em outras palavras, quando você usa chmod para conceder permissões de acesso específicas a um arquivo, o resultado é a exibição de símbolos como -rw-r--r--.

Propósito e Público-Alvo Desta Artigo

Neste artigo, explicaremos de forma fácil de entender, mesmo para iniciantes, o que -rw-r--r-- significa especificamente e como usar chmod para definir e alterar isso. Além disso, abordaremos conteúdo prático, como considerações de segurança e exemplos de uso reais. Este artigo visa fornecer um entendimento sólido de conhecimentos práticos aplicáveis em cenários do mundo real, direcionado a todos, desde aqueles que são novos no Linux até usuários intermediários que estão um pouco familiarizados com operações no terminal.

2. O que é chmod? [Basic Understanding]

Função do Comando chmod

chmod (pronunciado “chom-mod” ou “change mode”) é uma abreviação de “change mode” e é um comando usado em sistemas operacionais Linux e semelhantes ao Unix para alterar as permissões de acesso (permissões) de arquivos e diretórios. Ao usar este comando, você pode controlar de forma flexível “quem pode realizar quais operações (leitura, escrita, execução)”. Definir adequadamente as permissões de arquivos e diretórios é crucial não apenas para garantir a segurança, mas também para prevenir problemas com compartilhamento e execução de arquivos.

Sintaxe Básica do chmod

chmod [options] [permissions] filename

Por exemplo, é usado da seguinte forma:

chmod 644 sample.txt

Este comando altera as permissões de sample.txt da seguinte maneira:

-rw-r--r--  1 user group 1234 Apr 13 20:00 sample.txt
  • Proprietário (usuário): Leitura e escrita permitidas (rw-)
  • Grupo: Apenas leitura (r–)
  • Outros: Apenas leitura (r–)

Dois Tipos de Especificação: Numérica e Simbólica

Existem duas maneiras de especificar permissões de acesso com chmod:

  • Especificação Numérica (Modo Numérico)
  • Exemplo: chmod 755 script.sh
  • Este método especifica as permissões numericamente para cada tipo de usuário.
  • Especificação Simbólica (Modo Simbólico)
  • Exemplo: chmod u=rw,g=r,o=r file.txt
  • Este método especifica as permissões usando símbolos r (leitura), w (escrita) e x (execução) para u (usuário), g (grupo) e o (outros).

Ambos os métodos podem definir as mesmas permissões no final, mas a especificação numérica é mais rápida para alterações em massa, enquanto a especificação simbólica permite modificações mais flexíveis. É melhor usá-las de acordo com a situação.

Note a Diferença Entre chmod e chown

O comando chown é frequentemente confundido com chmod.

  • chmod : Altera as permissões de acesso (permissões)
  • chown : Altera o “proprietário” e o “grupo” de arquivos e diretórios

Como seus propósitos são diferentes, é importante entender claramente o papel de cada comando.

3. Entendendo o Significado de -rw-r–r– ao Dividi-lo

Estrutura dos Símbolos de Permissão

Quando você executa o comando ls -l no Linux, as informações do arquivo são exibidas no formato a seguir:

-rw-r--r--  1 user group  1234 Apr 13  2025 sample.txt

Dentre esses, o -rw-r--r-- mais à esquerda representa as permissões (direitos de acesso) do arquivo. Entender isso permite que você compreenda corretamente quem pode realizar quais operações.

Explicação Detalhada de Cada Parte

① O Primeiro Caractere: Tipo de Arquivo

SymbolMeaning
-Regular file
dDirectory
lSymbolic link
bBlock device
cCharacter device

No caso de -rw-r--r--, o - inicial indica que se trata de um “arquivo regular.” ② Caracteres 2 a 10: Permissões de Acesso (3 caracteres × 3 conjuntos)

  • Proprietário (usuário)rw- → Leitura (r) e escrita (w) são permitidas, execução (x) não é.
  • Grupor-- → Apenas leitura. Escrita e execução não são permitidas.
  • Outrosr-- → Apenas leitura.

Portanto, o estado é que apenas o proprietário pode editar, e outros usuários só podem visualizar.

Correspondência com a Notação Numérica: Significado de 644

No Linux, as mesmas permissões também podem ser representadas por notação numérica (octal). A notação numérica correspondente a -rw-r--r-- é 644.

User TypeSymbolic NotationNumericMeaning
Ownerrw-6Read + Write
Groupr--4Read-only
Othersr--4Read-only

Este número é derivado do seguinte cálculo:

  • Leitura (r) = 4
  • Escrita (w) = 2
  • Execução (x) = 1

Portanto, rw- = 4 + 2 = 6, r-- = 4, r-- = 4 → totalizando 644.

Por que Essa Permissão é Usada?

-rw-r--r-- (644) é uma permissão frequentemente usada para arquivos públicos e arquivos estáticos (HTML, CSS, etc.) em servidores web. As razões são as seguintes:

  • Apenas o proprietário pode editar → Previne modificações não intencionais
  • Leitura é permitida para outros usuários → Suporta compartilhamento e publicação de arquivos

Quando usada adequadamente, ela permite o gerenciamento de arquivos que equilibra segurança e conveniência.

4. Como Definir -rw-r–r– com chmod [Practical Edition]

Alterando Permissões Usando o Comando chmod

As permissões de acesso de arquivos e diretórios podem ser alteradas livremente usando o comando chmod. Por exemplo, se você quiser definir o estado para -rw-r--r--, basta definir a permissão para “644”.

Método de Definição com Especificação Numérica

Use o formato chmod 644 nome_do_arquivo.

chmod 644 document.txt

Este comando altera as permissões de document.txt da seguinte forma:

-rw-r--r--  1 user group 1234 Apr 13 20:00 document.txt
  • Proprietário (usuário): Leitura e escrita permitidas (rw-)
  • Grupo: Apenas leitura (r–)
  • Outros: Apenas leitura (r–)

Método de Definição com Especificação Simbólica

Se você quiser manipular permissões de forma mais flexível, a especificação simbólica é eficaz.

chmod u=rw,g=r,o=r document.txt

Este comando é interpretado da seguinte forma:

  • u=rw → Define permissões de leitura e escrita para o proprietário
  • g=r → Permite apenas permissão de leitura para o grupo
  • o=r → Permite apenas permissão de leitura para outros usuários

O resultado é exatamente o mesmo que a especificação numérica 644.

Pontos a Notar Ao Aplicar a Diretórios

Diferente de arquivos, diretórios requerem “permissão de execução (x)” para acessar seu conteúdo. Por exemplo, fazer o seguinte pode restringir o acesso:

chmod 644 my_folder

Com esta configuração, apenas permissão de leitura é concedida, mas a operação de “abrir” o conteúdo do diretório (que requer permissão de execução) torna-se impossível. Exemplo de Configuração Correta:

chmod 755 my_folder
  • Proprietário: Leitura, escrita, execução
  • Grupo e Outros: Leitura, execução

Fazendo isso, outros usuários poderão listar os arquivos dentro do diretório.

Alterando Permissões Recursivamente: A Opção -R

Se você quiser alterar múltiplos arquivos e subdiretórios de uma vez, use a opção -R (recursiva).

chmod -R 644 my_folder

Esta operação aplica permissões 644 a todos os arquivos sob my_folder. No entanto, há pontos a notar com este método.

5. Como Verificar Permissões com o Comando ls -l

Como Verificar as Permissões de Arquivos?

Para verificar as permissões de acesso (permissões) de arquivos e diretórios, use o comando padrão do Linux ls -l. Isso significa “formato de listagem longa” e exibe informações detalhadas como permissões, proprietário, tamanho e data de última modificação.

Uso Básico

ls -l

Executando este comando, será exibida uma saída semelhante à seguinte:

-rw-r--r--  1 naoya devs  2048 Apr 13 20:00 index.html

Cada item tem o seguinte significado:

ItemMeaning
-rw-r--r--Permissions (access rights)
1Number of hard links (usually 1)
naoyaOwner (user)
devsGroup
2048File size (bytes)
Apr 13 20:00Last modification date and time
index.htmlFilename

Como Ler a Coluna de Permissões

Vamos focar na parte -rw-r--r--, que é o tópico principal deste capítulo. Isso pode ser decomposto da seguinte forma:

  • O Primeiro Caractere: Tipo de Arquivo
  • - : Arquivo regular
  • d : Diretório
  • l : Link simbólico
  • Os 9 Caracteres Restantes: Permissões de Acesso (3 caracteres × 3 conjuntos)
  • Proprietário (usuário): rw- → Leitura + Escrita
  • Grupo: r-- → Somente leitura
  • Outros: r-- → Somente leitura

Em outras palavras, a partir desta exibição, você pode ler que “apenas o proprietário pode editar este arquivo, e outros usuários só podem lê-lo.”

Verificando Apenas Arquivos Específicos

Se você quiser verificar as permissões de apenas um arquivo específico, especifique o nome do arquivo.

ls -l index.html

Isso permite que você verifique apenas o arquivo alvo. É útil para verificar em diretórios com muitos arquivos.

Verificar Diretórios Também é Possível

Você também pode verificar diretórios com ls -l. No entanto, se você quiser listar o conteúdo do diretório, use a opção -d junto.

ls -ld my_folder

Isso exibirá apenas as informações de permissão para my_folder em si (não exibirá a lista de arquivos dentro).

Gerenciando com Segurança Enquanto Verifica Permissões

Após definir permissões com chmod, é recomendado sempre verificar o resultado com ls -l. Se configurações incorretas forem deixadas no lugar, elas podem causar incidentes de segurança ou comportamento inesperado. Além disso, se você quiser verificar múltiplos arquivos de uma vez, você pode combiná-lo com um pipe assim:

ls -l | grep '.sh'

Isso filtrará e exibirá apenas arquivos com a extensão .sh (script de shell).

6. Como Verificar e Alterar Permissões com Ferramentas GUI (Para Iniciantes)

Opções para Aqueles Incomodados com Comandos

A operação no Linux é principalmente operação de linha de comando usando o terminal, mas muitos iniciantes acham a “tela apenas de texto difícil” ou têm “medo de cometer erros descuidados.” Para tais pessoas, você também pode verificar e alterar permissões de arquivos usando um método GUI (Interface Gráfica do Usuário).

Operação no Gerenciador de Arquivos do Ubuntu (Nautilus)

Distribuições Linux como o Ubuntu vêm com um gerenciador de arquivos chamado “Nautilus” como padrão. Esta é uma ferramenta equivalente ao “Explorador de Arquivos” no Windows. Como Verificar:

  1. Clique com o botão direito no arquivo ou diretório alvo
  2. Selecione “Propriedades”
  3. Abra a aba “Permissões” (pode ser exibida como “Direitos de Acesso” dependendo da versão)

O que você pode fazer aqui:

  • Verificar e alterar o proprietário e o grupo (privilégios de administrador requeridos)
  • Alternar permissões de leitura, escrita e execução
  • Alterações nas permissões de acesso são aplicadas imediatamente

No GUI, em vez de símbolos como rw- e r--, expressões fáceis de entender como “Somente leitura” e “Leitura e Escrita” são exibidas, então até iniciantes podem operar com tranquilidade.

WinSCP (Cliente SFTP para Usuários do Windows)

Quando conectando a um servidor Linux remoto do Windows, você pode definir permissões no GUI usando um cliente SFTP chamado WinSCP. Procedimento de Operação:

  1. Faça login no servidor com WinSCP
  2. Clique com o botão direito no arquivo desejado → “Propriedades”
  3. Altere o valor numérico (ex., 644) ou caixas de seleção em “Direitos de Acesso (Permissões)”
  4. Clique “OK” para aplicar

Méritos:

  • Você pode verificar com representações numéricas e simbólicas
  • Alterações de permissão recursivas também são possíveis via GUI (para diretórios)

Nota:

  • Arquivos que requerem privilégios de root podem não ser alteráveis sem privilégios sudo

<https://winscp.net/eng/index.php>

FileZilla (Cliente SFTP Multiplataforma)

Você também pode alterar permissões da mesma forma com o cliente SFTP “FileZilla“, que pode ser usado no Mac e Linux também. Procedimento:

  1. Após conectar ao servidor, clique com o botão direito no arquivo relevante
  2. Selecione “Permissões do arquivo…”
  3. Defina com caixas de seleção ou valores numéricos e clique “OK” para aplicar

Vantagens e Desvantagens da Operação GUI

Vantagens:

  • Iniciantes têm menos probabilidade de cometer erros
  • Alterações podem ser confirmadas visualmente imediatamente
  • Fácil de lidar mesmo para aqueles não familiarizados com comandos

Desvantagens:

  • Dependendo das configurações do servidor e do ambiente, as alterações podem não ser possíveis com ferramentas GUI
  • O status exibido e a reflexão real podem diferir, por isso é recomendado usar ls -l para confirmação em conjunto

<https://filezilla-project.org/]

7. Notas e Solução de Problemas para Configurações de chmod

Não Funciona Mesmo Que Você Pense Que Configurou Corretamente? Qual Poderia Ser o Motivo?

Após alterar as permissões de acesso com o comando chmod, pode não funcionar como esperado. Na maioria dos casos, isso se deve a erros na configuração de permissões ou mal-entendidos sobre permissões. Aqui, introduziremos exemplos comuns de solução de problemas na prática e suas soluções.

Causas e Soluções para o Erro “Permission denied”

Sintoma:

bash: ./script.sh: Permission denied

Causa:

  • O arquivo que você está tentando executar não tem a “permissão de execução (x)” concedida

Solução:

chmod +x script.sh

Ou, se usando especificação numérica:

chmod 755 script.sh

É importante notar que “você pode ler e escrever, mas não pode executar.”

Não Pode Acessar Diretório Sem Permissão de Execução

Se você definir chmod 644 para um diretório, pode não ser capaz de ler seu conteúdo. Motivo:

  • A “permissão de execução (x)” para um diretório é essencial para poder “entrar” e “ver o conteúdo.”

Exemplo:

chmod 644 my_folder
ls my_folder

→ No caso acima, você pode não ser capaz de exibir o conteúdo e um erro pode ocorrer. Solução:

chmod 755 my_folder

Armadilhas das Mudanças Recursivas (-R)

Embora chmod -R seja conveniente, ele aplica as mesmas permissões a arquivos e diretórios, o que pode levar a problemas inesperados. Exemplo Comum de Falha:

chmod -R 644 /var/www/html

→ O diretório perde a permissão de execução, e você não pode acessar seu conteúdo. Uso Correto:

# Directories with execute permission
find /var/www/html -type d -exec chmod 755 {} ;

# Files with 644
find /var/www/html -type f -exec chmod 644 {} ;

Erros de Combinação com Proprietário e Grupo

Além do chmod, você também precisa prestar atenção ao “proprietário (usuário)” e “grupo” do arquivo. Por exemplo, se o usuário apache precisar ler um arquivo, mas o proprietário for um usuário geral e outros usuários não tiverem permissão de leitura, a exibição web falhará. Solução:

  • Alterar proprietário: sudo chown www-data:www-data index.html
  • Conceder permissão de grupo: chmod 640 index.html (se o grupo for apropriado)

777 é Perigoso! O Risco de Permissões Excessivamente Permissivas

Algumas pessoas podem pensar, “Se não funcionar, basta definir para 777”, mas isso é uma prática muito perigosa. Motivo:

  • Qualquer um pode ler, escrever e executar
  • Aumenta o risco de adulteração por terceiros e uso malicioso de scripts

Regras Básicas Recomendadas:

  • Arquivos : 644 ou 600
  • Diretórios : 755 ou 700
  • Scripts e Binários : 755 (conforme necessário)

8. Exemplos de Uso e Cenários Comuns

Como a Configuração de Permissões chmod é Usada em Situações do Mundo Real?

O comando chmod e a permissão de acesso -rw-r--r-- introduzida até agora são frequentemente usados em operações reais de servidor e ambientes de desenvolvimento. Aqui, através de três cenários típicos, vamos ver como as configurações de permissões são utilizadas.

1. Gerenciando Arquivos HTML em um Servidor Web

Cenário: Quando você publica arquivos HTML em um servidor web como Apache ou Nginx, as permissões definidas para esses arquivos são geralmente -rw-r--r-- (644).

chmod 644 index.html

Por que 644?

  • O proprietário (administrador web) precisa fazer alterações → Permissão de escrita (w)
  • O servidor web (www-data, etc.) só precisa ler → Permissão de leitura (r)
  • Não há necessidade de permitir que outros usuários escrevam

Com essa configuração, você pode publicar conteúdo web de forma segura com as permissões mínimas necessárias.

2. Concedendo Permissão de Execução a Arquivos de Script

Cenário:
Você criou seu próprio script shell backup.sh, mas ao tentar executá‑lo recebe “Permission denied”.

chmod 755 backup.sh

Significado desta configuração:

  • O proprietário pode ler, gravar e executar (rwx)
  • Grupo e outros podem ler e executar (rx)

Isso permite que outros usuários executem o script enquanto apenas o proprietário pode editá‑lo.

3. Restrição de leitura a arquivos confidenciais

Cenário:
Você está gerenciando secrets.txt, que contém chaves de API e senhas. Não quer que ninguém além de você o veja.

chmod 600 secrets.txt

Significado desta configuração:

  • Apenas o proprietário pode ler e gravar (rw-)
  • Grupo e outros não têm acesso (—)

Esta é uma configuração muito importante do ponto de vista de segurança, e a prática recomendada é sempre gerenciar informações privadas com 600 ou 400 (somente leitura).

4. Compartilhamento seguro de diretórios

Cenário:
Você está criando um diretório compartilhado shared_folder que vários desenvolvedores acessarão.

chmod 770 shared_folder

Significado desta configuração:

  • Proprietário e Grupo: Todas as permissões (rwx)
  • Outros: Sem acesso (—)

Ao definir o grupo para a equipe de desenvolvimento, você pode habilitar colaboração segura e eficiente. É possível controlar flexivelmente os usuários-alvo alterando o grupo com o comando chgrp.

5. Problemas causados por configurações incorretas e exemplos de prevenção

Cenário:
Você executou acidentalmente chmod -R 777 . e todos os arquivos ficaram graváveis.
Medidas recomendadas de prevenção:

  • Sempre usar find especificando o tipo de arquivo ao mudar permissões
  • Verificar as permissões com ls -l antes de fazer alterações
  • Testar primeiro em um ambiente de teste ou sandbox

9. Perguntas Frequentes

Q1. Qual é a diferença entre chmod 644 e -rw-r–r–?

R. Eles são formas diferentes de representar exatamente a mesma coisa.

  • chmod 644 : Um comando para definir permissões numericamente.* -rw-r--r-- : A notação simbólica que você vê após definir permissões, por exemplo, com ls -l.

Ambos indicam um estado em que o proprietário tem permissão de leitura e gravação, e todos os demais têm permissão apenas de leitura.

Q2. O que acontece se um arquivo não tem permissão de execução?

R. Você receberá um erro ao tentar executar scripts ou binários diretamente.
Por exemplo, para executar arquivos .sh ou .py, a permissão de execução (x) é necessária. Sem ela, você verá um erro como este:

bash: ./script.sh: Permission denied

Solução:

chmod +x script.sh

Q3. É aceitável definir um diretório como 644?

R. Geralmente, não é adequado.
Diretórios requerem “permissão de execução (x)”. Sem permissão de execução, você não pode acessar os arquivos dentro do diretório.
Configuração correta:**

chmod 755 directory_name

Q4. Quais são as configurações de permissão mais comuns?

R. Aqui estão algumas configurações de permissão comuns e seus usos:

  • 644 (-rw-r–r–) : Para a maioria dos arquivos estáticos como HTML, CSS, imagens. Permite que o proprietário leia e grave, e todos os demais apenas leiam.
  • 755 (-rwxr-xr-x) : Para diretórios e scripts executáveis. Permite que o proprietário leia, grave e execute; e todos os demais leiam e executem (mas não gravem).
  • 600 (-rw——-) : Para arquivos sensíveis que somente o proprietário deve poder ler e gravar.
  • 700 (-rwx——) : Para diretórios privados que somente o proprietário deve poder acessar.

Q5. Como posso mudar o proprietário ou o grupo de um arquivo?

R. Você pode usar o comando chown para mudar o proprietário e o comando chgrp para mudar o grupo.
Exemplo para mudar o proprietário:

sudo chown new_owner filename

Exemplo para mudar o grupo:

sudo chgrp new_group filename

Você pode precisar de sudo para esses comandos, pois geralmente exigem privilégios administrativos.

Q6. As permissões de arquivos são as mesmas em todos os sistemas operacionais?

A. Não, as permissões de arquivos podem diferir significativamente entre sistemas operacionais.
Linux e sistemas semelhantes a Unix possuem um sistema de permissões detalhado baseado em usuário, grupo e outros, com permissões de leitura, gravação e execução. Windows, por outro lado, utiliza um sistema diferente baseado em Listas de Controle de Acesso (ACLs), que são mais granulares e podem definir permissões para usuários e grupos específicos de forma mais detalhada.

10. Conclusão

Entender e configurar corretamente as permissões de arquivos no Linux é uma habilidade fundamental para quem gerencia um servidor ou trabalha com o sistema. Embora a notação -rw-r--r-- e o comando chmod possam parecer intimidados à primeira vista, compreender os conceitos básicos aumentará significativamente sua capacidade de manter um sistema seguro e bem organizado.
Ao entender os diferentes tipos de permissões, como interpretar as notações simbólicas e numéricas e como usar o comando chmod de forma eficaz, você pode garantir que seus arquivos e diretórios estejam protegidos e acessíveis apenas aos usuários pretendidos.
Lembre‑se de sempre verificar novamente suas configurações de permissão com o comando ls -l e ter cautela ao usar opções recursivas. Com prática, o gerenciamento de permissões de arquivos se tornará uma parte natural e essencial do seu fluxo de trabalho.

年収訴求