我有 Ubuntu 9.4。我已经构建了程序,一些基本的 OpenGL。该程序只是制作一个旋转正方形。然后运行它并:
sh: /blabla permission denied.
一个空的main
不起作用:
int main()
{
return 0;
}
我怎样才能让它消失?
我有 Ubuntu 9.4。我已经构建了程序,一些基本的 OpenGL。该程序只是制作一个旋转正方形。然后运行它并:
sh: /blabla permission denied.
一个空的main
不起作用:
int main()
{
return 0;
}
我怎样才能让它消失?
我有同样的问题,似乎我的分区被挂载为 noexec cat /etc/mtab
当我在 /etc/fstab 中配置选项时,我写了 exec,user 但似乎“user”选项默认设置为“noexec”。当我将这两个的顺序更改为 user,exec 时,一切恢复正常!
希望能帮助到你。
你是怎么编译的?你可以发布makefile吗?如果你跑
chmod +x myPorgram
./myProgram
有什么变化?
通过运行“mount”检查挂载点是否挂载为 noexec
我在 Ubuntu 上使用 CodeBlocks 并且多次遇到这个问题。KermiDT 所说的正是解决方案(如果我有足够的代表点,我会投票赞成)
“用户”选项默认设置为“noexec”。
所以在 /etc/fstab 中只需在用户之后添加 ,exec 。即我的看起来像这样:
/dev/sda6 /media/DATA vfat uid=kenny,gid=kenny,users,user,exec 0 0
虽然,间距有点偏离......但你明白了。
几个问题:
除了上面提到的 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
如果找不到该文件,您将收到权限被拒绝错误。
尝试在 64 位系统上执行 32 位应用程序时也会遇到此问题。执行:
a. file (executable name)
b. uname -a
并检查两者是“i386”还是“amd64”。
如果它们不一样,请查看这篇文章:
尝试执行该命令strace
以跟踪它进行的成功系统调用以及它停止的位置。
这就是你可以启动它的方式,
strace ./blabla
您是否收到“权限被拒绝”错误或“执行格式错误”之类的错误?在chmod +rx
文件上,您不应该点击“权限被拒绝”。
您还应该确保您的用户名在视频组中。检查 /etc/group 并确保您的用户名出现在“视频”行。