在 FUSE 中,如何获取有关用户和尝试在虚拟文件系统中进行读/写的进程的信息?

Cur*_*chi 3 filesystems process users fuse

假设我创建了一个名为 FUSE 的文件系统foo并将其安装在/mnt/foo.

如果我有一个用户myuser正在运行vi以打开文件/mnt/foo,那么哪些 FUSE 方法或数据结构包含有关用户和进程的信息?我想要用户/组和进程的实际名称,或者 RUID 和 PID。

我一直在盯着这个, 但我无法从 doxygen 文档中找到我提到的信息。

meu*_*euh 7

在调用熔断器操作期间,您可以调用fuse_get_context()以在fuse_context Struct 中获取当前调用用户 ID、组 ID、进程 ID 和 umask 。

struct fuse_context {
        struct fuse *fuse;
        uid_t uid;
        gid_t gid;
        pid_t pid;
        void *private_data;
        mode_t umask;
};
Run Code Online (Sandbox Code Playgroud)

这是一个提到此功能的文档bsd手册页。