O comando chmod, é um utilitário que roda via linha de comando, utilizado 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 numeros ou letras. Neste tutorial, 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 digito do parâmetro, refere-se as permissões para o dono do arquivo. O segundo, se refere as permissões para os usuários do grupo do dono do arquivo e o terceiro, refere as permissões que os outros usuários do sistema tem para com o arquivo.
Para entendermos melhor, veja a tabela abaixo:
Quando utilizamos o numero 0, significa que negamos determinada permissao, e quando utilizamos 1, significa que aceitamos determinada permissao.
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
(Para entender melhor como converter números binários em decimais e decimais em binários, acesse o tutorial de conversão de números binários.)
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, permissao 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 quizessemos alterar as permissões de um diretório todo, incluindo seus subdiretórios?
Usamos então a opção -R. Exemplo:
chmod -R 755 /home/usuario/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/usuario/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.
É isso ai pessoal, espero que tenham compreendido o comando chmod. Qualquer sugestão, crítica ou elogio, entrem em contato.