LOGIN.CONF(5)

명칭
login.conf - 로그인크라스케이파비리티데이타베이스

서식
/etc/login.conf, ~/.login_conf

해설
login.conf 에는, 로그인 클래스에 대한 다양한 속성이나 케이파비리티가 포함되어 있습니다. 로그인 클래스 (유저 어카운트 데이타베이스이다 /etc/master.passwd 의 각각의 행에 대해 자유롭게 설정할 수 있는 주석)은, 세션의 어카운팅이나 리소스 제한, 유저 환경 설정등을 결정합니다. 로그인 클래스는 시스템내의 다양한 프로그램으로부터 이용되어 유저의 로그인 환경을 설정하는 것 외에 폴리시, 어카운팅 및 관리상의 제한을 설정합니다. 로그인 클래스는 또, 시스템이나 이용 가능한 여러 가지의 인증 기구에 대한 유저 인증 수단을 제공합니다.

시스템의 유자크라스케이파비리티데이타베이스이다 /etc/login.conf 안의 "default" 라고 하는 특별한 레코드는, /etc/master.passwd 안에 유효한 로그인 클래스를 가지지 않는 root 이외의 모든 유저에게 따라서 자동적으로 사용됩니다. 유효한 로그인 클래스를 가지지 않는 uid 가 0 의 유저는,"root" 레코드가 존재하는 경우는 그 레코드가, 존재하지 않는 경우는 "default" 레코드가 로그인 클래스로서 사용됩니다.

FreeBSD 냄새나서는, 개개의 유저는 .login_conf 그렇다고 하는 파일을 홈 디렉토리에 작성할 수가 있습니다. 이 파일은 (/etc/login.conf 와) 같은 포맷으로, 레코드 id 가 "me" 인 1 엔트리만으로 구성됩니다. 만약 .login.conf 가 존재한다면, 이 파일은 login(1) 에 의해 사용되어 시스템의 로그인케이파비리티데이타베이스에 의해 지정된 유저 환경 설정을 덧쓰기 설정합니다. 그 때, 로그인케이파비리티의 부분집합, 전형적으로는 승인이나 리소스 제한 그리고 어카운팅을 포함하지 않는 걸 만이 덧쓰기됩니다.

쿠라스케이파비리티데이타베이스의 레코드는, 코론으로 단락지어졌다 몇개의 필드로부터 구성되어 있습니다. 각 레코드의 최초의 필드는, 레코드를 특정하기 위한 1 개(살) 또는 복수의 이름으로, 그것들은 '|'캐릭터로 단락지어집니다. 그 최초의 이름이, 가장 일반화된 단축 명칭입니다. 마지막 이름은, 로그인케이파비리티엔트리를 보다 알기 쉽게 설명했다 긴 이름이어야 하는 것으로, 다른 이름은 그 동의어입니다. 모든 이름은 소문자 또한 공백을 포함하지 않게 해야 합니다만, 마지막 이름은 가독성을 고려해, 대문자나 공백을 포함하고 있어도 괜찮을 것입니다.

케이파비리티데이타베이스의 포맷에 대한 상세한 설명은 getcap(3) (을)를 참조해 주세요.

케이파비리티
데이타베이스내의 각각의 행에 포함되는 필드는, getcap(3) 의 관습에 따라, 불형, 캐릭터 라인형 ‘=’ 수치형 ‘#’ (이)가 있습니다. 그렇지만 수치 데이터의 곳은, 수치형이 거부되고 캐릭터 라인형이 받아들여지는 일이 있거나 양쪽 모두의 서식이 받아들여지는 일도 있습니다. 값은 다음의 카테고리로 분류됩니다.

bool
    이름이 존재하는 경우, 불리언 값은 실로 됩니다. 그렇지 않은 경우, 가짜가 됩니다.

file
    데이터 파일에의 패스명

program
    실행 가능 파일에의 패스명

list
    콤마나 공백에서 단락지어진 값의 리스트 (또는 값의 조)

path
    보통 csh 의 관습에 따른, 공백이나 콤마로 단락지어진 패스명의 리스트 (선두의 유저명을 수반하는/따르지 않는 치르다는 홈 디렉토리에 전개되는 등 )

number
    10 진수 (디폴트), 16 진수 (0x 로 시작된다), 또는 8 진수 (0 으로 시작된다)의 수치형의 값. 수치형의 경우, 설정할 수 있는 값은 1 개 뿐입니다. 수치형은 캐릭터 라인형의 포맷에서도 지정할 수 있는 경우가 있습니다 (케이파비리티타그 '#'대신에 '='로 값이 단락지어지고 있는 등). 어느 방법이 사용되었을 경우에서도, 데이타베이스중의 모든 행은 수정하고 싶은 행의 값을 정확하게 덧쓰기하기 위해서, 같은 방법을 이용하지 않으면 안됩니다.

size
    사이즈를 나타내는 캐릭터. 단위의 디폴트의 해석은 바이트로, 사픽스에 따라서 다른 단위를 지정할 수 있습니다.
    b   512 바이트 블록의 명시적인 지정
    k   킬로바이트의 지정 (1024 바이트)
    m   1 메가바이트의 승수의 지정 (1048576 바이트)
    g   기가바이트 단위의 지정. 그리고
    t   테라바이트의 기술.
    사이즈의 값은 수치이며, 사픽스의 대문자 소문자는 중요하지는 않습니다. 연속한 값은 더합니다.

time
    시간의 기간. 디폴트의 단위는 초. 프레픽스에 의해 다른 단위를 지정할 수 있습니다.
    y   1 년을 365 일에 센 연수의 지정
    w   주의 수의 지정
    d   날짜
    h   시간수
    m   분수
    s   초수
    연속한 값은 더합니다. 예를 들어 2 시간 40 분은 9600 s, 160m 또는 2h40m 로 표현할 수가 있습니다.

특별한 tc=value 표기를 사용하는 것으로써, 통상의 약속한 일의 형태인 케이파비리티엔트리의 보간이 가능합니다.

리소스 제한
명칭형 주해설
coredumpsize | size |  | 코어덤프 사이즈의 최대치 제한
cputime | time |  | CPU 사용 제한
datasize | size |  | 데이터 사이즈의 최대치 제한
filesize | size |  | 파일 사이즈의 최대치 제한
maxproc | number |  | 프로세스수의 최대치 제한
memorylocked | size |  | 코어메머리 락 가능량의 최대치 제한
memoryuse | size |  | 코어메머리 사용량의 최대치 제한
openfiles | number |  | 프로세스 마다 오픈할 수 있는 파일수의 최대치 제한
sbsize | size |  | 최대의 소켓 버퍼 사이즈
vmemoryuse | size |  | 프로세스 근처의 최대총 VM 사용량
stacksize | size |  | 스택 사이즈의 최대치 제한

이러한 리소스 제한 엔트리는, 실제로는 최대치와 현재의 제한치의 양쪽 모두를 지정합니다 ( getrlimit(2) (을)를 참조해 주세요). 보통은 현재의 제한치 (소프트 제한)가 사용됩니다만, 유저는 현재의 제한치를 최대 제한치 (하드 제한)까지 늘리는 것이 용서되고 있습니다. 최대 제한치와 현재의 제한치는 케이파비리티명에 각각 -max 및 -cur 를 추가하는 것에 의해 지정할 수 있습니다.

환경
명칭형 주해설
charset | string |  | $MM_CHARSET 환경 변수의 명시적인 설정치
hushlogin | bool | false | ~/.hushlogin 파일이 있는 경우와 같다
ignorenologin | bool | false | nologin 에 의해 로그인을 금지되지 않습니다
lang | string |  | $LANG 환경 변수를 지정한 값으로 설정합니다
manpath | path |  | 메뉴얼 페이지의 디폴트 검색 패스
nologin | file |  | 이 파일이 존재하는 경우, 파일의 내용이 화면에 표시되어 그 로그인 세션은 종료됩니다
path | path | /bin /usr/bin | 디폴트 명령 검색 패스
priority | number |  | 우선도 (nice) 레벨의 초기치
requirehome | bool | false | 로그인을 위해서(때문에) 유효한 홈 디렉토리가 필요
setenv | list |  | 콤마로 단락지어진 환경 변수와 그 설정치의 리스트
shell | prog |  | 패스워드 파일로 지정되어 있는 쉘보다 우선해 실행되는 세션 쉘. SHELL 환경 변수의 값은, 패스워드 파일로 지정되어 있는 것이 됩니다.
term | string |  | 다른 수단에 의해 결정할 수 없는 경우의 디폴트의 단말 타입
timezone | string |  | $TZ 환경 변수의 기본값
umask | number | 022 | umask 의 초기치. 계속되는 숫자가 8 진수라고 해석되도록(듯이), 항상 0 으로부터 시작합니다
welcome | file | /etc/motd | welcome message가 들어가 있는 파일

인증
명칭형 주해설
copyright | file |  | 추가의 저작권 정보를 포함한 파일
host.allow | list |  | 클래스내의 유저가 액세스 가능한 리모트 호스트 와일드 카드의 리스트
host.deny | list |  | 클래스내의 유저가 액세스 불가인 리모트 호스트 와일드 카드의 리스트
login_prompt | string |  |
login(1) 하지만 주는 로그인 prompt
minpasswordlen | number | 6 | 로컬 패스워드 캐릭터 라인장의 최소치
mixpasswordcase | bool | true |
모두 소문자의 패스워드가 입력되었을 경우, passwd(1) 하지만 유저에게 경고합니다
passwd_format | string | md5 | 신규 패스워드가 사용한다
암호 포맷. 유효한 값은 "md5", "des", "blf" 입니다. NIS 클라이언트가, FreeBSD (이)가 아닌 NIS 서버를 사용하는 경우, 아마 "des" 를 사용해야 하겠지요.
passwd_prompt | string |  |
login(1) 하지만 표시하는 패스워드 prompt
times.allow | list |  | 로그인이 용서되고 있는 시간대의 리스트
times.deny | list |  | 로그인이 용서되지 않는 시간대의 리스트
ttys.allow | list |  | 클래스내의 유저가 액세스에 사용할 수 있는 단말과 단말 그룹의 리스트
ttys.deny | list |  | 클래스내의 유저가 액세스에 사용 불가인 단말과 단말 그룹의 리스트

이러한 필드는, 로그인 인증 시스템 중(안)에서 passwd(1) (이)나, 그 외의 프로그램으로부터 사용될 예정입니다.

환경 변수를 설정하는 케이파비리티는, 그 중의 캐릭터 ‘~’ (와)과 ‘$’ 의 양쪽 모두가 스캔 되어 이것들은 각각 유저의 홈 디렉토리 및 유저명에 치환됩니다. 환경 변수중에 이러한 캐릭터를 그대로 포함하는 경우에는, 그 전에 backslash '\'를 붙여 이스케이프 합니다.

host.allow (와)과 host.deny 엔트리는 콤마로 단락지어진 리스트로, 시스템에의 원격 접근의 체크에 사용됩니다. 이것들은 호스트명이나 IP 주소 또는 그 양쪽 모두를 포함한 리스트로부터 되어, 그것들에 대해서 리모트 로그인의 체크를 합니다. 이 리스트의 각 항목은, 와일드 카드 일치용으로 쉘 프로그램이 사용하고 있는 것과 같은 서식의 와일드 카드를 포함할 수가 있습니다 (실장의 자세한 것은 fnmatch(3) (을)를 참조해 주세요). 호스트의 체크는, 리모트 시스템의 인터넷 주소 (와)과 (만약 유효하면) 호스트명의 양쪽 모두를 맞대어 행해집니다. 양쪽 모두의 리스트가 하늘일지도 깔고는 지정되어 있지 않은 경우, 모든 리모트 호스트 (으)로부터의 로그인은 허가됩니다. host.allow 가 1 개인가 그 이상의 호스트를 포함한 경우, 리스트중의 각 항목의 어떤 것인가에 매치 한 리모트 시스템만이 로그인이 용서됩니다. host.deny 가 1 개인가 그 이상의 호스트를 포함한 경우, 그 리스트의 어떤 것인가에 매치 한 호스트로부터의 로그인이 금지됩니다.

times.allow (와)과 times.deny 엔트리는 콤마로 단락지어진 기간의 리스트이며, 이 기간은 클래스내의 유저가 로그인이 용서됩니다. 이것들은 1 개 이상일의 코드 지정과 이것에 이어 24 시간표기의 개시시각과 종료시각을 하이픈 또는 데쉬로 단락지은 것으로서 표현됩니다. 예를 들어 MoThSa0200-1300 는, 월, 목, 토의 오전 2 시부터 오후 1 시로 해석됩니다. 이러한 시간 지정 리스트의 양쪽 모두가 하늘이었던 경우, 클래스내의 유저는 언제라도 액세스 가능하게 됩니다. times.allow 하지만 지정되어 있는 경우, 로그인은 지정된 기간만 허가됩니다. 만약 times.deny 하지만 지정되어 있는 경우, times.allow 중(안)에서 기간이 지정되어 있는지 어떤지에 관련되지 않고, 지정된 기간은 로그인할 수 없게 됩니다.

login(1) 하지만 강제하는 것은, 이러한 엔트리에 의해 허가된 기간내에 실제의 로그인이 행해지는 것 뿐이는 점에 주의해 주세요. 세션의 생존 기간에 관해서 한층 더 규제를 걸치려면 , 다른 demon를 준비해, 허가되고 있는 기간부터 허가되어 있지 않은 기간에의 천이를 감시할 필요가 있습니다.

ttys.allow (와)과 ttys.deny 엔트리는, 클래스내의 유저가 시스템에 액세스 하기 위해서 사용한다 콤마로 단락지어진 (/dev/ 프레픽스를 제외하다) 단말 디바이스와 단말 그룹 (ttygroup)의 리스트입니다 (ttygroup 의 자세한 것은 getttyent(3) (와)과 ttys(5) (을)를 참조해 주세요). 어느 쪽의 엔트리도 존재하지 않는 경우, 유저가 사용하는 로그인 디바이스의 선택에는 제한은 없습니다. ttys.allow 마셔 지정되어 있는 경우, 유저가 사용할 수 있는 디바이스는 지정된 그룹 또는 디바이스 리스트에만 제한됩니다. ttys.deny 마셔 지정되어 있는 경우, 유저는 지정된 디바이스나 디바이스 그룹을 사용할 수 없습니다. 양쪽 모두가 주어지고 있어 한편 어느쪽이나 하늘이 아닌 경우, 유저는 ttys.allow 그리고 지정되어 있어, ttys.deny 에서는 지정되어 있지 않은 디바이스군만 사용할 수 있습니다.

어카운트 제한
명칭형 주해설
accounted | bool | false | 이 클래스내의 전유저의
세션 시간 아카우운팅을 유효화
autodelete | time |  | 어카운트 실효 후 자동으로 삭제될 때까지의 시간
bootfull | bool | false | 세션 종료시의 「ttygroup 가 한 잔의 경우에게만 부트」전략을
유효하게 한다
daytime | time |  | 1 양지의 로그인 최대 시간
expireperiod | time |  | 기한 마감까지의 할당 시간
graceexpire | time |  | 실효한 어카운트의 유예 날짜
gracetime | time |  | 추가된, 유예 로그인 허가 시간
host.accounted | list |  | 로그인 세션이 어카운트 된다
리모트 호스트 와일드 카드의 리스트
host.exempt | list |  | 로그인 세션의 어카운팅
(을)를 면제된 리모트 호스트 와일드 카드의 리스트
idletime | time |  | 로그아웃까지의 최대 아이돌 시간
monthtime | time |  | 매월의 최대 로그인 시간
passwordtime | time |  | 다음번 패스워드 무효일을 지정하기 위해서
passwd(1) 하지만 사용
refreshtime | time |  | 어카운트의 리프레쉬 허가 시간
refreshperiod | str |  | 리프레쉬가 행해지는 빈도
sessiontime | time |  | 세션 마다의 최대 로그인 시간
sessionlimit | number |  | 모든 그룹에 대한 tty 상의
동시 최대 로그인수
ttys.accounted | list |  | 로그인어카운트가 유효한 tty 와 ttygroup 의 리스트
ttys.exempt | list |  | 로그인어카운트가 무효인 tty 와 ttygroup 의 리스트
warnexpire | time |  | 실효할 것 같은 어카운트에 대한 사전의 주의를
행하는 시간
warnpassword | time |  | 실효할 것 같은 패스워드에 대한 사전의
주의를 행하는 시간
warntime | time |  | 마감 시간이 될 것 같은 경우에 대한 사전의 주의를
행하는 시간
weektime | time |  | 1 주간 마다의 최대 로그인 시간

이러한 필드는, 유저의 로그인 액세스를 규제, 컨트롤, 기록한다 타임 어카운팅 시스템에 의해 사용됩니다.

ttys.accounted (와)과 ttys.exempt 필드는, 먼저 말했다 ttys.allow (와)과 ttys.deny (와)과 같은 방법으로 상태를 조작합니다. host.accounted (와)과 host.exempt 의 리스트도 같습니다.

관련 항목
cap_mkdb(1), login(1), getcap(3), getttyent(3), login_cap(3), login_class(3), passwd(5), ttys(5)