A explicação mais provável é Patrick : o sistema de arquivos é montado com a opção noexec
, portanto os bits de permissão de execução em todos os arquivos são ignorados, e você não pode executar diretamente nenhum programa residente neste sistema de arquivos. Observe que a opção noexec
mount está implícita na opção user
em /etc/fstab
(supostamente por motivos de segurança, embora, ao contrário das opções nodev
e nosuid
, noexec
não forneça nenhuma segurança) . Se você usa user
e deseja ter arquivos executáveis, use user,exec
.
Também é possível que a linha shebang do script aponte para um arquivo que existe, mas isn ' t executável - nesse caso, a mensagem de erro se refere ao script , embora o erro esteja no interpretador. No entanto, é improvável que o shebang aponte para um arquivo existente errado (se o erro não for encontrado, uma declaração pendente seria mais plausível).