NAME

pwquality.conf - libpwquality 라이브러리 설정

SYNOPSIS

/etc/security/pwquality.conf

/etc/security/pwquality.conf.d/*.conf

DESCRIPTION

pwquality.conf를 통해 시스템 패스워드들에 대한 기본 패스워드 품질 요건을 설정할 수 있다. libpwquality 라이브러리 및 이 라이브러리를 이용해 패스워드를 검사하고 생성하는 유틸리티들에서 이 파일을 읽는다.

아주 단순한 이름 = 값 형식이며 "#" 문자로 시작하는 주석이 있을 수 있다. 행 처음과 끝, "=" 부호 앞뒤의 공백은 무시된다.

libpwquality 라이브러리에선 또한 /etc/security/pwquality.conf.d 디렉터리의 *.conf 파일들을 ASCII 정렬 순서로 먼저 읽는다. 파일을 파싱하는 순서에 따라 같은 설정의 앞선 설정 값을 덮어 쓴다.

OPTIONS

파일에서 가능한 옵션은 이렇다.

difok

이전 패스워드에는 없고 새 패스워드에만 있는 문자 개수. (기본값은 1.)

특수값 0은 새 패스워드와 이전 패스워드의 유사성 검사들을 모두 끈다. 단, 새 패스워드가 이전 패스워드와 똑같은지는 검사한다.

minlen
새 패스워드의 허용 가능한 최소 크기. (점수 동작이 꺼져 있지 않으면 1씩 더한 값. 기본적으로 꺼져 있다.) (pam_pwquality(8) 참고.) 6보다 작은 값으로 설정할 수 없다. (기본값은 8.)
dcredit
새 패스워드에서 숫자로 얻을 수 있는 최대 점수. 0보다 작다면, 새 패스워드에서 숫자 최소 개수. (기본값은 0.)
ucredit
새 패스워드에서 대문자로 얻을 수 있는 최대 점수. 0보다 작다면, 새 패스워드에서 대문자 최소 개수. (기본값은 0.)
lcredit
새 패스워드에서 소문자로 얻을 수 있는 최대 점수. 0보다 작다면, 새 패스워드에서 소문자 최소 개수. (기본값은 0.)
ocredit
새 패스워드에서 기타 문자로 얻을 수 있는 최대 점수. 0보다 작다면, 새 패스워드에서 기타 문자 최소 개수. (기본값은 0.)
minclass
새 패스워드에 있어야 하는 문자 종류(숫자, 대문자, 소문자, 기타) 최소 가짓수. (기본값은 0.)
maxrepeat
새 패스워드에서 연달아 나오는 같은 문자의 최대 개수. 값이 0이면 검사를 하지 않는다. (기본값은 0.)
maxsequence
새 패스워드에서 단조 변화하는 문자열의 최대 길이. 기본은 0으로, 이 검사를 하지 않는다는 뜻이다. '12345'나 'fedcb'가 그런 열의 예다. 참고로 그런 열이 패스워드의 일부에 불과하지 않는 한 그런 패스워드 대부분은 단순성 검사도 통과하지 못한다.
maxclassrepeat
새 패스워드에서 연달아 나오는 같은 종류 문자의 최대 개수. 값이 0이면 검사를 하지 않는다. (기본값은 0.)
gecoscheck
0이 아니면 사용자 passwd(5) 항목의 GECOS 필드에 있는 3글자 넘는 단어가 새 패스워드에 들어가 있는지 검사. 값이 0이면 검사를 하지 않는다. (기본값은 0.)
dictcheck
0이 아니면 (다소 변경한) 패스워드가 사전의 단어와 일치하는지 검사. 현재 cracklib 라이브러리를 이용해 사전 검사를 수행한다. (기본값은 1.)
usercheck=N
0이 아니면 (다소 변경한) 패스워드에 사용자 이름이 어떤 형태로 포함돼 있는지 검사. 사용자 이름이 3글자보다 짧으면 수행하지 않는다. (기본값은 1.)
usersubstr=N
(usercheck의 최소 길이로 인한) 3보다 크면 패스워드에 최소 N 글자인 사용자 이름 하위문자열이 어떤 형태로 포함돼 있는지 검사. (기본값은 0.)
enforcing=N
0이 아니면 검사에 실패한 경우 패스워드를 거부한다. 아니면 경고만 찍는다. 이 설정은 pam_pwquality 모듈, 그리고 이 설정에 따라 동작을 바꾸기로 한 응용에만 적용된다. pwmake(1)pwscore(1)에는 영향을 주지 않는다. (기본값은 1.)
badwords
패스워드에 포함돼선 안 되는 단어들의 공백 구분 목록. cracklib 사전 검사에 더해서 검사하는 단어들이다. 응용에서 이 설정을 이용해 아직 만들지 않은 사용자 계정에 대한 gecos 검사를 흉내낼 수도 있다.
dictpath
cracklib 사전들의 경로. 기본적으로 cracklib 기본값을 쓴다.
retry=N
사용자에게 최대 N 번 물어본 다음 오류를 반환한다. 기본은 1번이다.
enforce_for_root
패스워드를 바꾸려고 하는 사용자가 root인 경우에도 검사 실패 시 오류를 반환한다. 기본적으로 이 옵션이 꺼져 있는데, 실패한 검사에 대한 메시지는 찍지만 어쨌든 root는 패스워드를 바꿀 수 있다는 뜻이다. 참고로 root에게는 이전 패스워드를 묻지 않으므로 이전 패스워드와 새 패스워드를 비교하는 검사를 수행하지 않는다.
local_users_only
/etc/passwd 파일에 없는 사용자에 대해선 패스워드 품질을 검사하지 않는다. 그래도 스택 후속 모듈에서 use_authtok 옵션을 쓸 수 있도록 패스워드를 묻기는 한다. 기본적으로 이 옵션이 꺼져 있다.

SEE ALSO

pwscore(1), pwmake(1), pam_pwquality(8)

AUTHORS

Tomas Mraz tmraz@redhat.com


2020-08-03