From: Peter Palfrader Date: Thu, 22 May 2008 20:41:25 +0000 (+0200) Subject: * When we lock accounts, set shadowExpire to 1. shadowExpire X-Git-Tag: userdir-ldap-0.3.30 X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=commitdiff_plain;h=312577e396c70978c657692329e3fb004c8efddf * When we lock accounts, set shadowExpire to 1. shadowExpire is "days since Jan 1, 1970 that account is disabled". * Properly capitalize shadowInactive and shadowExpire attributes in ud-info and ud-generate. * Add copyright statements to ud-info from bzr log. --- diff --git a/debian/changelog b/debian/changelog index 362d7a0..b717ecb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,14 @@ -userdir-ldap (0.3.XX) Xnstable; urgency=low +userdir-ldap (0.3.30) unstable; urgency=low * When we touch usePassword in ud-info or ud-mailgate we now also update shadowLastChange. + * When we lock accounts, set shadowExpire to 1. shadowExpire + is "days since Jan 1, 1970 that account is disabled". + * Properly capitalize shadowInactive and shadowExpire attributes in + ud-info and ud-generate. + * Add copyright statements to ud-info from bzr log. - -- Peter Palfrader Thu, 22 May 2008 22:26:11 +0200 + -- Peter Palfrader Thu, 22 May 2008 22:39:10 +0200 userdir-ldap (0.3.29) unstable; urgency=low diff --git a/ud-generate b/ud-generate index 773b746..5e5aecf 100755 --- a/ud-generate +++ b/ud-generate @@ -183,12 +183,12 @@ def GenShadow(l,File): or GetAttr(x,"userPassword").startswith("!"): ShadowExpire = '1' else: - ShadowExpire = GetAttr(x,"shadowexpire") + ShadowExpire = GetAttr(x,"shadowExpire") Line = "%s:%s:%s:%s:%s:%s:%s:%s:" % (GetAttr(x,"uid"),\ Pass,GetAttr(x,"shadowLastChange"),\ GetAttr(x,"shadowMin"),GetAttr(x,"shadowMax"),\ - GetAttr(x,"shadowWarning"),GetAttr(x,"shadowinactive"),\ + GetAttr(x,"shadowWarning"),GetAttr(x,"shadowInactive"),\ ShadowExpire); Line = Sanitize(Line) + "\n"; F.write("0%u %s" % (I,Line)); @@ -870,8 +870,8 @@ for x in Attrs: PasswdAttrs = l.search_s(BaseDn,ldap.SCOPE_ONELEVEL,"uid=*",\ ["uid","uidNumber","gidNumber","supplementaryGid",\ "gecos","loginShell","userPassword","shadowLastChange",\ - "shadowMin","shadowMax","shadowWarning","shadowinactive", - "shadowexpire","emailForward","latitude","longitude",\ + "shadowMin","shadowMax","shadowWarning","shadowInactive", + "shadowExpire","emailForward","latitude","longitude",\ "allowedHost","sshRSAAuthKey","dnsZoneEntry","cn","sn",\ "keyFingerPrint","privateSub","mailDisableMessage",\ "mailGreylisting","mailCallout","mailRBL","mailRHSBL",\ diff --git a/ud-info b/ud-info index 7000ce9..d099c46 100755 --- a/ud-info +++ b/ud-info @@ -17,6 +17,28 @@ # -r Enable 'root' functions, do this if your uid has access to # restricted variables. +# Copyright (c) 1999-2001 Jason Gunthorpe +# Copyright (c) 2004-2005,7 Joey Schulze +# Copyright (c) 2001-2006 Ryan Murray +# Copyright (c) 2008 Peter Palfrader +# Copyright (c) 2008 Martin Zobel-Helas +# Copyright (c) 2008 Marc 'HE' Brockschmidt +# Copyright (c) 2008 Mark Hymers +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + import time, os, pwd, sys, getopt, ldap, crypt, readline, copy; from userdir_ldap import *; @@ -106,8 +128,8 @@ def PrintShadow(Attrs): MinDays = int(GetAttr(Attrs,"shadowMin","0")); MaxDays = int(GetAttr(Attrs,"shadowMax","0")); WarnDays = int(GetAttr(Attrs,"shadowWarning","0")); - InactDays = int(GetAttr(Attrs,"shadowinactive","0")); - Expire = int(GetAttr(Attrs,"shadowexpire","0")); + InactDays = int(GetAttr(Attrs,"shadowInactive","0")); + Expire = int(GetAttr(Attrs,"shadowExpire","0")); print "%-24s:" % ("Password last changed"), print time.strftime("%a %d/%m/%Y %Z",time.localtime(Changed*24*60*60)); @@ -417,10 +439,12 @@ while(1): l.modify_s(UserDn,[ (ldap.MOD_REPLACE,"userPassword","{crypt}*LK*"), (ldap.MOD_REPLACE,"mailDisableMessage","account locked"), - (ldap.MOD_REPLACE,"shadowLastChange",shadowLast)]); + (ldap.MOD_REPLACE,"shadowLastChange",shadowLast), + (ldap.MOD_REPLACE,"shadowExpire","1")]); Attrs[0][1]["userPassword"] = ["{crypt}*LK*"]; Attrs[0][1]["mailDisableMessage"] = ["account locked"]; Attrs[0][1]["shadowLastChange"] = [shadowLast]; + Attrs[0][1]["shadowExpire"] = ["1"]; continue; # Handle changing an arbitary value