não pode executar binários ou scripts de shell

2

Estou executando o teste Debian e não consigo executar nenhum script binário ou de shell. Eu continuo recebendo "Nenhum tal arquivo ou diretório" para binários e "Permissão negada" para scripts shell executáveis. O umask é o padrão e eu não tenho brincado com os caminhos. Além disso, estou ciente de this pergunta, mas não funciona para mim - eu compilei meu código nesta máquina e tente executá-lo na mesma máquina. Além disso, todos os meus scripts de shell têm o shebang correto.

Algum conselho?

Editar: não estou executando nenhum tipo de aplicativo do Armor ou do SELinux.

    
por hyperboreean 26.04.2010 / 22:12

2 respostas

1

Mais informações, incluindo copiar / colar de uma sessão de terminal, seriam úteis. Mas as coisas para procurar imediatamente são que os binários e os scripts têm as permissões corretas (geralmente o modo 0755). Verifique se a linha shebang nos seus scripts aponta para um binário válido. Execute o comando "file" em um binário para ter certeza de que é um verdadeiro binário para sua arquitetura. Certamente nem todos os seus binários obtêm "nenhum tal arquivo ou diretório", caso contrário você não teria sido capaz de compilar seu código. Tente o comando "which" para ver se o seu shell pode encontrar o binário que você está tentando executar (por exemplo, "qual data" para ver qual comando seria executado se você digitar "data") e verificar se está encontrando o binário acho que você está tentando executar (às vezes um comando aparece antes no seu PATH e você não está ciente disso).

    
por 26.04.2010 / 23:15
0

Para arquivos binários, é um problema com o arquivo ou com o shell. Tente executá-lo em sh ou com tcsh ou re-baixando / reinstalando-o (se você mesmo fez isso, você pode tentar recompilá-lo). O próprio bash é um binário e, se você puder acessar o shell, poderá acessar os arquivos binários, e o problema está no arquivo e / ou no shell.

Para scripts de shell, se o erro for "Permission denied", adicionarei o privilégio de execução usando chmod a+x filename . O privilégio de execução é uma forma de proteção dada pelos sistemas UNIX. Você não pode executar scripts ou binários sem esse privilégio.

    
por 11.05.2016 / 23:14

Tags