6.27. pam_securetty - root 로그인을 특수 장치들로 제한

pam_securetty.so [ debug ]

6.27.1. 설명

pam_securetty는 securetty 파일에 지정된 "안전한" tty로 사용자가 로그인할 때만 root 로그인을 허용하는 PAM 모듈이다. pam_securetty에선 먼저 /etc/securetty가 존재하는지 확인한다. 그 파일이 없고 vendordir를 지원하게 빌드돼 있으면 %vendordir%/securetty를 쓰게 된다. securetty 파일이 일반 파일이고 전체 쓰기 가능이 아니라는 것도 확인한다. pam_securetty는 커널 명령행의 console= 스위치에 지정된 tty, 그리고 /sys/class/tty/console/active에 있는 tty들에서도 root 로그인을 허용한다.

이 모듈은 root 외의 사용자에겐 아무 영향이 없으며 응용에서 PAM_TTY 항목을 올바로 채워 줘야 한다.

표준 용법을 위해선 sufficient 인증 방법들 앞에 required 인증 방법으로 나열해야 한다.

6.27.2. 옵션

debug

디버그 정보 찍기.

noconsole

securetty 파일에도 지정돼 있지 않으면 커널 명령행이나 sys 파일에 지정된 커널 콘솔에서의 root 로그인을 자동 허용하지 않기.

6.27.3. 제공하는 모듈 종류

auth 모듈 타입만 제공한다.

6.27.4. 반환 값

PAM_SUCCESS

사용자가 인증 과정을 계속 진행할 수 있다. 사용자가 root가 아니거나, root 사용자가 허용 가능한 장치에서 로그인을 시도하고 있다.

PAM_AUTH_ERR

인증이 거절되었다. root가 허용 가능하지 않은 장치를 통해 로그인을 시도하고 있거나, securetty 파일이 전체 쓰기 가능이거나 일반 파일이 아니다.

PAM_BUF_ERR

메모리 버퍼 오류.

PAM_CONV_ERR

응용에서 제공한 대화 함수에서 사용자명을 얻는 데 실패했다.

PAM_INCOMPLETE

응용에서 제공한 대화 함수에서 PAM_CONV_AGAIN을 반환했다.

PAM_SERVICE_ERR

사용자 이름이나 tty를 알아내려 하는 과정에 오류가 발생했거나, securetty 파일을 열지 못했다.

PAM_USER_UNKNOWN

/etc/passwd 파일에서 사용자 이름을 찾아서 사용자의 UID가 0인지 확인하지 못했다. 따라서 모듈 동작 결과를 무시한다.

6.27.5. 예시

auth  required  pam_securetty.so
auth  required  pam_unix.so
      

6.27.6. 작성자

Elliot Lee <sopwith@cuc.edu>가 pam_securetty를 작성했다.