User permission denied to follow Softlink in root's home

21,753

As mentioned in the comments, the /root is missing the execute permission. If the upper folders do not allow the execution, you cannot look inside the sub-folders (even if you have permissions for this folders)

So add execute permission to the root folder with:

$ sudo chmod a+X /root

And it will work.

Word of advice, don’t store anything in the /root folder! There is no good reason for it. It is the home of the root user and should not be used for anything else. So after you tested that it works, remove the permission with sudo chmod go-X /root/

Share:
21,753

Related videos on Youtube

Semo
Author by

Semo

Updated on September 18, 2022

Comments

  • Semo
    Semo almost 2 years

    I have a directory containing a load of files and would like to access and using it as user, via a Softlink in the /opt directory, but keeping it in the /root directory:

    root@computer:~# ll myDirectory_v11
    root@computer:~# drwxr-xr-x  6 root root 4096 Jun 25 12:45  myDirectory_v11
    

    Now I create a Softlink:

    root@computer:~# ln -s /root/myDirectory_v11 /opt/myDirectory
    

    To gain access and run software inside I change the owner, the like:

    root@computer:~# chown -R myUser:myUser /opt/myDirectory
    

    This returns no error and listing it inside the /opt confirms, that all went well. The owner changed correctly.

    After logging out from root and trying to change into the /opt/myDirectory, I receive a bash: cd: /opt/myDirectory: Keine Berechtigung.

    In Centos this was never an issue. How to make it accessible for the myUser?

    I tried a lot of things, e.g. using -hR flag for prohibition of dereferencing or tried sysctl -w fs.protected_symlinks=0 to no avail. Has it something to do with some sticky-bit? If so, how to overcome the problem?

    • steeldriver
      steeldriver about 6 years
      Likely because /root doesn't have execute permission for anyone except root
    • Semo
      Semo about 6 years
      Thx. But if root gives access to one folder for one user, why isn't it possible to access it for the user? How to allow the user to use the folder and contents?
    • Soren A
      Soren A about 6 years
      Because changing ownership on the sym-link don't change ownership on the file/directory the sym-link points to.
  • pLumo
    pLumo about 6 years
    This. And chown -Rwill not follow symlinks.
  • Semo
    Semo about 6 years
    Accepted. Where would you store software? I created a symlink to avoid specific version numbers in directory names and afterwards to be forced to reconfigure depending stuff over and over again. So my idea was to simply bending the file pointer... ;-)
  • Simon Sudler
    Simon Sudler about 6 years
    /usr/local/… is the usual place, where you store custom modifications. Use the bin for executables, lib, var, and share as used in the default /usr/. If you need or want to store everything in one folder, then /opt is a good place.
  • Semo
    Semo about 6 years
    @SimonSudler Tried, worked, removed permissions. Moved package away from root and stuffed into /usr/local. Thank you very much for your assistance!