无法使用其他用户使用 root 创建的符号链接

Can't follow symbolic links created by other user using root

我创建了一个符号 link "foo" 使用我在 /tmp/ 的默认用户 (jgsiqueira) 指向位于我的主目录中的文件 "bar":

$ ln -s /home/jgsiqueira/bar /tmp/foo
$ ls -lh /tmp/ | grep foo
lrwxrwxrwx 1 jgsiqueira jgsiqueira   20 Feb 26 12:14 foo -> /home/jgsiqueira/bar

我的问题是:我想通过这个符号 link 以 root 访问这个文件的内容。但是,好像root是不允许跟这个link:

# cat /tmp/foo
cat: /tmp/foo: Permission denied

有人可以帮助我了解发生了什么吗?

你的目标文件:/home/jgsiqueira/bar对于inode中的第三组权限位是不可见的,这与文件的内容有关,而不是ls中的列表,这第三组权限通常由 rut 使用:这与符号 link.

无关

以 root 或您自己的身份授予读取权限:

chmod 666 /home/jgsiqueira/bar
或者用符号表示,更灵活
chmod ugo+r /home/jgsiqueira/bar

最后一次用符号表示:

u: 用户(你)
g: 组
o: 其他(这是 root 将要使用的权限)

再见,
汉斯

有意思。在我这边快速测试后,我遇到了同样的问题。经过一些研究,我发现 this。原来问题出在 /tmp 文件夹本身,它限制了对符号 link 的访问(将你的符号 link 放在另一个文件夹中,你会看到它有效)。