crans_bcfg2/Python/etc/pam.d/common-password

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