Tanto usuários iniciantes quanto profissionais de TI precisam saber usar o comando chmod para gerenciar permissões do linux melhorando a segurança contra acessos não autorizados a partes críticas do sistema operacional.
Neste artigo, você aprenderá a alterar permissões de arquivos e pastas com exemplos práticos utilizando o comando chmod.
Mas antes de colocar a mão na massa, é um pré-requisito saber como funcionam as permissões no linux, se ainda não tem conhecimento sobre o assunto recomendo a leitura desse artigo.
Como executar o comando chmod ?
O comando chmod (abreviação de change mode) é o programa padrão do linux utilizado para alterar as permissões de acesso de arquivos e diretórios.
A sintaxe para executar o comando chmod no linux é bastante simples:
chmod [opções] [permissões] localização_do_arquivo_ou_diretórioExplicação de cada campo:
- chmod: O comando em si.
- Opções: São as opções usadas pelo chmod, é opcional.
- Permissões: As permissões de acesso que você deseja configurar.
- Arquivo ou Diretório: O alvo que receberá a alteração das permissões.
IMPORTANTE
Somente o proprietário de um arquivo ou diretório ou o usuário root pode alterar as permissões.
Ao executar o comando chmod pode ser utilizado o modo octal ou modo simbólico para configurar as permissões. A abaixo tem uma tabela com a representação das permissões no linux, incluindo a combinação delas.
| Modo Simbólico | Representação Binária | Modo Octal | Permissões |
|---|---|---|---|
--- | 000 | 0 | Não tem permissões |
--x | 001 | 1 | Execução |
-w- | 010 | 2 | Escrita |
-wx | 011 | 3 | Escrita e Execução |
r-- | 100 | 4 | Leitura |
r-x | 101 | 5 | Leitura e Execução |
rw- | 110 | 6 | Leitura e Escrita |
| rwx | 111 | 7 | Leitura, Escrita e Execução |
O caractere “–” (hífen) indica que a permissão na quela posição não foi concedida. A seguir você aprenderá como definir as permissões no modo octal e simbólico.
Alterando permissões usando modo simbólico
No Linux, existem três classes de usuários e cada uma recebe um conjunto de permissões. Na tabela a seguir é explicado as classes e como são representadas ao executar o comando chmod.
| Representação | Classes | Explicação |
|---|---|---|
u | owner | Proprietário (owner) do arquivo ou diretório. |
| g | group | Grupo (group) proprietário do arquivo ou diretório. |
| o | other | Todos os outros usuários (other) que não é o proprietário (owner) e nem membros do grupo (group) proprietário. |
| a | all | Todas as classes de uma vez (owner, group, other). |
O programa chmod usa operadores para configurar as permissões de cada classe de usuário no modo simbólico. A tabela abaixo explica a função de cada operador.
| Operador | Ação | Explicação |
|---|---|---|
+ | Adicionar | Adiciona as permissões especificadas. |
| – | Remover | Remove as permissões especificadas. |
| = | Definir | Define as permissões exatamente como especificado, removendo quaisquer outras permissões não listadas. |
Depois de explicar as classes de usuários e operadores que são usados, a seguir tem vários exemplos práticos.
1º exemplo: Se precisar atribuir uma permissão para todas as classes (owner, group, other), por exemplo, a permissão de leitura, utilize a letra “a” que representa todas as classes.
chmod a+r script.shExplicação: O caractere + (soma) adiciona a permissão de leitura (r) para todos (dono, grupo e outros).
2º exemplo: O comando a seguir remove (–) a permissão de escrita (w) do grupo proprietário (g) do arquivo reports.docx. Útil quando você quer que os membros do grupo apenas leiam o arquivo, sem risco de alterações.
chmod g-w reports.docx3º exemplo: Garante que ninguém além do dono e do grupo consiga sequer ver o conteúdo do arquivo, o chmod após executado remove (–) todas as permissões (leitura, escrita e execução) para “outros” (o).
chmod o-rwx segredo.txt4º exemplo: A linha de comando a seguir concede exatamente (=) todas as permissões (rwx) ao dono do script overgreen.sh, atribui (+) a permissão de leitura (r) para o grupo e remove (–) a permissão de execução (x) para todos os outros usuários.
chmod -v u=rwx,g+r,o-x overgreen.sh
Também é usada a opção -v (verbose) para exibir detalhes da execução do comando chmod.
5º exemplo: Neste último exemplo, é definido ao dono (u) e o grupo (g) exatamente (=) as permissões de leitura e escrita para o arquivo dados.csv, removendo qualquer outra permissão que eles tivessem antes.
chmod ug=rw dados.csvAlterando permissões usando o modo octal
Ao executar o comando chmod para configurar permissões no modo octal, utilizamos números de 0 a 7 para representar o conjunto completo de permissões.
Antes dos exemplos, é fundamental entender para qual classe de usuário as permissões são configuradas, se não houver permissões especiais:
- Primeiro número: Corresponde as permissões do dono (owner).
- Segundo número: Corresponde as permissões do grupo (group).
- Terceiro número: Corresponde as permissões dos outros (other).
Exemplos práticos de como resolver problemas comuns de acesso:
1º Problema: Você criou um script chamado setup.sh, mas ao tentar rodar o script a permissão é negada:
./setup.sh # script sem permissão de execução
A solução é atribuir a permissão de execução para todos, assim todos podem executar o script.
chmod 755 setup.sh
2º Problema: Você tem um arquivo chamado senhas.txt e o conteúdo está visível para qualquer usuário do sistema. E somente o proprietário do arquivo (seu usuário) deve ter permissão de leitura e todos os outros usuários não podem acessar o conteúdo do arquivo.
Para essa situação a solução é remover todas as permissões de leitura para o “grupo” (group) e para “outros” (other), mantendo acesso de leitura e gravação apenas ao usuário proprietário com o comando:
chmod 600 senhas.txt
3º Problema: O conteúdo da pasta /projeto e dos seus subdiretórios pode ser listado por membros do grupo proprietário chamado devs, mas o grupo precisa ter permissão para gravação no diretório e subdiretórios.
Além disso nenhuma outra conta de usuário não pode ter acesso, com exceção dos membros do grupo devs e do dono.
A solução é conceder ao grupo (devs) a permissão de write (w) e execute (e), porque a pasta e seus subdiretórios já tem permissão read (r) para o grupo. Também será usada a opção -R (recursive) para aplicar as alterações em todos os subdiretórios de /projeto.
chmod -R 770 /projetoAssim o grupo devs terá controle total, podendo acessar o diretório e em seguida gravar novos arquivos dentro.
Boas práticas ao alterar permissões
Ao trabalhar no seu computador ou em um servidor em produção somente configure apenas as permissões estritamente necessárias para cada usuário ou processo. Isso reduz a brechas na segurança do sistema e evita modificações ou execuções indevidas.
Somente use chmod 777 quando é realmente necessário, porque o 777 concede controle total (leitura, escrita e execução) para todos. Dependendo onde é aplicada pode expor o sistema a sérios riscos.
Ao trabalhar em empresas com equipes, é possível que permissões sejam alteradas, por isso é recomendado que revise as permissões regularmente para garantir que continuam adequadas ao contexto de segurança.
Conclusão
Você aprendeu como utilizar o comando chmod na prática para alterar permissões no linux, usando o modo simbólico e octal.
Para aprender mais pratique em um ambiente controlado (máquina virtual) o comando chmod para alterar as permissões em pastas e arquivos, isso garante que ganhe confiança antes de alterar arquivos críticos.
Também é recomendado a leitura do manual do comando chmod para aprender mais.
Ficou com alguma dúvida ? Deixe seu comentário abaixo, pois seu feedback ajuda muito.
Perguntas Frequentes (FAQ) sobre o comando chmod
Qual a diferença entre chmod e chown ?
O chmod altera as permissões de acesso, enquanto o chown altera o proprietário (owner) e também pode ser usado para alterar o grupo (group) do arquivo ou diretório.
Como aplicar permissões a todos os arquivos de uma pasta de uma vez ?
Utilize a opção -R (recursiva) do comando chmod. Por exemplo: chmod -R 755 /projeto aplicará as permissões à pasta (/projeto) e a todo o seu conteúdo interno.
O que é o erro “chmod: operation not permitted” ?
Esse erro ocorre quando você tenta alterar permissões de um arquivo que não lhe pertence ou se o sistema de arquivos for “apenas leitura”.
Como remover todas as permissões de um grupo ?
Utilizando o modo simbólico, você pode executar chmod g-rwx sobre o alvo (arquivo ou diretório), removendo as permissões de leitura (r), escrita (w) e execução (x) dos membros do grupo.
Qual a permissão ideal para arquivos de um site (web server) ?
Geralmente, utiliza-se o comando chmod com a configuração 644 para arquivos (leitura para todos, escrita apenas para o dono) e 755 para pastas.

