Here’s how we did it, in broad terms – we’re using password policy (ppolicy) too. We query LDAP for pwdMaxAge for password policy we’re addressing (this is in seconds). Then we subtract two weeks from it (for two weeks’ worth of warning – our script runs once a week) … and then capture the date/time that many seconds ago (for easy comparing when looping through accounts) … in the same format the pwdChangedTime (and createTimestamp) are stored in. Example of above in bash (vars LDAPSEARCH, LDAPBIND, Policy being set previously): pwdMaxAge=$($LDAPSEARCH $LDAPBIND -b $Policy pwdMaxAge -LLL | grep ^pwdMaxAge | awk ‘{print $2}’) twoweeks=$((14*24*60*60)) pwdWarnAgeSeconds=$((pwdMaxAge-$twoweeks)) pwdCompareAge=$(date -d “$pwdWarnAgeSeconds seconds ago” +%Y%m%d000000) Of course, that be one-lined, but obfuscated code is lame – especially in a work environment. pwdCompareAge=$(date -d “$(($($LDAPSEARCH $LDAPBIND -b $Policy pwdMaxAge -LLL | grep ^pwdMaxAge | awk ‘{print $2}’)- $((14*24*60*60)))) seconds ago” +%Y%m%d000000) (That’s probably broken somewhere… blech). We then search for accounts using the password policy we’re addressing, and parse those accounts where pwdChangedTime (or, if it’s missing, createTimestamp) is less than pwdCompareAge (set above), and send them
an email with instructions on how to change the password. That’s how we did it at least. Good luck! - chris Chris Jacobs Systems Administrator, Technology Services Group Apollo Group | Apollo Marketing & Product Development | Aptimus, Inc. 1501 4th Ave | Suite 2500 | Seattle, WA 98101 direct 206.839.8245 | cell 206.601.3256 | Fax 206.644.0628 email:
chris.jacobs@apollogrp.edu From: openldap-technical-bounces@OpenLDAP.org [mailto:openldap-technical-bounces@OpenLDAP.org]
On Behalf Of Kline, Sara Hey all, Our OpenLDAP environment is up and functional and is working great. I was asked if there is a way to have the server email users when their account password is about to expire. For instance, 7 days before expiration they get an email that
lets them know their password will expire on date x. Is there functionality within OpenLDAP to do this, or has anyone written a script that would do it? We are using the policy overlay to enforce the password policy. Sara Kline System Administrator Transaction Network Services, Inc 4501 Intelco Loop, Lacey WA 98503 Wk: (360) 493-6736 Cell: (360) 280-2495 This e-mail message is for the sole use of the intended recipient(s)and may This message is private and confidential. If you have received it in error, please notify the sender and remove it from your system. |