O sistema de arquivos run.sh
está ativado foi montado noexec
.
Digamos que eu tenha um arquivo chamado run.sh
que contém:
#! /bin/sh -x
x-www-browser index.html
E ls -l run.sh
diz:
-rwxr-xr-x 1 myusername myusername 39 Jan 9 19:32 run.sh
E ./run.sh
diz:
bash: ./run.sh: Permission denied
Por que isso não funciona? Por que sh -x run.sh
funciona perfeitamente?
Mais informações, já que não é tão fácil, aparentemente
Se eu fizer um sudo
, ele não emitirá um erro, mas também não fará nada.
myusername@crunchbang:/mnt/data$ sudo ./run.sh
[sudo] password for myusername:
myusername@crunchbang:/mnt/data$
Meu palpite é que a linha #!
tem algum caractere estranho, talvez um ASCII Nul
ou outro caractere não imprimível, um backspace - algo, talvez. Alguns shells tiveram um problema com os marcadores de fim de linha de dois bytes do MS-DOS / Windows (carriage-return linefeed). Os editores modernos podem examinar arquivos e decidir se são arquivos de texto estilo Unix (alimentação de linha) ou estilo Windows (e talvez até estilo Mac). Talvez você tenha misturado seu editor e escrito um arquivo de texto do Windows.
Isso faz com que o kernel não encontre o "executável" que é tão especificado, e afirma que ele não pode executar o "executável" inexistente.
Tags permissions shell