无法在 FUSE 中执行二进制文件,出现“执行格式错误”

无法在 FUSE 中执行二进制文件,出现“执行格式错误”

我正在使用带有挂载选项的 FUSE default_permissions,allow_other,ro,exec。如果我执行 FUSE 根目录下的二进制文件,它会给出错误

bash: exec format error: binary_name

FUSE 调试日志显示文件被正确读取。

  • 如果没有放入保险丝,我就能执行相同的二进制文件。

    所以我认为 arch 是兼容的。

  • 如果我将每个调用都传递给底层文件,我就可以执行具有相同挂载选项的二进制文件,例如

    所以我认为安装选项也应该没问题。

  • 以下是findmnt我的 FUSE 输出的选项:

    ro,nosuid,nodev,relatime,user_id=771069,group_id=89939,default_permisions,allow_other
    
  • 以下是二进制文件的权限:

    -rwxr-x--- 1 771069 89939 5.8M Nov 8 23:45 binary_name
    

file如果有帮助的话,以下是命令的输出:

  • 当从 fuse 访问二进制文件时:即file /path_to_mount_point/path_to_binary

ELF 64 位 LSB 无文件类型、无机器、无效版本(SYSV)

  • 当没有使用 fuse 访问二进制文件时:即file /path_to_binary

ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接,解释器 /lib64/ld-linux-x86-64.so.2,适用于 GNU/Linux 2.6.32,BuildID[sha1]=28ba79c778f7402713aec6af319ee0fbaf3a8014,已剥离

  • 输出ldd /path_to_mount_point/path_to_binary

不是动态可执行文件

  • 输出ldd /path_to_binary

linux-vdso.so.1 (0x00007fff0dbfb000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0cb6722000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f0cb6705000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0cb6540000) /lib64/ld-linux-x86-64.so.2 (0x00007f0cb674a000)

我不知道我在这里做错了什么。

相关内容