PAM을 사용하여 로그인할 때와 다른 sudo 비밀번호를 사용해 보았습니다.
나는 원래 이 기사를 작성했습니다.
sudo 비밀번호를 로그인 비밀번호와 다르게 설정하세요.
안타깝게도 이 작업을 할 때마다 인증 오류가 발생하며 무엇이 문제인지 잘 모르겠습니다. 비밀번호를 잘못 해시했거나 데이터베이스에 잘못 추가했을 수도 있지만 문제가 무엇인지 잘 모르겠습니다.
sudo로 읽은 구성
session required pam_env.so readenv=1 user_readenv=0
session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth required pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd.db
\#@include common-auth
@include common-account
@include common-session-noninteractive
테스트 목적 으로 비밀번호를 설정한 passwd -m des password
다음 db5.3을 사용하여 passwd.db 데이터베이스를 만들었습니다.
db5.3_load -h /var/local/sudopass -t hash -T passwd.db
내 사용자 이름
73o8ECeyEW3Y2(비밀번호 해시)
그러면 인증 오류가 발생합니다. 이 데이터베이스를 내 홈 디렉토리에 배치하면 PAM은 권한 설정 방법에 관계없이 데이터베이스를 찾을 수 없습니다. )
현재 auth.log 덤프
인증 오류가 발생하는 데 문제가 있지만 이는
Oct 18 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): Verify user
비밀번호가 포함된 auth.log az'의 현재 문제 입니다.
Oct 18 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): user_lookup: `/var/local/sudopass/passwd.db' 데이터베이스를 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.
10월 18일 12:07:43 az-GlAdOS-mk11-m sudo: az: PAM 인증 오류: TTY=pts/4; user=root; 빈/나노 /etc/pam.d/sudo`
답변1
targetpw
의 옵션을 사용하면 sudoers
sudo가 자신의 비밀번호를 묻지 않고 대신 명령을 실행하려는 사용자의 비밀번호를 묻게 됩니다(대부분의 경우 root
). 그런 다음 자신의 사용자와 사용자 계정에 대해 root
서로 다른 비밀번호를 사용할 수 있습니다.
sudoers 파일에서 다음 스니펫을 사용하여 이 동작을 전역적으로 활성화합니다( 를 사용하여 편집 visudo
).
Defaults targetpw
ALL ALL=(ALL) ALL
두 번째 줄은 시스템의 모든 사용자가 대상 사용자의 비밀번호를 알고 있으면 sudo를 사용할 수 있음을 의미합니다. 생략하는 경우 그룹 멤버십과 대상의 비밀번호를 구성해야 합니다. ( su
이 구성을 지원하지 않으므로 액세스 권한이 있는 경우 그룹 요구 사항을 피할 수 있습니다 .)
targetpw
특정 사용자나 그룹에만 지시어를 적용하는 두 가지 변형 중 하나를 사용할 수도 있습니다 .
Defaults:username targetpw
username ALL=(ALL) ALL
Defaults:%groupname targetpw
%groupname ALL=(ALL) ALL
(하다아니요ALL ALL=(ALL) ALL
다음 중 하나를 사용하는 경우 명시해 주세요 ! )
답변2
당신이 링크한 가이드는 5년 전의 가이드입니다. PAM은 더 이상 DES를 사용하지 않습니다. 비밀번호 해시를 생성하려면 다음을 사용해 보세요.
echo pass|mkpasswd -s -m sha-512