web-dev-qa-db-fra.com

Autorisation refusée avec "homme"

Pour une raison quelconque, un serveur Ubuntu (14.04.4 LTS) sur lequel je travaille ne permettra pas à "man" d'être exécuté par un utilisateur normal. Exemple:

man ls
man: can't change directory to '/root': Permission denied
man: command exited with status 255: (cd /root && LESS=-ix8RmPm Manual page ls(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$PM Manual page ls(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ MAN_PN=ls(1) pager -s)

Comment cela est-il arrivé et, plus important, comment puis-je résoudre ce problème?

PDATE:

Semble que cela ne se produit qu'après I su user où "utilisateur" est un utilisateur non privilégié. La solution de contournement consiste à su -l user mais je ne comprends toujours pas pourquoi man deviendrait une commande privilégiée sans l'indicateur de connexion.

3
billynoah

Vous êtes actuellement dans le dossier /root.

man exécute une commande incluant cd <current folder>. Dans ce cas, il s'agit de cd /root (comparez la deuxième ligne de l'erreur). Mais cela n'est pas autorisé pour les utilisateurs non-root.

Ce qui suit fonctionnera:

cd ~ && man ls

Pour reproduire le même comportement, procédez comme suit:

$ Sudo su
# cd /root
# su normal_user
$ man ls
man: can't change directory to '/root': Permission denied
1
pLumo