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.