Не могу запустить исполняемый файл под 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");