RHEL 6.x 기준, 계정의 비밀번호 변경 시 복잡도 제한을 두는 방법이다.
root를 제외한 계정에게 해당되며, root는 적용 받지 않는다.
[root@Sample-local ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
#password requisite pam_cracklib.so try_first_pass retry=3 type=
password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 ucredit=-1 dcredit=-1 ocredit=-1
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
설명
password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
retry=3 : password 변경 때 3번 틀리면 변경 실패
minlen=8 : 최소 8자리 이상의 문자
lcredit=-1 : 최소 1개 이상의 소문자 포함
ucredit=-1 : 최소 1개 이상의 대문자 포함
dcredit=-1 : 최소 1개 이상의 숫자 포함
ocredit=-1 : 최소 1개 이상의 특수문자 포함
* 만약 최소 3개 이상의 특수문자를 포함하게 하려면 ocredit=-3 으로 설정한다.
참고로 아래와 같은 적용 방법은 HP-UX에 적용 가능한 방법이다.
$ cat /etc/default/security
~~ snip ~~
PASS_MIN_LOWER_CASE_CHARS 1 # 소문자 최소 포함 수
PASSWORD_MIN_UPPER_CASE_CHAR 1 # 대문자 최소 포함 수
PASS_MIN_DIGIT_CHARS 1 # 숫자 최소 포함 수
PASS_MIN_SPECIAL_CHARS 1 # 특수문자 최소 포함 수