58 lines
2.6 KiB
Python
58 lines
2.6 KiB
Python
# -*- mode: python; coding: utf-8 -*-
|
|
|
|
include("pam")
|
|
|
|
header("""
|
|
/etc/pam.d/common-password - password-related modules common to all services
|
|
|
|
This file is included from other service-specific PAM config files,
|
|
and should contain a list of modules that define the services to be
|
|
used to change user passwords. The default is pam_unix.
|
|
|
|
Explanation of pam_unix options:
|
|
|
|
The "sha512" option enables salted SHA512 passwords. Without this option,
|
|
the default is Unix crypt. Prior releases used the option "md5".
|
|
|
|
The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
|
|
login.defs.
|
|
|
|
See the pam_unix manpage for other options.
|
|
|
|
As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
|
|
To take advantage of this, it is recommended that you configure any
|
|
local modules either before or after the default block, and use
|
|
pam-auth-update to manage selection of other modules. See
|
|
pam-auth-update(8) for details.
|
|
""")
|
|
|
|
@# The "nullok" option allows users to change an empty password, else
|
|
@# empty passwords are treated as locked accounts.
|
|
@#
|
|
@# (Add `md5' after the module name to enable MD5 passwords)
|
|
@#
|
|
@# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
|
|
@# login.defs. Also the "min" and "max" options enforce the length of the
|
|
@# new password.
|
|
|
|
@# Alternate strength checking for password. Note that this
|
|
@# requires the libpam-cracklib package to be installed.
|
|
@# You will need to comment out the password line above and
|
|
@# uncomment the next two in order to use this.
|
|
@# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
|
|
|
|
@# here are the per-package modules (the "Primary" block)
|
|
if has('ldap'):
|
|
@password requisite pam_cracklib.so retry=3 minlen=9 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=1 reject_username gecoscheck enforce_for_root difok=0
|
|
@password [success=2 default=ignore] pam_unix.so nullok obscure sha512 min=4 max=8 md5 try_first_pass
|
|
print "password [success=1 default=ignore] %s minimum_uid=1000 ignore_unkown_user md5 try_first_pass" % pam_module
|
|
else:
|
|
@password [success=1 default=ignore] pam_unix.so nullok obscure sha512 min=4 max=8 md5 try_first_pass
|
|
@# here's the fallback if no module succeeds
|
|
@password requisite pam_deny.so
|
|
@# prime the stack with a positive return value if there isn't one already;
|
|
@# this avoids us returning an error just because nothing sets a success code
|
|
@# since the modules above will each just jump around
|
|
@password required pam_permit.so
|
|
@# and here are more per-package modules (the "Additional" block)
|
|
@# end of pam-auth-update config
|