O script shell não está sendo executado como “./”, mas é executado por “sh”

2

Estou executando um script no painel de destino do braço como um superusuário, por exemplo, como usuário root. Mas o script não está sendo executado se eu o executar com a seguinte sintaxe

root@freescale$ ./Script.sh 
-sh: ./Script.sh: Permission denied

Eu já dei as permissões de leitura e execução (+ rx) usando o comando chmod. Ao executar o comando "ls -l", recebo os seguintes atributos

root@freescale$ ls -l | grep Script.sh
-rw-rw-rw-    1 root     root          362 Jul  2 08:47 Script.sh

"x" não está lá na coluna de atributos do arquivo, enquanto o comando chmod foi executado com sucesso. Por outro lado, esse script é executado quando eu o executo como

root@freescale$ sh Script.sh 

Alguém pode me ajudar a responder a esta situação?

    
por pRAShANT 02.07.2013 / 11:00

3 respostas

1

mesmo que o seu "chmod" retorne sucesso, o bit de execução não é ligado, como mostra o "ls", portanto concluo que algo está evitando que você altere o modo de arquivo no sistema de arquivos.

o que "lsattr Script.sh" mostra?

você pode colocar o script em um ramdrive ou outro sistema de arquivos no mesmo host e tentar novamente?

    
por 02.07.2013 / 11:11
1

Seu script não possui os direitos de "execução" definidos para ninguém. Experimente:

chmod u+x Script.sh

e o dono do arquivo deve poder iniciá-lo com ./Script.sh

Da mesma forma,

chmod g+x Script.sh
chmod o+x Script.sh

trabalhe se você quiser que o grupo (g) ou qualquer pessoa (o) tenha permissão para executá-lo.

    
por 02.07.2013 / 11:06
0

O arquivo tem que ser "executável" para ser executado usando ./Script.sh .

Use chmod +x Script.sh para adicionar o sinalizador "executar" para este arquivo.

EDITAR

Desculpe, perdi um detalhe importante em sua postagem, você já fez isso, mas não funcionou ... tente executar chmod novamente e, em seguida, execute imediatamente echo $? para obter o status de saída, pode ser útil.

    
por 02.07.2013 / 11:04