
/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 라이브러리에 요구한다. 그렇기 때문에 검증에 관한 암호화 알고리즘에 대해 신경 쓸 필요가 없다.