Не могу запустить исполняемый файл под Linux

Я выполнил исполняемый файл chmod 777 и пытался выполнить его следующим образом: /home/gandalf/./sample, но он не работает /bin/bash: строка 25: ./sample: В доступе отказано В чем может быть проблема? Благодарю.

4 ответа

Когда вы печатаете file sample Что в итоге?

Обратите внимание, что это может быть, что ваша файловая система смонтирована noexec чтобы остановить выполнение файлов из вашего домашнего каталога.

Похоже на ./sample является сценарием-оболочкой для чего-то другого и вызывает в строке 25 другой сценарий / программу, к которой у вас нет прав на выполнение.

Я бы попробовал кошку ./sample чтобы увидеть, что находится (или около) в строке 25, которую он будет вызывать.

Если вы не понимаете, что происходит, вы можете опубликовать содержание сценария в своем вопросе, и мы поможем вам.

Как сказал Марсель, вероятно, есть exec вызов другого исполняемого файла. Попробуйте запустить его с straceи вы должны это выяснить, т.е.

$ strace a.out|grep exec
...snip...
execve("/bin/ls", ["ls"], [/* 37 vars */]) = 0
...snip...

Может быть, ваш бинарный файл:

system("/script/on/which/you/have/no/permission");

или же

exec("/script/on/which/you/have/no/permission");
Другие вопросы по тегам