2

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?

  • 1
    Possible duplicate of [Symlink giving "Permission denied"... to root](http://stackoverflow.com/questions/26496352/symlink-giving-permission-denied-to-root) – xian Feb 26 '16 at 16:09

2 Answers2

3

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).

Community
  • 1
  • 1
Julien Lopez
  • 1,794
  • 5
  • 18
  • 24
0

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

Hans Poo
  • 804
  • 1
  • 8
  • 17