6.13. pam_lastlog - 최근 로그인 시간 표시

pam_lastlog.so [ debug ] [ silent ] [ never ] [ nodate ] [ nohost ] [ noterm ] [ nowtmp ] [ noupdate ] [ showfailed ] [ inactive=<days> ] [ unlimited ]

6.13.1. 설명

pam_lastlog는 사용자의 최근 로그인에 대한 정보를 표시하는 PAM 모듈이다. 추가로 /var/log/lastlog 파일을 유지한다.

일부 응용에서는 이 기능을 자체적으로 수행할 수 있다. 그 경우에는 이 모듈이 필요치 않다.

/etc/login.defsLASTLOG_UID_MAX 옵션을 확인해서 사용자 ID가 그 값보다 크면 최근 로그인 기록을 갱신 및 표시하지 않는다. 그 옵션이 없거나 값이 유효하지 않으면 사용자 ID 제한을 두지 않는다.

auth나 account 단계에서 모듈이 호출되면 충분히 최근에 이용하지 않은 계정의 로그인이 불허된다. root가 막히는 일이 없도록 하기 위해 root 계정에는 검사를 수행하지 않는다. UID가 LASTLOG_UID_MAX 값보다 큰 사용자에도 수행하지 않는다.

6.13.2. 옵션

debug

디버그 정보 찍기.

silent

사용자에게 이전 로그인에 대해 알려 주지 않기. /var/log/lastlog 파일 갱신만 한다. 틀린 로그인 시도 표시에는 영향을 주지 않는다.

never

/var/log/lastlog 파일에 사용자에 대한 이전 항목이 없으면 환영 메시지에 사용자가 한 번도 로그인한 적이 없다고 표시하기.

nodate

최근 로그인 날짜를 표시하지 않기.

noterm

최근 로그인이 시도된 터미널 이름을 표시하지 않기.

nohost

최근 로그인이 어느 호스트로부터 시도됐는지 표시하지 않기.

nowtmp

wtmp 항목 갱신하지 않기.

noupdate

어떤 파일도 갱신하지 않기.

showfailed

btmp에서 얻은 로그인 시도 실패 횟수와 최근 실패한 시도 날짜 표시하기. nodate 지정 시 날짜를 표시하지 않는다.

inactive=<days>

이 옵션은 auth 내지 account 단계용이다. 마지막 로그인 후 지정한 수의 날이 지났으면 모듈에서 사용자를 차단하게 된다. 기본값은 90이다.

unlimited

fsize 제한이 있는 경우에 이 옵션으로 무시할 수 있다. UID 값이 커서 lastlog 파일이 커지게 되는 시스템에서 기록에 실패하는 걸 방지한다.

6.13.3. 제공하는 모듈 종류

authaccount 모듈 타입에서 충분히 최근에 로그인하지 않은 사용자를 차단하는 게 가능하다. 최근 로그인에 대한 정보 표시 및/또는 lastlog와 wtmp 파일 갱신을 위해 session 모듈 타입을 제공한다.

6.13.4. 반환 값

PAM_SUCCESS

성공적으로 동작했음.

PAM_SERVICE_ERR

서비스 모듈 내부 오류.

PAM_USER_UNKNOWN

알 수 없는 사용자.

PAM_AUTH_ERR

활동이 없었기 때문에 auth 내지 account 단계에서 사용자가 차단됐다.

PAM_IGNORE

auth 내지 account 단계에서 lastlog 파일을 읽는 중 오류가 발생해서 사용자의 활동이 없었는지를 판단할 수 없다.

6.13.5. 예시

/etc/pam.d/login에 다음 행을 추가해서 사용자의 최근 로그인 시간을 표시할 수 있다.

    session  required  pam_lastlog.so nowtmp
      

지난 50일 동안 로그인하지 않은 사용자를 거부하려면 다음 행을 쓸 수 있다.

    auth  required  pam_lastlog.so inactive=50
      

6.13.6. 작성자

Andrew G. Morgan <morgan@kernel.org>이 pam_lastlog를 작성했다.

Tomáš Mráz <tm@t8m.info>가 비활동 계정 잠그기를 추가했다.