/etc/pam.conf
: PAM 설정 파일/etc/pam.d
디렉토리: PAM 설정 파일들 있음chsh
를 보자.chsh
프로그램을 통해 성공적으로 인증하려면 사용자의 셸이 /etc/shells
에 있어야 한다는 것을 주석으로 이야기하고 있다.auth
: 사용자를 인증하는 작업account
: 사용자 계정 상태를 확인한다. (사용자가 어떤 일에 대한 권한이 주어 졌는지 확인)session
: 사용자의 현재 세션을 위해서만 어떤 것을 실행한다. (그날의 메시지를 보여주는 것과 같은 일이 여기에 해당한다.)password
: 사용자의 비밀번호나 기타 자격을 변경한다.required
: 이 규칙이 성공하면 PAM은 추가적으로 규칙들을 살피게된다. 이 규칙이 실패시 PAM은 추가 규칙들로 옮겨 가지만 추가된 규칙들의 최종 결과와 상관 없이 언제나 실패를 반환한다.sufficient
: 이 규칙이 성공하면 인증은 성공하고 PAM은 더이상 규칙들을 보려고 할 필요가 없다. 이 규칙이 실패 시, PAM은 다른 규칙들로 옮겨간다.requisite
: 이 규칙이 성공하면 PAM은 추가적으로 규칙들을 살피게된다. 실패한다면 인증이 성공하지 못한 것이고 PAM은 더이상 규칙들을 살펴볼 필요가 없게된다.pam_shells.so
: pam_shells.so
모듈은 사용자의 현재 셸이/etc/shells
에 들어가 있는지를 확인한다.pam_unix.so
: auth
기능을 실행할 때 비밀번호를 확인한다. password
기능을 실행할 때는 비밀번호를 '지정'한다.pam_rootok.so
: 모듈은 루트 유저가 인증하려고 하는 당사자인지 확인한다.pam_deny.so
: 항상 실패한다. 제어인수가 required
라면, PAM은 위 PAM 설정 프로그램 자체를 실패로 보고한다. 시도할 만한 것이 더이상 남아 있지 않을 때는 이것이 디폴트가 된다.@include
구문은 '전체 설정 파일을 로딩'한다. 또한 특정 기능에 대한 설정만을 로딩하려면 제어 인수를 사용할 수 있다.auth sufficient pam_unix.so nullok
nullok
인수는 사용자가 비밀번호를 갖고 있지 않을 수 있다는 의미이다. (디폴트는 사요자가 비밀번호를 갖고 있지 않으면 실패)$ man -k pam_
$ locate unix_pam.so
/etc/pam.d/other
설정 파일은 디폴트 설정 파일이다. 자체적으로 설정 파일이 없는 애플리케이션을 위한 것/etc/security
의 추가 파일들에 접근할 수 있다.Shadow
, /etc/login.defs
/etc/login.defs
: 기존의 Shadow 비밀번호를 위한 설정 파일이다. 이 파일은 Shadow 비밀번호 파일을 위해 사용된 암호화 알고리즘에 대한 정보를 담고 있다./etc/login.defs
의 암호화 알고리즘을 일치 시켜야한다.auth
기능 (비밀번호 검증)과 password
(비밀번호 설정) 이다.$ grep password.*unix /etc/pam.d/*
일치하는 라인들은 'pam_unix.so'를 포함하고 있을 것이며 다음과 같은 형식이다.
password sufficient pam_unix.so obscure sha512
obscure
와 sha512
는 비밀번호를 설정할 때 PAM이 해야 할 일을 알려주고 있다.SHA512
알고리즘을 사용한다.auth
기능의 경우 pam_unix.so
에 대한 암호화 인수가 존재하지 않는다. pam_unix.so
는 알고리즘을 단순히 추측하려는 시도를 하는 것으로 알려져 있다. 보통 어떤 것이든 효과가 나타날 때까지, 혹은 시도할 것이 남아 있지 않을 때까지 막대한 양의 작업을 하도록 libcrypt
라이브러리에 요구한다. 그렇기 때문에 검증에 관한 암호화 알고리즘에 대해 신경 쓸 필요가 없다.