是否有一个文件系统,当不同用户访问它时,相同的文件路径会转移到不同的文件?

是否有一个文件系统,当不同用户访问它时,相同的文件路径会转移到不同的文件?

我想当不同的用户访问相同的文件路径时访问不同的文件。

例如/path/a.txtlinux中有一个文件路径,如果user1访问/path/a.txt它实际上访问的是/user1/a.txt;如果 user2 访问/path/a.txt它实际上访问/user2/a.txt

任何帮助深表感谢。谢谢 !

答案1

我突然想到了 4 种方法来做到这一点,但我不会推荐其中任何一种!

  1. 使用 Linux 命名空间;在每个每用户命名空间内,将每用户文件绑定安装到基本文件的顶部。

  2. 使用符号链接到目标文件的基本文件创建每用户 chroot 环境

  3. 运行基于 FUSE 的文件系统并将其安装在基本文件的顶部

  4. 让基本文件成为一个命名管道,并带有一个处理每个用户文件读/写的守护进程。

全部其中的设置很复杂脆弱的我不会推荐他们。我不会更深入地讨论如何实现它,因为如果你无法构建它,那么你将无法修复它什么时候它坏了!

一般来说,您应该在代码中以另一种方式解决问题(例如使用环境变量)。

答案2

使用变量来实现目标。假设您使用 bash,那么对于 user1,在 ~/.bashprofile 中定义一个变量,例如 cpath

cpath=custom/path1

访问文件就像

"/some/path/$cpath/filename" # Quotes important to prevent word splitting

对于 user2,定义一个变量,例如

cpath=custom/path2

访问文件就像

"/some/path/$cpath/filename" #note the same path

相关内容