与编程无关......
我已经构建了程序,一些基本的opengl,然后运行它并且sh:/ blabla权限被拒绝。我怎么能让它变得更便宜?
该程序只是旋转方块,我有ubuntu 9.4
刚刚发现即使是int main(){}也无法正常工作
答案 0 :(得分:14)
我遇到了同样的问题,似乎我的分区被挂载为noexec cat / etc / mtab
当我在/ etc / fstab中配置选项时,我写了exec,user但是看起来“user”选项默认设置为“noexec”。当我将这两个的顺序改为用户时,exec一切都恢复正常了!
希望它有所帮助。
答案 1 :(得分:7)
你是如何编译的?你可以发布makefile吗?如果你运行
chmod +x myPorgram
./myProgram
有什么变化?
答案 2 :(得分:5)
通过运行“mount”
检查mountpoint以查看它是否挂载为noexec答案 3 :(得分:2)
我在Ubuntu上使用CodeBlocks并且已经有很多次这个问题了。
KermiDT说的正是解决方案(如果我有足够的重复点,我会投票)
默认情况下,“user”选项设置“noexec”
所以在/ etc / fstab中只需添加,exec用户之后。
我的看起来像这样:
/dev/sda6 /media/DATA vfat uid=kenny,gid=kenny,users,user,exec 0 0
虽然,间距有点偏......但你明白了。
答案 4 :(得分:1)
几个问题:
答案 5 :(得分: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
如果找不到该文件,您将收到权限被拒绝错误。
答案 6 :(得分:1)
尝试在64位系统上执行32位应用程序时也会遇到此问题。执行:
a. file (executable name)
b. uname -a
并检查两者是“i386”还是“amd64”。
如果它们不相同,请查看this article:
答案 7 :(得分:0)
尝试使用strace
执行命令,以跟踪它所做的成功系统调用以及停止的位置。
这是您启动它的方式,
strace ./blabla
您是否收到“权限被拒绝”错误或“exec format error”之类的内容? chmod +rx
在文件上,您不应该点击“权限被拒绝”。
答案 8 :(得分:0)
您还应该确保您的用户名在视频群组中。检查/ etc / group并确保您的用户名显示在“视频”行中。