알 수 없는 이유로 지난 이틀 동안 "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
파일 시스템 권한 확인이 아닌 의류에서 발생합니다.
시스템 로그를 확인하면 다음과 같은 수많은 메시지가 표시됩니다.
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-로그프로프, 기본적으로 의류 오류에 대한 시스템 로그를 구문 분석하고 권한을 수정하기 위해 의류 프로필을 조정할지 (대화식으로) 묻습니다.