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