尝试在64位上运行32位应用程序时出错。运行sudo工作正常

时间:2015-02-06 02:20:44

标签: linux ubuntu arm glibc arm64

我在32位arm机器上编译了一个简单的hello-world应用程序。并将所需的32位库复制到aarch64机器上。(ld-2.19.so和libc-2.19.so)

如果我是root(sudo),则运行正常,但普通用户的权限被拒绝。

这是错误 -

ubuntu@ubuntu:~$ ./ld-2.19.so ./hello_world 
./hello_world: error while loading shared libraries: ./hello_world: failed to map segment from shared object: Operation not permitted
ubuntu@ubuntu:~$ ./ld-2.19.so --list ./hello_world 
./hello_world: error while loading shared libraries: ./hello_world: failed to map segment from shared object: Operation not permitted

这是sudo的行为 -

ubuntu@ubuntu:~$ sudo ./ld-2.19.so ./hello_world
Hello World
ubuntu@ubuntu:~$ sudo ./ld-2.19.so --list ./hello_world
linux-vdso32.so.1 =>  (0xf75cd000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf74de000)
/lib/ld-linux-armhf.so.3 => ./ld-2.19.so (0xaae03000) 

1 个答案:

答案 0 :(得分:0)

检查这些库的文件权限。如果你不是root用户,你可能会发现你没有权限读取文件或它们所在的目录。