man
왜 자체 사용자가 있는지 궁금합니다 .
$ grep man /etc/passwd
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
저는 데비안 버스터를 사용하고 있습니다.
답변1
man
(적어도,구현 버전man-db
)는 "캐시"(인덱싱 포함)가 사용되도록 자체 사용자로 설정할 수 있습니다.예를 들어) 가 whatis
아닌 이 사용자가 소유하고 업데이트할 수 있습니다 root
.
또한 man
이 사용자에 대해 uid를 설정하여 사용자에게 특정 권한을 요구하지 않고도 캐시 디렉터리에 쓸 수 있도록 할 수 있습니다.
$ ls -ld /var/cache/man /usr/bin/man
-rwsr-sr-x 1 man man 115600 Feb 19 2021 /usr/bin/man
drwxr-xr-x 31 man man 4096 Nov 23 00:00 /var/cache/man
위에 표시된 man
바이너리 는 setuid 및 setgid man
뿐만 아니라 man
owns 입니다 /var/cache/man
.
sudo dpkg-reconfigure man-db
데비안 파생물에서는 다음과 같은 설명을 사용할 수 있습니다 .
man 및 mandb 프로그램은 "man" 사용자의 권한으로 실행되도록 set-user-id 비트를 설정하여 설치할 수 있습니다. 이를 통해 일반 사용자는 미리 형식화된 매뉴얼 페이지("cat 페이지")를 캐싱하여 느린 시스템의 성능을 향상시키는 데 도움이 될 수 있습니다.
맨페이지 캐싱은 80열 터미널을 사용하는 경우에만 작동합니다. 이는 한 사용자가 다른 사용자에게 불편한 너비로 Cat 페이지를 저장하는 것을 방지하기 위한 것입니다. 와이드 터미널을 사용하는 경우 MANWIDTH=80을 설정하여 매뉴얼 페이지의 형식을 80열로 강제 설정할 수 있습니다.
이 기능을 활성화하면 보안상 위험할 수 있으므로 기본적으로 비활성화되어 있습니다. 의심스러운 경우 비활성화해야 합니다.
"Cat 페이지"는 이제 쓸모가 없으므로 이를 지원하지 않는 시스템을 구성해도 문제가 발생하지 않습니다. Cat 페이지도 지원되지만 임의의 사용자는 이를 생성할 수 없으므로 man
정기적으로 생성하려면 사용자 및 setuid 바이너리가 필요합니다.모두고양이 페이지가 누락되었습니다( 참조 catman
).
setuid 없이도 사용자 man
는 관련 크론 작업( 인덱싱 등) man
에 사용될 수 있습니다 .man
whatis