Leo, Would you mind if I put this script on our wiki page (http://www.port389.org)?
Thanks, Mark On 11/03/2016 09:49 AM, Leo Pleiman wrote: > I put together this little script, run from cron, to email my users > when it's time to change their password. Feel free to use and chop up > if you like.. > > #!/usr/bin/perl > > > # Name: check_password_expiration_date.pl > <http://check_password_expiration_date.pl> > > # Author: Leo Pleiman > > # Date: July 11, 2013 > > # This is designed as a cron job to query the password expiration date > on accounts and send an email > > # of the impending expiration to the account owner and the Systems Admins > > > use Date::Calc qw( Delta_Days Today ); > > use Mail::Sendmail; > > > $cmd = "\/usr\/bin\/ldapsearch -x passwordexpirationtime=*|grep > uid:|grep -v apple|cut -c6- >/tmp/users\n"; > > system $cmd; > > > open USERS, "/tmp/users" or die "Couldn't open file"; > > while (<USERS>) { > > chomp; > > $user = $_; > > $USER = uc($user); > > $cmd = "\/usr\/bin\/ldapsearch -x uid=$user + > passwordexpirationtime|grep passwordexpirationtime:|cut -d: -f2|cut > -c2-9 >/tmp/date\n"; > > system $cmd; > > system "cat /tmp/date|cut -c1-4 >/tmp/year"; > > system "cat /tmp/date|cut -c5-6 >/tmp/month"; > > system "cat /tmp/date|cut -c7-8 >/tmp/day"; > > > open FILE, "/tmp/year" or die "Couldn't open file"; > > while (<FILE>) { > > chomp; > > $YEAR = $_; > > close FILE; > > } > > open FILE, "/tmp/month" or die "Couldn't open file"; > > while (<FILE>) { > > chomp; > > $MONTH = $_; > > close FILE; > > } > > open FILE, "/tmp/day" or die "Couldn't open file"; > > while (<FILE>) { > > chomp; > > $DAY = $_; > > close FILE; > > } > > > ($YEAR2,$MONTH2,$DAY2) = Today(); > > $days = Delta_Days($YEAR2,$MONTH2,$DAY2, $YEAR,$MONTH,$DAY); > > > > $DAYS = $days - 7; > > #print "$days $DAYS $USER\n"; > > if ($DAYS <= 7 ) { > > if ($DAYS <= 0 ) { > > %mail = ( To => "$user\@example.com <http://example.com>", > > Cc => '[email protected] <mailto:[email protected]>', > > From => '[email protected] > <mailto:[email protected]>', > > Subject => "$USER YOUR PASSWORD HAS EXPIRED", > > Message => "$user, your password has > expired. You have a limited number of logins avaliable before your > account will be locked. Proceed immediately to blah, blah, blah\n > sysref $days" > > ); > > sendmail(%mail) or die $Mail::Sendmail::error; > > } > > else { > > %mail = ( To => "$user\@example.com <http://example.com>", > > From => '[email protected] > <mailto:[email protected]>', > > Subject => "$USER YOUR PASSWORD IS ABOUT TO > EXPIRE", > > Message => "$user, your password will expire > in $DAYS days. Reference blah, blah, blah instructions on changing > your password." > > ); > > sendmail(%mail) or die $Mail::Sendmail::error; > > #print "OK. Log says:\n", $Mail::Sendmail::log; > > } > > } > > } > > close USERS; > > system "cd /tmp;rm -rf users date year month day"; > > exit > > > Leo Pleiman > Senior System Engineer > Direct 202-787-3622 > Cell 410-688-3873 > > DonorPro merged with Salsa, read about it here. > <https://www.salsalabs.com/about/news/salsa-labs-and-donorpro-unite> > > On Thu, Nov 3, 2016 at 9:37 AM, Predrag Zečević - Technical Support > Analyst <[email protected] > <mailto:[email protected]>> wrote: > > On 11/ 3/16 01:21 PM, Mark Reynolds wrote: > > Todor, > > All you need to do is request the passwordexpirationtime > attribute from > the user entry: > > For example: > > # ldapsearch -D "cn=directory manager" -W -b "dc=domain,dc=com" > uid=USERID passwordexpirationtime > > Regards, > Mark > > > Hi, > > there are also more password attributes: > $ ldapsearch -xLLLD "cn=directory manager" -W -b > "dc=my-domain,dc=com" uid=USERID passwordExpirationTime > passwordExpWarned passwordGraceUserTime passwordRetryCount > passwordAllowChangeTime passwordHistory > > With best regards. > Predrag Zečević > > On 11/03/2016 03:10 AM, Todor Petkov wrote: > > Hello, > > I am trying to get the user password expiration date, so I > can write a > script to send warning email before this. I am running the > following: > ldapsearch -v -LLLx -h localhost -b > > 'cn="cn=nsPwPolicyEntry,uid=user,ou=People,dc=domain,dc=com",cn=nsPwPolicyContainer,ou=People,dc=domain,dc=com' > "(objectclass=ldapsubentry)" > > But I don't see such attribute in the results. Can you > give me a hint > what's the ldap query? My versions are: > > 389-admin-console-1.1.8-1.el6.noarch > 389-ds-1.2.2-1.el6.noarch > 389-adminutil-1.1.19-1.el6.x86_64 > 389-ds-base-libs-1.2.11.15-75.el6_8.x86_64 > 389-ds-base-1.2.11.15-75.el6_8.x86_64 > 389-ds-console-1.2.6-1.el6.noarch > 389-admin-console-doc-1.1.8-1.el6.noarch > 389-admin-1.1.35-1.el6.x86_64 > 389-console-1.1.7-1.el6.noarch > 389-ds-console-doc-1.2.6-1.el6.noarch > 389-dsgw-1.1.11-1.el6.x86_64 > > > Thanks in advance, > _______________________________________________ > 389-users mailing list -- > [email protected] > <mailto:[email protected]> > To unsubscribe send an email to > [email protected] > <mailto:[email protected]> > > > > > _______________________________________________ > 389-users mailing list -- [email protected] > <mailto:[email protected]> > To unsubscribe send an email to > [email protected] > <mailto:[email protected]> > > > -- > Predrag Zečević > Technical Support Analyst > 2e Systems GmbH > > Telephone: +49 6196 9505 815 <tel:%2B49%206196%209505%20815>, > Facsimile: +49 6196 9505 894 <tel:%2B49%206196%209505%20894> > Mobile: +49 174 3109 288 <tel:%2B49%20%20174%203109%20288>, > Skype: predrag.zecevic > E-mail: [email protected] > <mailto:[email protected]> > > Headquarter: 2e Systems GmbH, Königsteiner Str. 87, > 65812 Bad Soden am Taunus, Germany > Company registration: Amtsgericht Königstein (Germany), HRB 7303 > Managing director: Phil Douglas > > http://www.2e-systems.com/ - Making your business fly! > _______________________________________________ > 389-users mailing list -- [email protected] > <mailto:[email protected]> > To unsubscribe send an email to > [email protected] > <mailto:[email protected]> > > > > > _______________________________________________ > 389-users mailing list -- [email protected] > To unsubscribe send an email to [email protected]
_______________________________________________ 389-users mailing list -- [email protected] To unsubscribe send an email to [email protected]
