权限是否拒绝在Linux上运行我自己的程序?

问题描述 投票:8回答:9

我有Ubuntu 9.4。我已经构建了程序,一些基本的OpenGL。该程序只是使旋转正方形。然后运行它:

sh: /blabla permission denied.

并且空的main不起作用:

int main()
{
    return 0;
}

我如何使它消失?

opengl permission-denied ubuntu-9.04
9个回答
14
投票

我遇到了同样的问题,并且看来我的分区被挂载为noexeccat / etc / mtab

当我在/ etc / fstab中配置选项时,我写了exec,user,但似乎默认情况下,“ user”选项设置为“ noexec”。当我将这两个命令的顺序更改为user时,exec一切恢复正常!

希望有帮助。


7
投票

您如何编译?你可以发布makefile吗?如果您运行

chmod +x myPorgram
./myProgram

有什么变化吗?


5
投票

通过运行“ mount”检查安装点以查看是否已将其安装为noexec


2
投票

我在Ubuntu上使用CodeBlocks,并且多次遇到此确切问题。KermiDT所说的正是解决方案(如果我的代表点足够多,我会投票赞成)默认情况下,“用户”选项设置为“ noexec”。因此,在/ etc / fstab中只需在用户之后添加,exec。即我的看起来像这样:/dev/sda6 /media/DATA vfat uid=kenny,gid=kenny,users,user,exec 0 0 虽然,间距有点小...但是您明白了。


1
投票

除了上面提到的chmod + x文件,另一个问题可能是缺少库。要检查所需的库,请使用ldd:

$ ldd /bin/sh
    linux-vdso.so.1 =>  (0x00007fffb43fe000)
    libc.so.6 => /lib/libc.so.6 (0x00007fc4abe11000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc4ac183000)

如果这些行之一显示缺少的库,您将知道需要安装什么才能运行程序。

另一种可能性是,如果您的程序是脚本(shell,perl,python或其他基于文本的程序)。第一行如下所示:

#!/usr/bin/perl

如果找不到该文件,则会出现权限被拒绝的错误。


1
投票

问题夫妇:

  1. 是否在文件上正确设置了权限?
  2. 是否正确设置了任何解释器的路径?

1
投票

[尝试在64位系统上执行32位应用程序时也会遇到此问题。执行:

a. file (executable name)
b. uname -a

并检查两者均为“ i386”或“ amd64”。

如果它们不相同,请查看this article


0
投票

尝试用strace执行命令以跟踪成功进行的系统调用及其停止的位置。

这是您可能会启动的方式,

strace

您是否收到“权限被拒绝”错误或类似“ exec格式错误”的信息?在文件上使用strace ./blabla ,您不应单击“权限被拒绝”。


0
投票

您还应确保您的用户名在视频组中。检查/ etc / group,并确保您的用户名出现在“视频”行中。

© www.soinside.com 2019 - 2024. All rights reserved.