0

我在 Linux 机器上以 root 身份登录。现在尝试执行testC++ 的二进制文件,但会产生错误“权限被拒绝”。虽然我已经使用chmod +x test.

谢谢

4

4 回答 4

3

如果文件 test 位于单独的挂载点,并且该挂载点使用 noexec 标志挂载,则您将无法在其上执行任何二进制文件。

从安装手册页:

noexec   Do not allow direct execution of any binaries on the mounted filesystem.

您可以使用以下命令查看挂载点的标志:

mount -l
于 2013-03-02T05:43:56.857 回答
0

试试ls -l /path/to/your/file后面的命令chmod +x /path/to/your/file

之后,检查可执行位x是否存在,即查看将打印的第一个字符串,它应该类似于-rwxrwxr-x.

  • 如果您没有这三个,则chmodx有问题。可能你不是root。

  • 如果您有x但无法执行程序,则问题出在您对程序的调用上。您应该尝试cd进入程序所在的文件夹,然后像 ./program_name.

于 2013-03-02T05:37:37.577 回答
0

在你的代码之前有一个名为“test”的命令可能在你的路径中,这就是为什么你要输入“./test”而不是“test”,这可能会在/usr/bin/test中找到. (“哪个测试”可以在您的系统上找到)

我不知道为什么 /usr/bin/test 会因该错误而失败,除非您的测试软件采用参数并且您(在我的系统上)/usr/bin/test 给出了它无法执行的命令。

如果它不称为测试,也不是路径问题,你能发布一些代码和构建细节吗?

于 2013-03-02T05:37:47.647 回答
0

如果二进制文件test位于目录 /dir1/dir2 中,请执行以下任一操作(使用绝对路径):

/dir1/dir2/test

或导航到包含程序的目录并使用./前缀(又名相对路径)

cd /dir1/dir2
./test
于 2013-03-02T05:29:48.423 回答