Я 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...