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