web-dev-qa-db-fra.com

La permission de l'utilisateur est refusée pour suivre Softlink dans la maison de root

J'ai un répertoire contenant une charge de fichiers et j'aimerais y accéder et l'utiliser comme utilisateur, via un lien symbolique situé dans le répertoire /opt, mais en le conservant dans le répertoire /root:

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

Maintenant, je crée un lien symbolique:

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

Pour accéder et exécuter un logiciel à l'intérieur, je change de propriétaire, comme ceci:

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

Cela ne renvoie aucune erreur et sa liste dans le répertoire/opt confirme que tout s'est bien passé. Le propriétaire a changé correctement.

Une fois déconnecté de la racine et tenté de changer dans/opt/myDirectory, je reçois un bash: cd: /opt/myDirectory: Keine Berechtigung.

En Centos, cela n'a jamais été un problème. Comment le rendre accessible à myUser?

J'ai essayé beaucoup de choses, par exemple utiliser le drapeau -hR pour interdire le déréférencement ou les tentatives de sysctl -w fs.protected_symlinks=0 en vain. Cela a-t-il quelque chose à voir avec un morceau collant? Si oui, comment résoudre le problème?

1
Semo

Comme mentionné dans les commentaires, /root ne dispose pas de l'autorisation d'exécution. Si les dossiers supérieurs n'autorisent pas l'exécution, vous ne pouvez pas regarder à l'intérieur des sous-dossiers (même si vous disposez des autorisations pour ces dossiers).

Donc, ajoutez l'autorisation d'exécution au dossier racine avec:

$ Sudo chmod a+X /root

Et ça va marcher.

Un conseil, ne stockez rien dans le dossier /root! Il n'y a pas de bonne raison pour cela. C'est la maison de l'utilisateur root et ne doit pas être utilisé pour autre chose. Donc, après avoir testé que cela fonctionne, supprimez l'autorisation avec Sudo chmod go-X /root/

3
Simon Sudler