pam_time.so
[
conffile=conf-file
] [
debug
] [
noaudit
]
pam_time 모듈은 사용자를 인증하는 게 아니라 시스템이나 특정 응용에 대한 접근을 특정 요일의 특정 시간으로, 또 여러 터미널 회선으로 제한한다. 사용자 이름, 하루 중의 시간, 요일, 요청 서비스, 요청을 하고 있는 터미널에 따라서 (개별) 사용자에게 접근을 거부하도록 구성할 수 있다.
시간/포트 접근 규칙을 가져오는 설정 파일은 기본적으로
/etc/security/time.conf
다.
conffile 옵션으로
다른 파일을 지정할 수 있다.
감사 지원을 포함해서 Linux-PAM이 컴파일돼 있으면 모듈에서 접근을 거부하는 경우 보고를 하게 된다.
pam_time 모듈은 사용자를 인증하는 게 아니라 시스템이나 특정 응용에 대한 접근을 특정 요일의 특정 시간으로, 또 여러 터미널 회선으로 제한한다. 사용자 이름, 하루 중의 시간, 요일, 요청 서비스, 요청을 하고 있는 터미널에 따라서 (개별) 사용자에게 접근을 거부하도록 구성할 수 있다.
이 모듈이 제대로 동작하려면 올바른 형식의
/etc/security/time.conf
파일이
있어야 한다. 공백은 무시되고 '\'(개행 이스케이프)로 행을 연장할
수 있다. '#' 다음 내용은 행이 끝날 때까지 무시된다.
행 문법은 다음과 같다.
services
;ttys
;users
;times
요컨데 각 규칙이 한 줄씩을 차지하며 개행 또는 주석 시작 '#'으로 끝이 난다. 필드 네 개가 세미콜론 ';'으로 구분돼 있다.
첫 번째 필드인 services
필드는
규칙이 적용되는 PAM 서비스 이름의 논리식이다.
두 번째 필드인 tty
필드는
이 규칙이 적용되는 터미널 이름의 논리식이다.
세 번째 필드인 users
필드는
이 규칙이 적용되는 사용자의 논리식, 또는 사용자 netgroup이다.
논리식이란 선택적으로 개별 토큰 앞에 '!'(논리 not)를 붙이고 '&'(논리 and)나 '|'(논리 or)로 이어 붙인 것이다.
이 항목들에서 단순 와일드카드 '*'를 한 번만 쓸 수 있다. netgroup에는 와일드카드나 논리 연산자를 쓸 수 없다.
times
필드를 이용해
규칙이 적용되는 시간을 지정한다. 날은 두 글자짜리 항목을
연달아 써서 지정한다. 예를 들어 MoTuSa는 월요일, 화요일,
토요일이다. 참고로 요일을 반복하면 해제되므로 MoMo는 아무 날도
지정하지 않은 것이고, MoWk는 월요일을 뺀 평일이다. 쓸 수 있는
두 글자 조합은 Mo Tu We Th Fr Sa Su Wk Wd Al이며, 끝의 둘은 각각
주말과 7일 전체다. 마지막으로 예를 들자면 AlFr는 금요일을 제외한
모든 요일을 뜻한다.
날/시간 범위 각각의 앞에 '!'를 붙여서 "~를 뺀 전체"를 나타낼 수 있다. 시간 범위 부분은 24시간제 HHMM 시간 둘을 하이픈으로 연결한 것이며 각각 시작 시간과 끝 시간을 나타낸다. (끝 시간이 시작 시간보다 작으면 다음 날에 적용되는 것으로 본다.)
규칙이 적용되려면 요청 프로세스가 services+ttys+users 모두를 만족시켜야 한다.
참고로 현재는 세션을 강제로 끝내는 데몬이 없다. 고칠 필요가 있다.
잘못된 형식의 규칙이 있으면 syslog(3)로 오류로 남긴다.
conffile=/path/to/time.conf
기본 파일 대신 사용할 time.conf 스타일 설정 파일을 나타낸다.
debug
syslog(3)로 약간의 디버그 정보를 찍는다.
noaudit
허가 안 된 시간의 로그인을 감사 서브시스템으로 알리지 않는다.
접근이 인가되었다.
관련 데이터를 모두 얻지 못했다.
메모리 버퍼 오류.
접근이 인가되지 않았다.
시스템에게 알지 못하는 사용자다.
다음은 /etc/security/time.conf
에
지정할 수 있는 예시 몇 가지다.
root를 제외한 모든 사용자에게 항상 콘솔 로그인 접근을 거부하기:
login ; tty* & !ttyp* ; !root ; !Al0000-2400
일과 시간 외에만 (PAM을 이용하게 설정된) 게임에 접근. 사용자 waster에는 규칙이 적용되지 않음:
games ; * ; !waster ; Wd0000-2400 | Wk1800-0800