I've created a symbolic link "foo" using my default user (jgsiqueira) at /tmp/ pointing to a file "bar" located in my home directory:
$ 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
My problem is: I would like to access the content of this file with root through this symbolic link. However, it seems that root it is not allowed to follow this link:
# cat /tmp/foo
cat: /tmp/foo: Permission denied
Can someone help me help me in understand what is going on?
Interesting. After a quick test on my side, I had the same problem. And after a bit of research I found this. Turns out the problem comes from the /tmp folder itself which restricts the access to symbolic links (put your symbolic link in another folder, you'll see it works).
Your target file: /home/jgsiqueira/bar is not visible for the third group of permissions bits in the inode, this has to do with the content of the file, not the listing in an ls, this third group of permissions is normally used by rut: This has nothing to do with the symbolic link.
As root or as yourself give read permissions with:
chmod 666 /home/jgsiqueira/bar
or with symbolic notation, more flexible
chmod ugo+r /home/jgsiqueira/bar
the last use with symbolic notation means:
u: user (you)
g: group
o: other (this are the permissions bits root is going to use)
bye,
Hans