我正在寻找一种方法将用户空间文件系统呈现给特定的Linux进程,但我没有root权限。
显而易见的答案是FUSE但没有root访问权限我无法加载内核模块,所以FUSE似乎是不可能的(除非有一种方法可以使用LD_PRELOAD吗?)。
接下来最好的事情似乎是LD_PRELOAD,其中包含拦截相关FS调用然后转换它们的内容,就像FUSE在VFS层执行的操作一样。
所以我的问题是:
答案 0 :(得分:-1)
AFAIK LD_PRELOAD可以帮助您只在默认路径中添加一些系统中尚未存在的额外库(.so)(与文件系统无关)。
考虑到linux中的正常控制流,所有这些系统调用(与文件系统相关)将最终在内核空间中最终到达指定的文件系统内核模块。 FUSE将其路由回用户空间。我不认为你可以在不干扰内核级代码的情况下拦截VFS。
根据您的要求,您可能需要在libc上使用包装器,它将这些文件视为特殊情况并绕过系统调用