O artigo aborda de modo sistemático e sob diversas maneiras a respeito de como dar permissão de execução a um arquivo, quer seja este arquivo um script ou binário. Veremos, pois, algumas formas de definir sua propriedade com permissão de execução, isso tanto por intermédio do Terminal (em seus Modos Textual e Octal) quanto por intermédio da Interface Gráfica.
A atribuição da permissão de execução também pode ser realizada a vários arquivos de uma única vez (em lote) - e não somente a um arquivo por vez.
Tanto é possível definir nominalmente um conjunto de arquivos determinado, quanto é possível definir o conjunto de todos os arquivos de um determinado diretório. No primeiro caso, bastaria passar como parâmetro ao comando "chmod" os nomes dos arquivos separados por um espaço em branco; no segundo caso, bastaria passar como parâmetro curinga o "*.*" (asterisco-ponto-asterisco):
chmod +xr nome_do_arquivo1.ext nome_do_arquivo2.ext nome_do_arquivo3.ext# permissão de execução e leitura a "todos" os usuários para os arquivos informados como parâmetro
chmod +xr *.*# permissão de execução e leitura a "todos" os usuários para todos os arquivos do diretório atual
Para atribuir permissão de execução a todos os arquivos de um determinado diretório e de seus subdiretórios, por sua vez, pode ser utilizado o acréscimo do parâmetro "-R" (parâmetro de recursividade).
Porém, partindo-se dos códigos que já explicamos, além de acrescentar o parâmetro "-R", devemos também alterar a definição de um outro: ao invés do nome do arquivo, logo, devemos definir o nome do diretório alvo - que pode ser ou o caminho completo do diretório (exemplo: "/home/user/meus_scripts") ou apenas a indicação do diretório corrente (exemplo: "./" {ponto-barra}):
chmod -R +xr /home/user/meus_scripts# permissão de execução e leitura a "todos" os usuários para o diretório e seus subdiretórios
É equivalente a... | é similar a:
chmod -R +xr ./# permissão de execução e leitura a "todos" os usuários para o diretório e seus subdiretórios
E:
chmod -R +777 /home/user/meus_scripts# permissão de execução e leitura a "todos" os usuários para o diretório e seus subdiretórios
É equivalente a... | é similar a:
chmod -R +777 ./# permissão de execução e leitura a "todos" os usuários para o diretório e seus subdiretórios
Quando se faz referência a arquivos (mesmo que por "*.*"), o parâmetro "-R" é desconsiderado. Esse parâmetro apenas é levado em conta quando se passa ao comando "chmod" o diretório como parâmetro.
O cuidado que precisa ter com a utilização do parâmetro "-R" é que, como sua utilização demanda a passagem do nome do diretório alvo como parâmetro, o diretório alvo e também seus eventuais subdiretórios terão, assim, suas propriedades definidas igualmente com os argumentos de permissão passados ao comando "chmod". Portanto, caso retire a permissão de execução e/ou a permissão de leitura, sequer, será possível acessar o diretório - em função da insuficiência de permissão.
[1] Comentário enviado por Sandson em 17/10/2017 - 15:10h
Nesse comentário:
u → indica permissão {de execução} ao usuário [user] dono do arquivo alvo (proprietário)
g → indica permissão {de execução} ao usuário [user] dono do arquivo alvo (proprietário)
o → indica permissão {de execução} ao grupo [group] do qual o usuário dono faz parte
a → indica permissão {de execução} a todos [all] os usuários (é o mesmo que utilizar a sua supressão)
Não estaria errado não? O certo não seria?
u → indica permissão {de execução} ao usuário [user] dono do arquivo alvo (proprietário)
g → indica permissão {de execução} ao grupo [group] do qual o usuário dono faz parte
o → indica permissão {de execução} ao usuário que não faz parte do grupo do usuário dono
a → indica permissão {de execução} a todos [all] os usuários (é o mesmo que utilizar a sua supressão)
[3] Comentário enviado por raserafim em 18/10/2017 - 11:07h
ERRATA:
na página de número 4 {Modo Textual em seu código ampliado (recomendado quando de vários usuários)}, há um erro no "quadro sintético de todos os caracteres possíveis referentes ao argumento da "indicação do escopo" de usuários":
segue o "quadro sintético" correto:
u --> indica permissão {de execução} ao usuário [user] dono do arquivo alvo (proprietário);
g --> indica permissão {de execução} ao grupo [group] do qual o usuário dono faz parte;
o --> indica permissão {de execução} aos outros [other] usuários que não são nem o dono nem compõem o grupo de usuários do dono;
a --> indica permissão {de execução} a todos [all] os usuários (é o mesmo que utilizar a sua supressão);