基于用户ID的符号链接


1

我想知道如何在linux中创建类似符号链接的东西,它会指向不同用户看到它的不同目录。我为它寻找了很长时间并发现了一些名为hlfsd的东西 - 当然常见的符号链接不能这样做,因为它们基于内核“东西”,但我已经 发现了什么 这可能会解决这个问题。

但是,是否有任何“更好”的解决方案 - 任何会给我链接式文件的东西,它将指向基于t.h.e的不同目录。用户的ID?

基本上我想做的事情:

让我们考虑一下我们有服务器的文件结构 A/{a1 a2}/{b1 b2}/{c1 c2} 在这些文件夹中,有大文件,不应通过网络复制。 让我们说用户U1想要访问这些文件,所以他可以制作符号链接(到目前为止一直很好)。

问题是,当他想要访问这个结构并且他想要仅在本地复制时 A/a1/b1/c1。当然我们可以在本地创建很多符号链接,这将指向服务器上的那些文件夹,但是我们没有一个对我来说非常重要的功能 - 例如当有人添加文件夹时 A/a1/b1/c3,然后这个用户,已链接到此文件结构并具有 A/a1/b1/c1 在本地,不会看到更改,因为他的所有链接都是手动创建的。


我不明白您的用例与您的问题有何关联。为什么不同的用户会看到同一文件/目录的不同内容?事实上文件是远程重要的吗?用户方便多少,安全多少钱?也许 AFS 要么 保险丝 您可能会感兴趣。
Gilles

Answers:


1

FreeBSD曾经有一些特殊的符号链接处理,我认为称为variadic符号链接(虽然谷歌搜索该术语找不到我想要的)。您没有符号链接到特定路径的想法,而是一个可以替换的字符串。

你不仅不知道Linux不支持这一点,而且每个用户的实现比你想象的更难。在* BSD中,它是为内核知道的简单字符串做了符号链接,比如架构(即i686与x86_64)。然后来自/ opt / someapp / bin =>的symlnik / opt / someapp / $ {arch} / bin是有道理的。但是你想按用户做。请记住,符号链接在内核中解析,并且内核不知道您的名字或主目录。它知道你的用户ID,就是这个。它必须来回跳转到用户模式才能获得有关您的任何信息。并非不可能,但非常棘手。然后,setuid程序将如何工作?

简而言之,我知道你的意思,知道你想要什么,但你不可能到达那里。也许退房 保险丝 并查看他们是否有任何可以使用的东西。

不完全是你说的,但也许你可以用源代码控制来做到这一点。 ClearCase(payware)曾经有一个内核模块可以完成你想要的大部分工作,但不确定它是否仍然存在。即使没有内核文件系统模块,您也可以将分布式源代码控制压缩到您想要的60-70%。


0

我看到的简单解决方案是在每个文件夹中都有隐藏文件夹 .realfiles 其中真正的文件夹和服务器上的文件夹就像 A/a1 要么 A/a1/b2 是符号链接到A上面的文件夹,所以 A/a1 是符号链接到 ../MOUNT/.realfiles/a1A/a1/b2 是符号链接到../MOUNT/.realfiles/a1/.realfiles/b1。

现在基本上服务器上的MOUNT是符号链接到A.但是如果可以更改每个用户链接,那么对于每个用户MOUNT文件夹将指向另一个目录,那么我们将能够根据需要更改一些链接。

(我知道这种特殊情况,但我最好解释一下)


@wdanilo我尽我所能尽力将问题的答案分开。如果你回来了,发一个答案给我一个@sathya,这样我就可以删除它。
Sathyajith Bhat

HI!问题是,这不是答案:(这是一般的解决方案,这将工作如果我能够“每个用户”创建符号链接。所以符号链接“MOUNT”将指向每个用户的另一个地方:(
wdanilo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.