Você possui um determinado script em seu PC Linux, ou em seu servidor VPS? E como parte importante da automação de suas tarefas, você deseja torná-lo executável. Vamos explicar neste artigo como configurar a permissão chmod +x. Ou seja, a permissão de execução no Linux.
O comando chmod tipo (x) representa especificamente a permissão de execução. Existem vários outros tipos de usos para o chmod.
Quando aplicada em scripts, permite que ele seja executado como um programa. Essa prática é muito popular em scripts bash (.sh)
Passo a passo para aplicar a permissão chmod +x em seu PC Linux ou servidor VPS
Seja seu uso um VPS Linux, ou no PC local, o procedimento para configurar a permissão é o mesmo. Por exemplo, para transformar um script executável por qualquer usuário do sistema. Este é o uso mais simples do chmod +x. Utilize o seguinte comando o utilizado:
$ sudo chmod +x script.sh
Após isso, executamos o script executável da seguinte forma:
$ ./script.sh
E para restringir um pouco a liberdade na execução do script, o que fazer?
Se o objetivo for conceder permissão de execução ao dono do arquivo e ao grupo dono usamos o parâmetro ug+x.
$ sudo chmod ug+x script.sh
Saída:
E para dar permissão de execução apenas ao dono do arquivo usamos o parâmetro u+x.
$ sudo chmod u+x script.sh
Saída:
Há ainda o parâmetro a+x, porém, este é para conceder total permissão para todos os usuários executarem scripts. Ele possui o mesmo efeito que chmod +x.
$ sudo chmod a+x script.sh
Saída:
Permissão chmod -x para remover a permissão de execução
Se por um lado o comando chmod +x permite que um script se torne executável como um programa, por outro, o comando chmod -x faz a ação contrária. Ou seja, remove a permissão de execução de scripts e diretórios.
Caso o objetivo seja remover totalmente a permissão de execução de um arquivo, basta executar:
$ sudo chmod -x script.sh
Saída:
Se o objetivo é remover a permissão de execução do usuário dono do script, basta executar:
$ sudo chmod u-x script.sh
Saída:
Para remover a permissão de execução apenas do grupo dono:
$ sudo chmod g-x script.sh
Saída:
Por fim, se for necessário remover a permissão de execução apenas da categoria outros usuários:
$ sudo chmod o-x script.sh
Saída:
Permissões no Linux – Execução condicional
Até agora utilizamos o parâmetro x (minúscula). Então, agora iremos conhecer um pouco do parâmetro X (maiúsculo) em que nos permite definir de forma condicional a permissão de execução em arquivos e diretórios.
Casos em que usamos a forma condicional:
Se usarmos este parâmetro em um diretório, ele define a permissão de execução para o usuário dono, o grupo dono e os outros usuários, permitindo que qualquer usuário do sistema liste e entre no diretório.
Se usarmos este parâmetro em um arquivo, a permissão de execução somente será aplicada na propriedade escolhida se ela já estiver configurada em ao menos umas das outras propriedades.
Portanto, este parâmetro é muito útil quando você deseja alterar a permissão de forma recursiva em um diretório e seus subdiretórios, sem afetar os próprios arquivos regulares.
Por exemplo, vamos considerar o seguinte diretório teste:
Quando o comando chmod -R g+X for executado neste diretório, a permissão de execução será aplicada para o grupo dono nos seguintes itens:
No diretório teste.
Em seu subdiretório diretorio2.
No arquivo teste_dir.sh.
Porém, as permissões do arquivo script.sh ficarão inalteradas.
$ sudo chmod -R g+X teste
Saída
Permissão chmod +x para diretórios
Quando se trata de diretórios em seu servidor VPS, a permissão de execução tem significado um pouco diferente do que em arquivos. Ao ser definida em algum diretório, permite que usuários do sistema listem seu conteúdo através do comando ls ou acesse-os através do comando cd.
E quando o assunto é hospedagem de sites e aplicações, mas que no momento de acessá-los via navegador o conteúdo não é exibido, qual poderia ser o eventual problema quando pensamos em permissões?
Quando nós abrimos um site via navegador, estamos usando a propriedade chamada outros usuários para nos exibir os elementos da página.
Então, se não existir permissão correta no diretório, ocorrerá erro de acesso negado ao site 403 (forbidden).
Sendo assim, é necessário que as configurações do diretório do site sejam alteradas para que o acesso possa ocorrer do jeito certo.