由于某种原因,我正在使用的 Ubuntu 服务器 (14.04.4 LTS) 不允许普通用户运行“man”。示例:
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)
这是怎么发生的?更重要的是,我该如何解决它?
更新:
似乎只有在su user
“用户”是非特权用户的情况下才会发生这种情况。解决方法是,su -l user
但我仍然不明白为什么man
在没有登录标志的情况下会成为特权命令。
答案1
您当前位于文件夹/root
。
man
运行一些命令,包括cd <current folder>
。在本例中是cd /root
(比较错误的第二行)。但对于非 root 用户,这是不允许的。
下列操作有效:
cd ~ && man ls
要重现相同的行为,您可以执行以下操作:
$ sudo su
# cd /root
# su normal_user
$ man ls
man: can't change directory to '/root': Permission denied