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: 2.901 ]

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


Introdução



O artigo que se segue, 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, quer seja um binário.

Compreender como dar permissão de execução a um determinado arquivo nos sistemas GNU/Linux e, em alguma medida, compreender o significado dessa permissão de execução, entre outros motivos, é relevante porque, por padrão, todo arquivo criado ou baixado da internet tem os seus atributos de permissões configurados sem permissão de execução. Caso precise das propriedades de execução de um determinado arquivo, por conseguinte, é necessário configurar diretamente sua permissão de execução.

Nos sistemas GNU/Linux, mas não apenas e diferentemente de alguns outros sistemas, um arquivo executável não é definido por sua extensão, mas por sua propriedade de execução.

Nesse tipo de sistema, o que se costuma entender por "extensão" do nome do arquivo não passa de uma parte do seu nome; a "extensão" do nome do arquivo no GNU/Linux é, tão somente, um conjunto de caracteres partícipe do seu nome -- assim como qualquer outro conjunto de caracteres que compõem o nome do arquivo.

O que define se um determinado arquivo (script ou binário) se constitui como um arquivo executável, deveras, é os seus atributos de permissão estar configurado para permitir execução.

Em poucas palavras, um determinado arquivo é considerado um executável quando tem a permissão de execução.

Porém, a permissão de execução é algo mais amplo do que, simplesmente, a definição do atributo relacionado à execução configurado permissivamente. A permissão de execução envolve um conjunto de atributos que congrega os atributos de permissão de execução e de leitura. A permissão de execução, portanto, pressupõe a permissão de leitura.

Para que um determinado usuário possa executar um determinado arquivo, não basta que esse usuário esteja contemplado no escopo de usuários do atributo de execução; é igualmente necessário que esteja contido no escopo de usuários do atributo de leitura. O atributo de execução, por si só, não garante a permissão de execução. O usuário precisa ter sobre o arquivo, há um só tempo, permissão de execução e permissão de leitura.

A observância da unidade entre esses dois atributos (de execução e de leitura) para a efetiva permissão de execução é especialmente importante nos casos em que o sistema possui mais de um usuário cadastrado. Quando o sistema é utilizado por mais de um usuário, cada um com sua conta, está sempre presente a possibilidade de um determinado arquivo estar configurado com o seu atributo para permitir execução a "todos os usuários", ainda que o seu atributo de leitura esteja configurado à permissão apenas para o "usuário dono" do arquivo.

Neste caso, o usuário que não é o proprietário do arquivo, embora tivesse permissão sobre o atributo de execução, não teria permissão sobre o atributo de leitura. O hipotético usuário, logo, não possuiria permissão suficiente para a execução do arquivo.

Quando o sistema é utilizado por um único usuário, entretanto, essa preocupação com a permissão de leitura pode ser renegada a segundo plano. Uma vez que, por padrão (definido pelo comando "umask"), a permissão de leitura dos arquivos criados (ou baixados) são definidas com permissão para o "proprietário do arquivo", então, é de se considerar que todos os arquivos presentes no sistema terão, no mínimo, a permissão de leitura lhe garantida.

Compreender como se dar permissão de execução a um determinado arquivo e, em alguma medida, compreender o significado dessa permissão de execução, entre outros motivos, é relevante porque, por padrão (também definido pelo comando "umask"), todo arquivo criado ou baixado da internet tem os seus atributos de permissões configurados sem permissão de execução. Caso se precise das propriedades de execução de um determinado arquivo, por conseguinte, é necessário configurar diretamente sua permissão de execução.

Vejamos agora, na sequência desta introdução, algumas formas de definir a propriedade de um arquivo como sendo uma 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.

Em ambos os casos, a permissão de execução poderá ser realizada pelo "usuário comum" ou pelo "superusuário" (root): quando se pode utilizar um ou o outro tipo de usuário vai depender, unicamente, de quem é o dono do arquivo (proprietário).

O "root" pode alterar a permissão para execução (e não apenas) de qualquer arquivo independentemente de qual usuário seja o proprietário; já o "usuário comum", apenas pode alterar essa permissão (e todas as outras) daqueles arquivos dos quais este usuário seja o dono.

    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
Nenhum artigo encontrado.
Leitura recomendada

Visual Source Safe no Linux

Tocando arquivos MP3 no SuSE Linux

Ubuntu customizado como MacOS X

Balanceamento de 3 links com redundância no Linux

Atualizando sua versão Slackware - upgrade de pacotes

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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts