比如说我想用这样的命令链接以下两个目录:
ln -s /home/usertwo testdir
当我单击 ls 时,在创建此链接的目录中,我将看到类似
testdir -> /home/usertwo
有什么方法可以隐藏 /home/usertwo 以便 userone 看不到 usertwo 的名字?
答案1
隐藏列表是不可能的,但您可以做的是隐藏目录以防止被读取:chmod -r /certain/directories。有些人可能更喜欢切换 e[x]ecutable 标志,但这也会阻止文件被读取或执行。
答案2
一种可行的方法是不使用符号链接,而是使用绑定挂载。符号链接必须知道要去哪里,因为这就是它的全部,它也会显示出来。
可能的解决方案:
/home/somedir <-- 我们希望这个显示在 otherdir/share 下 /home/otherdir mount -o bind,ro /home/somedir /home/otherdir/share
这是一个示例
$ ls -l
drwxrwxr-x 4 用户用户 35 jan 9 12:37 home
$ ls -l home/
drwxrwxr-x 3 用户用户 18 jan 9 12:38 otherdir
drwxrwxr-x 2 用户用户 21 jan 9 12:38 somedir
$ ls -l home/somedir/
-rw-rw-r-- 1 用户用户 0 jan 9 12:38 test.txt
$ ls -l home/otherdir/
drwxrwxr-x 2 用户用户 6 jan 9 12:38 share
$ ls -l home/otherdir/share/
$ sudo mount -o bind home/somedir/ home/otherdir/share/
$ ls -l home/otherdir/share/
-rw-rw-r-- 1 用户用户 0 jan 9 12:38 test.txt