PAM은 권한이 없는 프로세스에서 사용자 비밀번호를 어떻게 확인합니까?

PAM은 권한이 없는 프로세스에서 사용자 비밀번호를 어떻게 확인합니까?

권한이 없는 화면 잠금에서 호출되면 PAM은 사용자의 비밀번호를 확인하려고 시도합니다. 예를 들어:

screenFedora 26의 패키지에서 SUID 루트 바이너리를 찾을 수 없지만 lockscreen명령( Ctrla Ctrlx)은 계속 작동합니다. xsecurelock또한 SUID 루트를 설정하는 Makefile도 볼 수 없습니다 .

혼란스러워요. 어떻게 작동하나요? 내 사용자에게 읽기 권한이 없습니다 /etc/shadow. OpenWall을 사용하지 않습니다.pam_tcb사용자별 섀도우 파일의 경우.

답변1

pam이 설치한 바이너리를 보면 unix_checkpwd.

unix_chkpwd는 현재 사용자의 비밀번호를 확인하는 데 사용되는 pam_unix 모듈용 도우미 프로그램입니다. 또한 섀도우에서 비밀번호와 계정 만료 날짜를 확인합니다. 명령줄에서 직접 실행하기 위한 것이 아니며, 실행하면 보안 위반이 기록됩니다.

일반적으로 setuid 루트 또는 setgidshadow를 설치합니다.

도우미의 인터페이스 - 명령줄 옵션 및 입력/출력 데이터 형식은 pam_unix 모듈 내부에 있으며 응용 프로그램에서 직접 호출하면 안 됩니다.

관련 정보