Salina Odelva Asked: 2010-04-03 11:12:04 +0800 CST2010-04-03 11:12:04 +0800 CST 2010-04-03 11:12:04 +0800 CST 无法在 Linux 下运行可执行文件 772 我 chmod 777'ed 一个可执行文件并试图像这样执行它: /home/gandalf/./sample 但它不起作用 /bin/bash: line 25: ./sample: Permission denied 可能是什么问题?谢谢。 linux permissions executable 4 个回答 Voted Zypher 2010-04-03T11:15:37+08:002010-04-03T11:15:37+08:00 似乎./sample是其他东西的包装脚本,并且在第 25 行调用另一个您没有执行权限的脚本/程序。 我会尝试 cat./sample看看它会调用的第 25 行(或周围)有什么。 如果您不明白发生了什么,您可以在您的问题中发布脚本的内容,我们会为您提供帮助。 Cry Havok 2010-04-03T12:19:01+08:002010-04-03T12:19:01+08:00 当你键入file sample结果是什么? 请注意,可能是您的文件系统已安装noexec以阻止您从主目录执行文件。 user126330 2010-04-03T13:36:34+08:002010-04-03T13:36:34+08:00 也许你的二进制文件是: system("/script/on/which/you/have/no/permission"); 或者 exec("/script/on/which/you/have/no/permission"); Dan Andreatta 2010-04-07T07:17:42+08:002010-04-07T07:17:42+08:00 正如马塞尔所说,可能有exec对另一个可执行文件的调用。尝试用 运行它strace,你应该会发现,即: $ strace a.out|grep exec ...snip... execve("/bin/ls", ["ls"], [/* 37 vars */]) = 0 ...snip...
似乎
./sample
是其他东西的包装脚本,并且在第 25 行调用另一个您没有执行权限的脚本/程序。我会尝试 cat
./sample
看看它会调用的第 25 行(或周围)有什么。如果您不明白发生了什么,您可以在您的问题中发布脚本的内容,我们会为您提供帮助。
当你键入
file sample
结果是什么?请注意,可能是您的文件系统已安装
noexec
以阻止您从主目录执行文件。也许你的二进制文件是:
或者
正如马塞尔所说,可能有
exec
对另一个可执行文件的调用。尝试用 运行它strace
,你应该会发现,即: