Permissão de script de shell negada apesar do sinalizador +x

Permissão de script de shell negada apesar do sinalizador +x

Isso é estranho, acontece apenas em um servidor (hospedagem compartilhada, então tenho acesso limitado à configuração e aos logs), mas não consigo entender isso.

Eu tenho um script de shell que executa a implantação de alguns aplicativos. O arquivo tem um sinalizador +x, mas não consigo executá-lo simplesmente chamando seu nome no shell, recebo um erro de "acesso negado". Invocar o bash com o nome do arquivo como argumento funciona perfeitamente. Parece algo assim:

[someuser@someserver:~] $cat test.sh
echo "hooray!"
[someuser@someserver:~] $chmod +x test.sh
[someuser@someserver:~] $ls -l test.sh
-rwxrwxr-x 1 someuser someuser 14 Oct  8 11:27 test.sh
[someuser@someserver:~] $./test.sh
-bash: ./test.sh: Permission denied
[someuser@someserver:~] $bash test.sh
hooray!

Adicionar um #!/bin/bashno início não ajuda. Também tentei de outro shell (o padrão é bash, tentei em sh), aconteceu a mesma coisa.

Isso não é um problema tão grande, mas é desconcertante para mim. O que poderia ser a causa?

Responder1

Acho que é por causa da opção de montagem "noexec" para a pasta em que seu script está. Você pode tentar verificar isso com este comando

mount | grep `df -P /path/to/folder/with/script | tail -1 | cut -d ' ' -f 1`

informação relacionada