Update January 2023: the library pam_pwquality.so
has in many/most cases superceded the use of pam_cracklib.so
. pam_pwquality.so
should be backwards compatible with pam_cracklib
. See pam_pwquality.so man pages for usage details & examples.
Password complexity is enforced by the pam_cracklib
module.
In order to modify the password policy for your local machine, you will need to modify your /etc/pam.d/common-password
file.
From a terminal window (Ctrl+Alt+T), enter the following command:
sudo vi /etc/pam.d/common-password
Add the following line to the file (before pam_unix.so
or whichever PAM module is used primarily for authentication, as can be seen from examples in the manpage) and save the file:
password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
This statement implements the following password requirements:
dcredit
== digit
ucredit
== upper-case character
lcredit
==lower-case character
ocredit
== other character (special characters, including !
,
@
#
$
%
)
This should satisfy your requirements.
You could also use the variables minlength
and retries
to further restrict the password requirements.
Here is another good example of modifying a password policy in this manner would be placing the following line in the /etc/pam.d/common-password
file:
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
This entry will set a maximum of three attempts at getting an acceptable password with a 10-character minimum length.
This sets the requirement for users to have a minimum of three characters different from the last password.
This will also fulfill the requirement of having the password contain at least one each of digit, lower-case character, and upper-case characters.
See also this article on setting up stronger password policy rules in linux.
root
user is able to ignore the password requirements... Is it possible to enforce this for the root user too? – Stephen RC Jan 17 '13 at 22:33sudo
as well, so try:sudo passwd your_username
– Stephen RC Jan 18 '13 at 01:52pam_unix.so
. Options will be same of that too? – Akshay Mar 16 '17 at 05:57pam_pwquality.so
– Melroy van den Berg Jan 13 '23 at 00:54