Назад | Перейти на главную страницу

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

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

Когда вы печатаете file sample какой результат?

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

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

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

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

Возможно, ваш двоичный файл:

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

или

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

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

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