Which Directory Service do you use for your network?
None NIS LDAP LDAP + Kerberos Samba Active Directory eDirectory other ( 396 votes ~ 8 comments )
You are not currently logged in. If you do not have a user account then please consider creating one and logging in before you post your comment. This will allow you to track replies to your comment, and take part in the site much more freely.
To add your comment, fill in all the boxes below and then preview it to make sure you're happy with the way that it looks.
This is the comment you were replying to, attached to the article Question: Email warning of impending password expiration:
#5 Re: Question: Email warning of impending password Posted by Anonymous (80.126.xx.xx) on Sun 5 Jun 2005 at 18:02 A long time ago I had the same problem and then found this out, never looked back: #!/usr/bin/perl -w # # passwd.expire.cron: sample expiry notification script for use as a cronjob # # Copyright 1999 by Ben Collins , complete rights granted # for use, distribution, modification, etc. # # Usage: # edit the listed options, including the actual email, then rename to # /etc/cron.daily/passwd # # If your users don't have a valid login shell (ie. they are ftp or mail # users only), they will need some other way to change their password # (telnet will work since login will handle password aging, or a poppasswd # program, if they are mail users). # # # should be same as /etc/adduser.conf $LOW_UID=1000; $HIGH_UID=29999; # this let's the MTA handle the domain, # set it manually if you want. Make sure # you also add the @ like "\@domain.com" $MAIL_DOM=""; # # # Set the current day reference $curdays = int(time() / (60 * 60 * 24)); # Now go through the list Open(SH, "< /etc/shadow"); while () { @shent = split(':', $_); @userent = getpwnam($shent[0]); if ($userent[2] >= $LOW_UID && $userent[2] <= $HIGH_UID) { if ($curdays > $shent[2] + $shent[4] - $shent[5] && $shent[4] != -1 && $shent[4] != 0 && $shent[5] != -1 && $shent[5] != 0) { $daysleft = ($shent[2] + $shent[4]) - $curdays; if ($daysleft == 1) { $days = "day"; } else {$days = "days"; } if ($daysleft < 0) { next; } Open(MAIL, "| mail -s '[WARNING] account will expire in $daysleft $days' $shent[0]${MAIL_DOM}"); print MAIL < Your account will expire in $daysleft $days. Please change your password before then or your account will expire. EOF close (MAIL); # This makes sure we also get a list of almost expired users print "$shent[0]'s account will expire in $daysleft days\n"; } } @userent = getpwent(); }
Posting Format:
Inappropriate comments will be removed.
Some help on entry formatting is available
Username:
Password:
[ Advanced Login ]
Register Account