kcheckpass 오류가 /var/log/faillog를 열 때 발생합니다.

kcheckpass 오류가 /var/log/faillog를 열 때 발생합니다.

다음 오류가 표시됩니다.

$ journalctl -b -p3
-- Logs begin at Mon 2016-05-16 21:40:56 EDT, end at Wed 2016-07-27 22:30:13 EDT. --
Jul 27 22:22:26 x99 kcheckpass[5682]: pam_tally(kde:auth): Error opening /var/log/faillog for update
Jul 27 22:22:26 x99 kcheckpass[5682]: pam_tally(kde:auth): Error opening /var/log/faillog for read
Jul 27 22:22:26 x99 kcheckpass[5682]: pam_tally(kde:auth): Error opening /var/log/faillog for update
Jul 27 22:22:26 x99 kcheckpass[5682]: pam_tally(kde:auth): Error opening /var/log/faillog for read
Jul 27 22:22:26 x99 kcheckpass[5682]: pam_tally(kde:setcred): Error opening /var/log/faillog for update
Jul 27 22:22:26 x99 kcheckpass[5682]: pam_tally(kde:setcred): Error opening /var/log/faillog for update

kcheckpass 매뉴얼 페이지는 다음과 같이 말합니다:

kcheckpass - KDE용 인증 프로그램

사용자 인증이 필요한 모든 프로그램(예: 잠금 옵션이 있는 화면 보호기)은 kcheckpass를 사용할 수 있습니다. kcheckpass는 사용자가 인증되면 0을 반환하고 그렇지 않으면 1을 반환하는 간단한 setuid 프로그램입니다. 사용자 인증이 필요한 다른 프로그램은 setuid 상태를 요구하지 않고 kcheckpass를 사용할 수 있으므로 프로그램이 단순화되고 시스템 보안이 강화됩니다.

SECURITY
kcheckpass must be setuid on systems that use shadow passwords.

내가 이해한 바에 따르면 setuid 권한 비트는 Linux에게 소유자(실행자가 아닌)의 유효 사용자 ID를 사용하여 프로그램을 실행하도록 지시합니다.

그러나 이 경우 이 솔루션을 구현하는 방법을 이해할 수 없습니다. 정확히 무엇을 해야 합니까?

다음은 /var/log/faillog에 대한 기존 권한입니다.

$ ls -la /var/log/faillog 
-rw------- 1 root root 32096 Aug  9 12:56 /var/log/faillog

답변1

~에서아치 리눅스 포럼, 더 나은 답변이 있습니다.

이 파일을 편집하고 다음 두 가지 사항을 변경합니다(줄 삭제 및 새 줄 삽입).

sudo nano /etc/pam.d/system-login

전체 줄 삭제:

auth       required   pam_tally.so         onerr=succeed file=/var/log/faillog

그 자리에 다음 줄을 삽입하세요.

auth       required   pam_tally2.so

로그 파일 생성:

touch /var/log/tallylog
chmod 600 /var/log/tallylog

자세한 내용 보기아치 포럼이것이 더 나은 솔루션인 이유를 설명하십시오.

답변2

다음 명령을 실행할 수 있습니다.

sudo chmod +s /usr/lib/kcheckpass

사용 중인 배포판에 따라 다른 디렉터리에 있을 수도 있으므로 /usr/libexec/kcheckpass.

관련 정보