如何跟踪 FUSE 中的工作目录
How to keep track of working directory in FUSE
所以我正在实施文件系统 FUSE。我想知道调用函数时我位于哪个目录中(特别是“mkdir”)。有办法知道吗?或者当用户使用“cd”命令时跟踪目录的方法? “getcwd”函数总是 returns 根目录。
libfuse 守护程序以 root 用户身份运行,而不是在用户对挂载文件系统进行操作的上下文中。这就是为什么 getcwd
在你的保险丝代码中总是 returns 根目录。但是,您确实可以使用 fuse_get_context()->pid
(参见 linux how to intercept unauthorized process access to the file,base with FUSE( cryfs or gocryptfs ))
访问某些呼叫用户的属性,特别是他们的 PID 号
使用 PID,您可以通过在 /proc/$pid/cwd
上调用 readlink()
来获取用户的当前目录(参见 https://unix.stackexchange.com/questions/509420/get-working-directory-of-logged-in-users)
所以我正在实施文件系统 FUSE。我想知道调用函数时我位于哪个目录中(特别是“mkdir”)。有办法知道吗?或者当用户使用“cd”命令时跟踪目录的方法? “getcwd”函数总是 returns 根目录。
libfuse 守护程序以 root 用户身份运行,而不是在用户对挂载文件系统进行操作的上下文中。这就是为什么 getcwd
在你的保险丝代码中总是 returns 根目录。但是,您确实可以使用 fuse_get_context()->pid
(参见 linux how to intercept unauthorized process access to the file,base with FUSE( cryfs or gocryptfs ))
使用 PID,您可以通过在 /proc/$pid/cwd
上调用 readlink()
来获取用户的当前目录(参见 https://unix.stackexchange.com/questions/509420/get-working-directory-of-logged-in-users)