Your password complexity policy cannot be checked if no pluggable authentication module (PAM) is running in your system.
For Debian or Ubuntu, run the apt-get install libpam-cracklib command as the administrator to install a PAM.
A PAM is installed and running by default in CentOS, Fedora, and EulerOS.
A proper password complexity policy would be: the password must contain at least eight characters and must contain uppercase letters, lowercase letters, numbers, and special characters.
vi /etc/pam.d/system-auth
Example:
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 type=
Set dcredit, ucredit, lcredit, and ocredit to negative numbers.
Parameter |
Description |
Example |
---|---|---|
minlen |
Minimum length of a password. For example, if you want the minimum length to be eight, set the minlen value to 8. |
minlen=8 |
dcredit |
Number of digits A negative value (for example, -N) indicates the number (for example, N) of digits required in a password. A positive value indicates that there is no limit. |
dcredit=-1 |
ucredit |
Number of uppercase letters A negative value (for example, -N) indicates the number (for example, N) of uppercase letters required in a password. A positive value indicates that there is no limit. |
ucredit=-1 |
lcredit |
Number of lowercase letters A negative value (for example, -N) indicates the number (for example, N) of lowercase letters required in a password. A positive value indicates that there is no limit. |
lcredit=-1 |
ocredit |
Number of special characters A negative value (for example, -N) indicates the number (for example, N) of special characters required in a password. A positive value indicates that there is no limit. |
ocredit=-1 |
vi /etc/pam.d/common-password
Example:
password requisite pam_cracklib.so retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 difok=3