无法在 Linux 下运行可执行文件

无法在 Linux 下运行可执行文件

我 chmod 777 了一个可执行文件并尝试像这样执行它:/home/gandalf/./sample 但是它不起作用 /bin/bash: 第 25 行:./sample: 权限被拒绝 可能是什么问题? 谢谢。

答案1

似乎./sample是其他东西的包装脚本,并且正在第 25 行调用您没有执行权限的另一个脚本/程序。

我将尝试使用 cat./sample查看第 25 行上(或周围)将调用什么。

如果您不明白发生了什么,您可以在问题中发布脚本的内容,我们会帮助您。

答案2

当您输入时file sample结果是什么?

请注意,可能是您的文件系统已被挂载,noexec以阻止您从主目录执行文件。

答案3

也许你的二进制文件是:

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

或者

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

答案4

正如 Marcel 所说,可能调用了exec另一个可执行文件。尝试使用 运行它strace,您应该会发现这一点,即:

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

相关内容