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

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

看起来像./sample是其他内容的包装器脚本,并且正在调用第25行的另一个脚本/程序,您没有执行权限。

我会尝试cat ./sample来查看第25行将会发生的事情。

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

当你键入file sample结果是什么?

请注意,它可能是您的文件系统挂载noexec来停止执行您的主目录中的文件。

也许你的二进制文件是:

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