Comando Linux · 5 min read · Sep 14, 2025

Tutorial do Comando chmod do Linux para Iniciantes

O comando chmod do Linux é usado para alterar as permissões de arquivos e diretórios em um sistema operacional baseado em Linux. Ele permite que os usuários definam quem pode ler, escrever ou executar um arquivo, modificando as configurações de permissão. As permissões são normalmente atribuídas a três categorias: o proprietário do arquivo, o grupo ao qual o arquivo pertence e outros (todos os demais). O comando chmod pode ser usado com notação simbólica (por exemplo, chmod u+x nome_do_arquivo para adicionar permissão de execução para o usuário) ou notação numérica (por exemplo, chmod 755 nome_do_arquivo para definir permissões específicas de leitura, escrita e execução para cada categoria). Este comando é essencial para gerenciar o controle de acesso em um sistema, garantindo que arquivos e diretórios tenham as configurações de segurança apropriadas.

Por favor, note que todos os exemplos e instruções mencionados neste tutorial foram testados no Ubuntu 24.04, e a versão do chmod que usamos é 8.25.

Noções básicas do Chmod

Considere o seguinte exemplo do comando ls:

A primeira coluna na saída é do nosso interesse. Deixe de lado o inicial ‘-‘ (que significa o tipo de arquivo). Os campos restantes na coluna podem ser divididos em: rw-, rw- e r–. Estas são as permissões que o proprietário do arquivo, o grupo ao qual o arquivo pertence e outros têm em relação a este arquivo.

Isso significa que o proprietário tem permissões de leitura (r) e escrita (w), assim como o grupo. Outros, no entanto, têm apenas permissões de leitura para o arquivo. Por favor, note que estamos assumindo que o usuário atual é o proprietário do arquivo.

Agora, suponha que a exigência é dar a todos o direito de executar este arquivo. Veja como isso pode ser feito:

chmod +x script.sh

Aqui estão as permissões agora:

O ‘x’ extra nas permissões para proprietário, grupo e outros significa que agora todos têm acesso de execução para este arquivo.

No entanto, mais provavelmente, você pode não querer que todos tenham acesso de execução para um arquivo. E se a exigência for conceder apenas ao proprietário/usuário atual acesso de execução ao script.sh.

Bem, para isso, o primeiro passo agora seria retirar o acesso de execução de todos, algo que você pode fazer usando o seguinte comando:

chmod -x script.sh

E então conceder explicitamente ao proprietário:

chmod u+x script.sh

Como você deve ter adivinhado, ‘u+x’ diz para conceder (+) ao proprietário/usuário atual (u) acesso de execução (x) ao arquivo. Da mesma forma, para o grupo, você pode usar ‘g’ e para outros você pode usar ‘o’.

Por favor, note que sempre que você quiser conceder/revogar um conjunto comum de permissões a/de todos, você pode usar ‘a’ em vez de ‘ugo’. O que quero dizer é, isso:

chmod ugo-x script.sh

pode ser substituído por isso:

chmod a-x script.sh

Além disso, lembre-se de que se nenhum desses (‘u’, ‘g’, ‘o’ e ‘a’) for explicitamente especificado, então o padrão também é assumido como ‘a’.

Seguindo em frente, se você quiser, também pode simplesmente copiar as permissões concedidas a, digamos, o proprietário/usuário atual e tê-las para o grupo ou outros. Para isso, use o sinal ‘=’.

Por exemplo, para copiar as permissões do proprietário/usuário para o grupo, use o seguinte comando:

chmod g=u script.sh

Outro cenário poderia ser copiar permissões para um arquivo específico e tê-las para seu arquivo. Para isso, use a opção de linha de comando –reference. Aqui está o modelo geral para usar esta opção de linha de comando:

chmod --reference=[arquivo-fonte] [arquivo-destino]

No comando acima, arquivo-fonte é o arquivo cujos bits de permissão você deseja copiar, e arquivo-destino é o arquivo cujos bits de permissão você deseja alterar.

Seguindo em frente, também há uma notação numérica (também conhecida como representação octal) usando a qual você pode dizer ao chmod para alterar permissões. Existem três números com os quais você pode trabalhar neste modo: 4, 2 e 1. Enquanto 4 é para leitura, os outros dois são para escrita e execução, respectivamente.

Por exemplo, considere o seguinte exemplo:

Agora, suponha que a tarefa é adicionar permissão de execução para o proprietário/usuário, remover permissão de escrita, mas adicionar permissão de execução ao grupo, e remover todas as permissões de outros. Isso pode ser feito da seguinte forma:

chmod 750 script.sh

No comando acima, ‘7’ é para o usuário, que é o resultado de 4+2+1, pois a exigência para o usuário é ter todas as permissões. Da mesma forma, ‘5’ é para o grupo, que é o resultado de 4+0+1, pois a exigência é dar apenas permissões de leitura e execução ao grupo. Finalmente, ‘0’ é para outros, que é o resultado de 0+0+0, pois a exigência é revogar todas as permissões de outros.

Para aqueles que lidam com links simbólicos, aqui está algo que vale a pena saber:

chmod nunca altera as permissões de links simbólicos; a chamada de sistema chmod não pode alterar suas permissões. Isso não é um problema, pois as permissões de links simbólicos nunca são usadas. No entanto, para cada link simbólico listado na linha de comando, chmod altera as permissões do arquivo apontado. Em contraste, chmod ignora links simbólicos encontrados durante travessias recursivas de diretórios.

Referência de Linha de Comando

O comando chmod no Linux possui várias opções de linha de comando que modificam seu comportamento. Aqui está uma lista das opções mais comumente usadas:

  • -R, –recursive: Esta opção aplica as alterações de permissão recursivamente a todos os arquivos e diretórios dentro do diretório especificado. É útil quando você deseja alterar as permissões de um diretório e todo o seu conteúdo de uma só vez.

Exemplo: chmod -R 755 /caminho/para/diretorio

  • -c, –changes: Esta opção relata apenas quando uma alteração é feita. Se as permissões forem modificadas com sucesso, ela exibe uma mensagem indicando a alteração.

Exemplo: chmod -c 644 nome_do_arquivo

  • -v, –verbose: Esta opção fornece informações detalhadas sobre cada arquivo processado, se as permissões foram alteradas ou não.

Exemplo: chmod -v 755 nome_do_arquivo

  • -reference=RFILE: Em vez de especificar permissões diretamente, esta opção permite que você defina as permissões de um arquivo ou diretório para corresponder a outro arquivo ou diretório (RFILE).

Exemplo: chmod –reference=arquivo1 arquivo2

  • -f, –silent, –quiet: Esta opção suprime a maioria das mensagens de erro, fazendo com que o comando seja executado sem exibir saída para erros.

Exemplo: chmod -f 755 nome_do_arquivo

Essas opções permitem que o chmod seja usado de forma flexível em vários cenários, desde ajustes em arquivos únicos até alterações de permissões em diretórios em larga escala.

Conclusão

Aqui, neste tutorial, discutimos a maioria das noções básicas relacionadas a esta ferramenta, e os exemplos que discutimos têm como objetivo tornar essas noções básicas claras.

Por favor, note que nossa discussão se concentrou principalmente em arquivos. Você deve manter alguns detalhes em mente ao usar chmod com diretórios. Para todas essas informações (bem como mais detalhes sobre chmod), dirija-se à página do manual da ferramenta.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.