在我没有 root 访问权限且未安装 FUSE 的系统上(或者我没有足够的权限来创建新的挂载),我该如何启动保险丝文件系统(例如 sshfs 或一些基于 FUSE 的 unionfs)和可以从任何程序访问它通过 LD_PRELOAD 黑客攻击,不涉及内核或者root权限?
我正在寻找现有的像这些中的一个这样的解决方案(或者可以轻松组装以获得其中之一的砖块):
- LD_PRELOAD 网关至 FUSE? 已经存在了吗?
- 一个现有的 prot 插件将 FS 系统调用转发到 FUSE 文件系统(例如转发到 sshfs/unionfs/…)
- 现有的插件或另一个虚拟文件系统覆盖(AVFS、fakechroot 等)的扩展,转发到 FUSE
- 提供如下函数的库
mylib_open
,, …将调用转发到 FUSE 文件系统。mylib_write
这将使修补从源代码编译的特定程序(仅)或修补 proot、fakechroot、AVFS 或其他 vfsmylib_close
变得相当容易。#define open mylib_open
- 以上任何一种,使用一个单独的进程来取代内核的角色(保持挂载点和与 FUSE 文件系统的连接,并充当服务器,以便多个客户端进程可以看到相同的 VFS)。
- 我不认为
qemu-user
它可以在其自己的环境中运行真正的 FUSE,因为 qemu-user 不会模拟内核 IIUC,并且现在安装 qemu-system 通常需要 root,而尝试在没有 root 的情况下运行 qemu-systemkvm
会非常慢。
我发现了类似的问题,但是none 解决与现有 FUSE 文件系统的兼容性:
- 使用 LD_PRELOAD 查找文件系统覆盖询问有关作为 LD_PRELOAD 实现的任何 FS 覆盖,答案列出了除 FUSE 之外的其他 FS 覆盖。
- 在 StackOverflow 上向没有 root 访问权限的 Linux 进程展示虚拟文件系统提到 LD_PRELOADing FUSE 是一个可以接受的答案,但大多询问其他类似的虚拟 FS(并且没有答案选择该选项)。
- 在项目中使用 libfuse,无需 root 访问权限(用于安装)?StackOverflow 上的 FTP 挂载和 inotify/kqueue/FSEvents具体询问如何使用没有 root 访问权限的 libfuse 进入
inotify
远程 FTP 文件系统,答案针对的是这个特定的请求。