Permissão de Execução a Arquivo (script ou binário) no GNU/Linux - Abordagem Sistemática

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.

[ Hits: 14.170 ]

Por: Rodrigo Albuquerque Serafim em 11/10/2017 | Blog: https://www.vivaolinux.com.br/~raserafim


Modo Textual em seu código ampliado (recomendado quando de vários usuários)



Se nas situações de um sistema com apenas um usuário costuma ser suficiente a formulação elementar do código para dar permissão de execução, por outro lado, nos casos de um sistema com vários usuários essa formulação deixa de ser satisfatória, costuma se tornar insuficiente. Para os casos de um sistema operado por mais de um usuário cadastrado, logo, o recomendável é a utilização do código que viabiliza a permissão de execução em sua forma ampliada: mais completa e precisa.

Suprimir a "indicação do escopo" quanto à amplitude de usuários que terão uma determinada permissão e, também, não levar em conta que a permissão de execução se dá pelo agregado de dois atributos de permissão (execução e leitura), em geral, significa a efetivação de permissões ou inconsistentes ou não funcionais.

Quando o sistema tem múltiplos usuários, portanto um sistema de maior complexidade, assim, se torna uma demanda ou, no mínimo, uma recomendação a utilização de um código, pois, que contenha tanto a explicitação da "indicação do escopo" de usuários quanto a explicitação referente ao "indicativo do atributo" de leitura - além, claro, do "operador do atributo" (que, até então, o vimos apenas como sendo o sinal de adição "+").

Neste sentido, da utilização de um código à atribuição de execução que atenda às necessidades de qualquer situação, o código elementar em sua forma ampliada pode ser o seguinte:

chmod +xr nome_do_arquivo.ext

É equivalente a... | é similar a:

chmod a+xr nome_do_arquivo.ext # permissão de execução e leitura a "todos" os usuários

Acerca da explicitação da "indicação do escopo" de usuários, até então, vimos a sua função no código apenas na sua máxima amplitude: a atribuição a qualquer um dos usuários do sistema. No entanto, para dar permissão de execução somente a um determinado escopo de usuários que não seja "todos os usuários", que seja assim ou o "usuário dono", ou o "grupo do qual o usuário dono faz parte", ou os "outros usuários que não são nem o dono nem compõem o grupo de usuário do dono", a explicitação do argumento que faz a "indicação do escopo" acaba por se tornar imperioso.

Nestes casos, os caracteres que representam esse argumento da "indicação do escopo" de usuários são, respectivamente, "u" (do inglês "user"), "g" (do inglês "group") ou "o" (do inglês "other").

Quando se quer definir a amplitude do escopo dos usuários que terão permissão de execução, e quando essa amplitude não quer dizer respeito a "qualquer um" dos usuários, portanto, a explicitação desse escopo é obrigatória.

Segue um quadro sintético de todos os caracteres possíveis referentes ao argumento da "indicação do escopo" de usuários:
  • 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 [group] dono do arquivo alvo (proprietário)
  • o → indica permissão {de execução} ao grupo [other] 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)

Vale observar que o escopo de usuários indicado para "todos os usuários" não se efetiva por meio de um escopo de usuários especificamente destinado para tal indicação. Não existe realmente o escopo de usuários referenciado com o caractere "a". Quando utilizamos o argumento "a" com intuito de dar algum tipo de permissão para "qualquer um" dos usuários, assim, na verdade, estamos indicando a configuração de permissão simultaneamente para os três escopos de usuários que realmente existem: "usuário dono" ("u"); "grupo" ("g"); "outros" usuários ("o").

Fazer a "indicação do escopo" de usuários com o argumento "a" ("todos os usuários"), logo, é o mesmo que fazer a "indicação do escopo" de usuários com os argumentos "ugo":

chmod a+xr nome_do_arquivo.ext

É equivalente a... | é similar a:

chmod ugo+xr nome_do_arquivo.ext # permissão de execução e leitura a "todos" os usuários

Também vale observar que o "grupo do qual o usuário dono do arquivo faz parte" não inclui o "usuário dono". O "usuário dono" do arquivo se constitui como um escopo de usuários, enquanto que o "grupo" se constitui como um outro escopo de usuários, assim como os "outros" usuários que não são nem o dono nem compõem o grupo de usuário do dono também se constituem como um outro escopo de usuários.

Cada uma das três indicações do escopo de usuários ("u","g","o" -- considerando que "a" funciona como um atalho para a definição dos outros três escopos de uma só vez) possui seu próprio espaço de usuários: entre esses três escopos não há sobreposição de usuários; um escopo não está contido em qualquer outro escopo. Cada escopo congrega um conjunto único de usuários.

Já acerca do "indicativo do atributo" de leitura, por seu turno, a sua explicitação nesse código em formato ampliado é importante porque, sem a sua explicitação, e como resultado final, tão somente o "usuário dono" do arquivo é que deverá ter efetivamente a permissão de execução. Sem o  "indicativo do atributo" de leitura explicitado, portanto, outros usuários além do "proprietário" do arquivo deverão ter o atributo de execução configurado permissivamente. Porém, com o atributo de leitura continuando a ter permissão apenas para o "usuário dono" do arquivo.

O significado de ter o atributo de execução configurado para um determinado escopo de usuários (possivelmente mais dilatado) enquanto, ao mesmo tempo, o atributo de leitura está configurado para um outro escopo de usuários (possivelmente mais estreito), nestes casos, é que a permissão mais restritiva acaba por prevalecer.

Isto é, como a permissão de execução congrega os atributos de execução e de leitura, então, basta que qualquer um desses dois atributos tenham uma permissão restritiva (por exemplo, apenas para o "usuário dono" do arquivo) para que a permissão de execução em sua efetivação seja igualmente restritiva.

Para garantir que a permissão de execução seja efetivada para uma determinada "indicação do escopo" de usuários", neste caso, é importante que no "indicativo do atributo" seja informado conjuntamente os caracteres "x" e "r", respectivamente, nas condições de "atributo de execução" e de "atributo de leitura".

Segue um quadro sintético dos caracteres referentes ao argumento do "indicativo do atributo" de permissões que podem ser utilizados para compor o parâmetro passado ao comando "chmod" em seu código no formato ampliado (em negrito aqueles decisivos nos limites deste artigo) (desconsideramos aqueles especiais):
  • x → indica o atributo de execução
  • r → indica o atributo de leitura
  • w → indica o atributo de escrita

Agora, segue uma síntese esquemática dos argumentos necessários (ou recomendados) para dar permissão de execução através do comando "chmod":
  • {"indicação do escopo" [u,g,o,a]} {"operador do atributo" [+,-]} {"indicativo do atributo" [x,r,...]}

Do que já expomos em relação ao Modo Textual de atribuição da permissão de execução, tanto em seu código elementar quanto na variação explícita desse seu código elementar, é importante assinalar que o sinal de adição ("+") significa "adição de permissão"; e não "redefinição de permissão". O "operador do atributo" enquanto sinal de adição ("+")  acrescenta permissões (ou retira permissões quando é o sinal de subtração "-") às permissões já existentes de "escopo" e de "atributos".

Textualmente, as diferenças entre "adição" (ou subtração) e "redefinição" podem parecer pequenas, não obstante, em suas operacionalizações, as diferenças possam ser significativas.

Vejamos no próximo sub-item, um aprofundamento e desdobramento do Modo Textual em suas duas formas de código, a distinção entre o significado de "adição de permissões" e o significado de "redefinição de permissões" (este último, um outro argumento que ainda não expomos até esta altura do texto).

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Terminal: Modo Textual e Modo Octal
   3. Modo Textual em seu código elementar (suficiente quando de um usuário)
   4. Modo Textual em seu código ampliado (recomendado quando de vários usuários)
   5. Modo Textual na sua distinção entre "adição" e "redefinição" de permissões
   6. Modo Octal em sua forma única ("redefinição")
   7. Atribuição em lote (Textual e Octal)
   8. Interface Gráfica: particularidades e layouts de categorização
   9. Considerações Finais
Outros artigos deste autor

Permissão de Execução de Arquivo (Script ou Binário) no GNU/Linux - Elementos Básicos para Compreensão

Leitura recomendada

OpenVPN - Servidor Ubuntu 10.04 LTS e Clientes Windows

Administrando Memória SWAP no GNU/Linux

Linux no Pendrive

Instalando o bugzilla no OpenSuSE 10.2

ArchLinux: Configuração pós-instalação

  
Comentários
[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)

[2] Comentário enviado por raserafim em 18/10/2017 - 11:01h

colega Sandson,

você tem toda razão!

os erros que você indicou procedem sim!

obrigado pela leitura atenta do artigo!

obrigado por apontar os erros!

[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);

[4] Comentário enviado por raserafim em 30/10/2017 - 18:46h

Os erros apontados nos comentários anteriores já foram corrigidos diretamente no artigo pela moderação do VOL!

Obrigado Izaías!

[5] Comentário enviado por removido em 21/01/2018 - 14:05h


[4] Comentário enviado por raserafim em 30/10/2017 - 18:46h

Os erros apontados nos comentários anteriores já foram corrigidos diretamente no artigo pela moderação do VOL!

Obrigado Izaías!


Ok.
Sempre que precisarem de correções, avisem à moderação para que possamos editar e evitar que nossos leitores cometam erros.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts