
sudo apt install libpam-pwqualitylibpam-pwquality 패키지 설치 한다.sudo nano /etc/login.defslogin.degs 파일에서 비밀번호 만료 경고 설정 변경한다.PASS_MAX_DAYS 30PASS_MIN_DAYS 2PASS_WARN_AGE 7sudo nano /etc/pam.d/common-passwordcommon-password 파일에서 password requisite pam_pwquality.so retry=3 명령어를 찾아 비밀번호 복잡성, 품질 설정 변경한다password requisite pam_pwquality.so retry=3 minlen=10 ucredit=-1 lcredit=-1 dcredit=-1 maxrepeat=2 reject_username difok=7
password requisite pam_pwquality.so retry=3 minlen=10 ucredit=-1 lcredit=-1 dcredit=-1 maxrepeat=2 reject_username enforce_for_root
이렇게 2줄을 나눠서 변경, 추가 했다.
difok=7 명령어는 root 계정에 적용하지 않기때문에 일반사용자 정책과 root계정의 정책을 나눠 2줄로 작성 하게 됬다.
retry=3 : 비밀번호 입력 실패 시 다시 시도할 수 있는 횟수를 3회로 설정minlen=10 : 최소 10자 길이ucredit=-1 : 최소 한 개의 대문자 필요lcredit=-1 : 최소 한 개의 소문자 필요dcredit=-1 : 최소 한 개의 숫자 필요maxrepeat=2 : 동일한 문자가 3회 이상 연속으로 사용 불가reject_username : 비밀번호에 사용자 이름 포함 불가difok=7 : 이전 비밀번호와 7자 이상 달라야 함 (root 계정 제외)enforce_for_root : root 사용자에게도 정책 적용sudo passwd rootpasswd username위와 같은 명령어로 모든 계정의 비밀번호를 변경하면된다.
difok=7 명령어에는 enforce_for_root 명령어가 적용되지 않아 root계정의 비밀번호 변경, root 권한의 비밀번호 변경에는 적용되지 않는다.
만약, sudo passwd username으로 sudo로 root 권한을 주어 비밀번호를 변경하면 root 계정 비밀번호와 같은 정책만 적용받게 되어 difok=7의 값은 무시하게 된다.