NAME¶
passwdqc.conf
—
libpasswdqc configuration file
DESCRIPTION¶
libpasswdqc is a simple password strength checking library. In addition to
checking regular passwords, it offers support for passphrases and can provide
randomly generated ones. A
passwdqc.conf
configuration file may be used to override default libpasswdqc settings.
A
passwdqc.conf
file consists of 0 or more
lines of the following format:
option=value
Empty lines and lines beginning with “
#
”
are ignored. Whitespace characters between the
option,
“
=
”, and
value are not allowed.
DIRECTIVE OPTIONS¶
config
=FILE
- Load the specified configuration FILE in
the
passwdqc.conf
format. This file may
define any options described in this manual, including load of yet another
configuration file, but loops are not allowed.
PASSWORD QUALITY CONTROL OPTIONS¶
min
=N0,N1,N2,N3,N4
- (default: min=disabled,24,11,8,7) The minimum allowed password lengths
for different kinds of passwords/passphrases. The keyword
disabled
can be used to disallow
passwords of a given kind regardless of their length. Each subsequent
number is required to be no larger than the preceding one.
N0 is used for passwords consisting of
characters from one character class only. The character classes are:
digits, lower-case letters, upper-case letters, and other characters.
There is also a special class for non-ASCII
characters, which could not be classified, but are assumed to be
non-digits.
N1 is used for passwords consisting of
characters from two character classes that do not meet the requirements
for a passphrase.
N2 is used for passphrases. Note that
besides meeting this length requirement, a passphrase must also consist of
a sufficient number of words (see the
passphrase
option below).
N3 and N4
are used for passwords consisting of characters from three and four
character classes, respectively.
When calculating the number of character classes, upper-case letters used as
the first character and digits used as the last character of a password
are not counted.
In addition to being sufficiently long, passwords are required to contain
enough different characters for the character classes and the minimum
length they have been checked against.
max
=N
- (default:
max
=40) The maximum allowed
password length. This can be used to prevent users from setting passwords
that may be too long for some system services. The value 8 is treated
specially: if max
is set to 8,
passwords longer than 8 characters will not be rejected, but will be
truncated to 8 characters for the strength checks and the user will be
warned. This is to be used with the traditional DES-based password hashes,
which truncate the password at 8 characters.
It is important that you do set max
=8 if
you are using the traditional hashes, or some weak passwords will pass the
checks.
passphrase
=N
- (default:
passphrase
=3) The number of
words required for a passphrase, or 0 to disable the support for
user-chosen passphrases.
match
=N
- (default:
match
=4) The length of common
substring required to conclude that a password is at least partially based
on information found in a character string, or 0 to disable the substring
search. Note that the password will not be rejected once a weak substring
is found; it will instead be subjected to the usual strength requirements
with the weak substring partially discounted.
The substring search is case-insensitive and is able to detect and remove a
common substring spelled backwards.
similar
=permit
|deny
- (default:
similar
=deny
)
Whether a new password is allowed to be similar to the old one. The
passwords are considered to be similar when there is a sufficiently long
common substring and the new password with the substring partially
discounted would be weak.
random
=N[,only
]
- (default:
random
=47) The size of
randomly-generated passphrases in bits (24 to 85), or 0 to disable this
feature. Any passphrase that contains the offered randomly-generated
string will be allowed regardless of other possible restrictions.
The only
modifier can be used to disallow
user-chosen passwords.
PAM MODULE OPTIONS¶
enforce
=none
|users
|everyone
- (default:
enforce
=everyone
)
The PAM module can be configured to warn of weak passwords only, but not
actually enforce strong passwords. The
users
setting will enforce strong
passwords for invocations by non-root users only.
non-unix
- Normally, the PAM module uses getpwnam(3) to
obtain the user's personal login information and use that during the
password strength checks. This behavior can be disabled with the
non-unix
option.
retry
=N
- (default:
retry
=3) The number of times
the PAM module will ask for a new password if the user fails to provide a
sufficiently strong password and enter it twice the first time.
ask_oldauthtok
[=update
]
- Ask for the old password as well. Normally, the PAM module leaves this
task for subsequent modules. With no argument, the
ask_oldauthtok
option will cause the
PAM module to ask for the old password during the preliminary check phase.
If the ask_oldauthtok
option is
specified with the update
argument, the
PAM module will do that during the update phase.
check_oldauthtok
- This tells the PAM module to validate the old password before giving a new
password prompt. Normally, this task is left for subsequent modules.
The primary use for this option is when
ask_oldauthtok
=update
is also specified, in which case no other module gets a chance to ask for
and validate the password. Of course, this will only work with
UNIX passwords.
use_first_pass
,
use_authtok
- Use the new password obtained by other modules stacked before the PAM
module. This disables user interaction within the PAM module. The only
difference between
use_first_pass
and
use_authtok
is that the former is
incompatible with ask_oldauthtok
.
FILES¶
/etc/passwdqc.conf.
SEE ALSO¶
getpwnam(3),
pam_passwdqc(8).
http://www.openwall.com/passwdqc/
AUTHORS¶
The pam_passwdqc module was written for Openwall GNU/*/Linux by
Solar Designer ⟨solar at
openwall.com⟩. This manual page was derived from
pam_passwdqc(8). The latter, derived from the
author's documentation, was written for the
FreeBSD
Project by ThinkSec AS and NAI Labs, the Security Research Division of Network
Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
(“CBOSS”), as part of the DARPA CHATS research program.