![无法在 Linux 下运行可执行文件](https://linux22.com/image/510144/%E6%97%A0%E6%B3%95%E5%9C%A8%20Linux%20%E4%B8%8B%E8%BF%90%E8%A1%8C%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6.png)
我 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...