手册页不再呈现 - 许多与寻呼机/ vimpager 相关的“权限被拒绝”错误

手册页不再呈现 - 许多与寻呼机/ vimpager 相关的“权限被拒绝”错误

由于我无法确定的原因,在过去两天内,“man”命令在我的 Linux 服务器(Ubuntu 18.04)上停止工作。当尝试运行时,man <anything>我最终遇到了 vi 的空白实例(大概是因为它在后台某处使用 vimpager)...一旦我退出 vim 实例,我就会在控制台上看到以下错误:

lwobker@lwobker-vms:~$ man ls
cat: /tmp/vimpager_4620/cols: Permission denied
cat: /tmp/vimpager_4620/lines: Permission denied
head: cannot open '/tmp/vimpager_4620/stdin' for reading: Permission denied
sed: can't read /tmp/vimpager_4620/stdin: Permission denied
mv: cannot move '/tmp/vimpager_4620/stdin.work' to '/tmp/vimpager_4620/stdin': Permission denied
cat: /tmp/vimpager_4620/stdin: Permission denied
/usr/bin/pager: 242: /usr/bin/pager: cannot open /tmp/vimpager_4620/stdin: Permission denied
/usr/bin/pager: 239: [: Illegal number: 

无论我是否以“常规”用户身份运行,或者是否以“常规”用户身份运行,sudo man <anything>或者是否以sudo bash这种方式运行,都会发生这种情况。

显然某个地方存在权限问题,但如果我能找出问题所在,那我就该死了。错误消息中提到的所有 /tmp 目录都存在并且已设置读取权限,因此我不太明白为什么所有这些命令都会抱怨。

lwobker@lwobker-vms:/tmp$ ll vimpager_4234/
total 60
drwx------  2 lwobker lwobker  4096 Nov  8 10:47 ./
drwxrwxrwt 24 root    root    40960 Nov  8 10:56 ../
-rw-r--r--  1 lwobker lwobker    11 Nov  8 10:47 1.vim
-rw-r--r--  1 lwobker lwobker  9664 Nov  8 10:47 stdin
-rw-r--r--  1 lwobker lwobker     0 Nov  8 10:47 stdin.work

答案1

事实证明,不知何故阿帕莫尔可执行文件的配置文件/usr/bin/man要么已损坏,要么已被不同版本的配置文件覆盖,或者类似的内容......因此警告permission denied来自 apparmor,而不是来自文件系统权限检查。

检查系统日志显示大量消息,例如:

audit: type=1400 audit(1541703091.843:4554): apparmor="DENIED" operation="ptrace" profile="/usr/bin/man" pid=8777 comm="ps" requested_mask="trace" denied_mask="trace" peer="/usr/bin/man"

解决方案是一个我不知道的漂亮工具,叫做AA-logprof,它基本上解析系统日志中 apparmor 的错误,并(交互式)询问您是否要调整 apparmor 配置文件以修复权限。

相关内容