diff options
Diffstat (limited to 'source/a/shadow/doinst.sh')
-rw-r--r-- | source/a/shadow/doinst.sh | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/source/a/shadow/doinst.sh b/source/a/shadow/doinst.sh index a7bf2ee4a..ce3e8116a 100644 --- a/source/a/shadow/doinst.sh +++ b/source/a/shadow/doinst.sh @@ -10,8 +10,29 @@ config() { # Otherwise, we leave the .new copy for the admin to consider... } +# First, check for PAM: +if [ -r etc/pam.d/login.new ]; then + # If there's an existing /etc/login.defs that contains an obsolete option + # intended for a non-pam system, rename it to back it up and allow the + # pam-enabled login.defs to be installed automatically: + if grep -q "^LASTLOG_ENAB" etc/login.defs 1> /dev/null 2> /dev/null ; then + mv etc/login.defs etc/login.defs.non-pam.backup + fi +else # Same thing, but in reverse for a non-pam system: + if ! grep -q "^LASTLOG_ENAB" etc/login.defs 1> /dev/null 2> /dev/null ; then + mv etc/login.defs etc/login.defs.pam.backup + fi +fi + config etc/default/useradd.new -config etc/login.access.new config etc/login.defs.new config var/log/faillog.new rm -f var/log/faillog.new +if [ -r etc/login.access.new ]; then + config etc/login.access.new +fi +for configfile in chage.new chfn.new chgpasswd.new chpasswd.new chsh.new groupadd.new groupdel.new groupmems.new groupmod.new login.new newusers.new other.new passwd.new postlogin.new su-l.new su.new system-auth.new useradd.new userdel.new usermod.new ; do + if [ -r etc/pam.d/$configfile ]; then + config etc/pam.d/$configfile + fi +done |