Comando chmod: Aprenda a alterar permissões facilmente

Compartilhe:

notebook com códigos do comando chmod no linux alterando permissões de arquivos e diretórios

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:

Explicaçã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.

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ólicoRepresentação BináriaModo OctalPermissões
---0000Não tem permissões
--x0011Execução
-w-0102Escrita
-wx0113Escrita e Execução
r--1004Leitura
r-x1015Leitura e Execução
rw-1106Leitura e Escrita
rwx1117Leitura, 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çãoClassesExplicação
uownerProprietário (owner) do arquivo ou diretório.
ggroupGrupo (group) proprietário do arquivo ou diretório.
ootherTodos os outros usuários (other) que não é o proprietário (owner) e nem membros do grupo (group) proprietário.
aallTodas 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.

OperadorAçãoExplicação
+AdicionarAdiciona as permissões especificadas.
RemoverRemove as permissões especificadas.
=DefinirDefine 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.

Explicaçã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.

3º 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).

4º 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.

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.

Alterando 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:

A solução é atribuir a permissão de execução para todos, assim todos podem executar o script.


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:


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.

Assim 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.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.