Provided by: passwdqc_2.0.3-2_amd64 bug

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.

FORMAT

       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=72)  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.

       wordlist=FILE
               Deny  passwords  that  are based on lines of the tiny external text FILE, which can reasonably be
               e.g. a list of a few thousand common passwords.  Common dictionary words may also  reasonably  be
               included,  especially in a local language other than English, or longer yet common English words.
               (passwdqc includes a list of a few thousand common English words of lengths from 3 to 6 built in.
               Any word list possibly specified with this option is used in addition to the built-in word list.)

               Substring matching and discounting will be used if the match setting above is  non-zero.   Please
               note that this is very inefficient, and isn't to be used with large wordlists.

       denylist=FILE
               Deny  passwords  or passphrases directly appearing in the tiny external text FILE.  That file can
               reasonably be e.g. a list of common passwords if only a relaxed policy is  desired  and  stricter
               checks  are  thus  disabled  (using  their separate options).  Such policy would only be somewhat
               effective against online/remote attacks, but not against offline attacks on hashed passwords.

       filter=FILE
               Deny passwords or passphrases directly appearing in a maybe huge binary filter FILE created  with
               pwqfilter.   This  is  very efficient, needing at most two random disk reads per query.  A filter
               created from millions of leaked passwords can reasonably be  used  on  top  of  passwdqc's  other
               checks  to  further  reduce the number of passing yet weak passwords without causing unreasonable
               inconvenience (as e.g. higher minimum lengths and character set requirements could).

       random=N[,only]
               (default: random=47) The size of randomly-generated passphrases in bits (24  to  136),  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 is like everyone for all  PAM  services
               except  chpasswd  and passwd.  For these two PAM services users 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.

       noaudit
               If  audit  is  enabled  at build time, the PAM module logs audit events once user tries to change
               their credentials.  This option disables that audit logging.

FILES

       /etc/passwdqc.conf  (not  read  unless   this   suggested   file   location   is   specified   with   the
       config=/etc/passwdqc.conf option).

SEE ALSO

       getpwnam(3), libpasswdqc(3), pam_passwdqc(8).

       https://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.

Openwall Project                                 March 10, 2021                                 PASSWDQC.CONF(5)