man pages não renderizam mais - muitos erros de “permissão negada” relacionados a pager / vimpager

1

Por razões que não posso determinar, nos últimos dois dias o comando "man" parou de funcionar no meu servidor linux (Ubuntu 18.04). Ao tentar executar man <anything> , acabo em uma instância em branco do vi (presumivelmente porque ele está usando o vimpager em algum lugar em segundo plano) ... depois que eu saio da instância vim, vejo os seguintes erros no console:

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: 

Isso acontece independentemente de eu estar sendo executado em um usuário "normal" ou se eu usar sudo man <anything> ou se eu usar sudo bash e executá-lo dessa maneira.

É evidente que há um problema de permissões em algum lugar, mas serei amaldiçoado se conseguir descobrir onde. Todos os diretórios / tmp mencionados nas mensagens de erro estão presentes e possuem permissões de leitura configuradas, então não consigo entender por que todos esses comandos estão reclamando.

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
    
por ljwobker 08.11.2018 / 16:58

1 resposta

1

Acontece que, de alguma forma, os perfis de apparmor para o executável /usr/bin/man foram corrompidos ou foram sobrescritos com os perfis de uma versão diferente, ou algo assim ... então os avisos permission denied estavam vindo do apparmor e não das verificações de permissão do sistema de arquivos.

Verificando o syslog mostrou toneladas de mensagens como:

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"

A solução era uma ferramenta bacana que eu não conhecia chamada aa-logprof , que basicamente analisa os erros do apparmor no seu syslog e (interativamente) pergunta se você deseja ajustar os perfis do apparmor para corrigir as permissões.

    
por 08.11.2018 / 20:03