Pular para o conteúdo

Entendendo o comando chmod

Dica publicada em Linux / Comandos
Angelito Monteiro Goulart angelito
Hits: 65.251 Categoria: Linux Subcategoria: Comandos
  • Indicar
  • Impressora
  • Denunciar

Entendendo o comando chmod

O comando chmod é um utilitário via linha de comando usado nos sistemas Linux/Unix/Unix-like para mudar as permissões de um arquivo ou diretório.

Os parâmetros passados para o programa podem ser números ou letras. Nesta dica abordarei a passagem de parâmetros através de números octais.

Exemplo:

chmod 750 arquivo.txt

No exemplo acima aplicamos o comando chmod no arquivo arquivo.txt passando 750 como parâmetro.

Explicação:

O primeiro dígito do parâmetro refere-se às permissões para o dono do arquivo. O segundo, às permissões para os usuários do grupo do dono do arquivo e o terceiro, às permissões que os outros usuários do sistema têm para com o arquivo.

Para entendermos melhor, veja a tabela abaixo:

Quando utilizamos o número 0 significa que negamos determinada permissão. Quando utilizamos 1, significa que a aceitamos.

r -> read

w -> write

x - > execute

r w x

0 0 0 -> 0 -> nenhuma permissão

0 0 1 -> 1 -> apenas execução

0 1 0 -> 2 -> apenas escrita

0 1 1 -> 3 -> escrita e execução

1 0 0 -> 4 -> apenas leitura

1 0 1 -> 5 -> leitura e execução

1 1 0 -> 6 -> leitura e escrita

1 1 1 -> 7 -> leitura, execução e escrita

Portanto, no nosso exemplo, daríamos permissão de leitura, escrita e execução (7) para o dono do arquivo, permissão de leitura e execução (5) para os usuários do mesmo grupo do dono do arquivo e não daríamos nenhuma permissão para os outros usuários do sistema.

Entendendo melhor:

7 -> r=1 (ok, permissão de leitura.) w=1 (Ok, permissão de escrita), x=1 (Ok, permissão de execução)

5 -> r=1 (ok, permissão de leitura), w=0 (permissão de escrita negada), x=1 (Ok, permissão de execução)

0 -> não dá permissão nenhuma.

No nosso exemplo, alteramos as permissões de apenas um arquivo. Mas se quiséssemos alterar as de um diretório todo, incluindo seus subdiretórios? Usamos então a opção -R. Exemplo:

chmod -R 755 /home/usuário/teste

No exemplo acima alteramos as permissões do diretório teste e de tudo que havia contido nele. Para mudarmos as permissões de todos os arquivos contidos em determinado diretório, utilizamos o asterisco (*).

Exemplo:

chmod 777 /home/usuário/pasta/*

No exemplo anterior, alteramos as permissões de todos os arquivos contidos no diretório "pasta". Para visualizarmos as permissões dos arquivos de um diretório, utilizamos o comando "ls -l".

Obs.: Para entender melhor como converter números binários em decimais e vice-versa, acesse o tutorial de conversão de números binários.

Espero que tenham entendido.

Abração.

Ordenando as coisas com sort

Desligando o PC na hora certa com o shutdown

Resgatando dados de um formulário com Ruby e CGI

Configurando rede manualmente no Debian Linux e derivados

Obtendo a data e a hora de compilação em C

Usando zoom no Gnome Shell e no Xfce

TAR seletivo

Comandos básicos do terminal no Kali Linux

Redshift e alteração manual de temperaturas

Comandos do smbclient

#1 Comentário enviado por reinaldoluiz em 30/08/2009 - 11:38h
Opa,

Muito bom seu artigo...mas..eu ainda tenho uma duvida....

Ja vi em alguns lugares usarem um 4o. numero no chmod, exemplo 0755.... Pra que serve ? (aparece tb umas permissoes que nao sao as wrx e sim uma S)

Se puder dar uma luz, valeu.


Abração
#3 Comentário enviado por reinaldoluiz em 30/08/2009 - 12:15h
Enzo,

Muito obrigado, era o que eu precisava.


Abração
#4 Comentário enviado por removido em 27/09/2009 - 12:18h
Cara,

Excelente artigo, muito não dão importância ao estudo desse comando, apesar rodar como base em muitos analisadores de segurança.

Abraços!

http://reprogramandovoce.blogspot.com

#5 Comentário enviado por andykenobi em 29/04/2017 - 20:13h
Muito bem explicado. Estava passando por maus bocados por não entender tão bem sobre isso.

Contribuir com comentário

Entre na sua conta para comentar.