Linux上用户或进程之间的目录重新映射?
例如,我想在用户之间重定向目录/数据。 当user1访问/data时,它实际上访问/data1。 当user2访问/data时,实际上他访问/data2 我应该使用什么技术?cGroup?工会?其他人?对不起,我是新手 更高级的是进程之间的重定向。 process1以/data的形式访问/data1, process2将/data2作为/data访问。 我该怎么做呢?有很多人可以做你想做的事。您将创建一个新的名称空间,并在其中装入/data作为与real/data1或/data2的绑定装入 然而,据我所知,现在做这件事有点棘手,需要很多工具,而大多数Linux发行版可能没有使用这些工具 大多数Unix软件使用环境变量来查找其数据目录。在这种情况下,你会Linux上用户或进程之间的目录重新映射?,linux,kernel,Linux,Kernel,例如,我想在用户之间重定向目录/数据。 当user1访问/data时,它实际上访问/data1。 当user2访问/data时,实际上他访问/data2 我应该使用什么技术?cGroup?工会?其他人?对不起,我是新手 更高级的是进程之间的重定向。 process1以/data的形式访问/data1, process2将/data2作为/data访问。 我该怎么做呢?有很多人可以做你想做的事。您将创建一个新的名称空间,并在其中装入/data作为与real/data1或/data2的绑定装入 然而
export JACKSPROGRAMDATA=/data1
在用户的$HOME/.profile(或.bash_profile)中,jacksprogram将使用getenv(JACKSPROGRAMDATA)
读取值。在Linux中,您可以使用绑定装载将目录或文件映射到另一个路径,并使用每个进程装载名称空间为特定进程执行此操作
绑定装载在装载
的-o绑定
选项中实现。可以使用装载命名空间,例如使用unshare
工具,该工具是util-linux
包的一部分
请参阅中的示例。对不起,/data只是这里的一个示例,它可能是一个重要的目录,在大多数情况下都是硬编码的applications@jackyyy:那么听起来您确实需要名称空间。事实上,使用它们并不太糟糕。但是让每个登录到他们自己的系统的用户设置挂载可能会很困难。