Sponsored Content
Top Forums Shell Programming and Scripting Check for Specific Username Password Expire Post 302757589 by gkelly1117 on Thursday 17th of January 2013 05:36:47 PM
Old 01-17-2013
Quote:
Originally Posted by RudiC
I'd gently propose a new "Useless Use of ELIF" award.
And I'm not sure I understand your approach to calculate the delta time until a password change is mandatory. Why don't you calculate the time difference between today (in days since epoch) and the next pw chng, which is shadow's field 3 + field 5, into e.g. DELTADAYS=fld3+fld5-today? If DELTADAYS <=0, alert, if 0 < DELTADAYS < 7, warn, otherwise OK?
Sorry fro the late response, other work matters took my attention from this until now

Ok then, I removed the Else If Statements, and I took your way of arithmatic for my Eval, yet I still dont hae it working correctly.


Code:
 
#Author:Emmanuel Iroanya Jr
#Edited: 
#Date:December 20th, 2012
#Purpose: The purpose of this is to check the Shadow table for the epoch value and warn the users / Email of Password Expiration  seven days in advance
ID=`id | cut -d ' ' -f 1`
if [[ "${ID}" != "uid=0(root)" ]]
then
   echo "You Need To Be Root To Run This Script, Please and Thank You"
   exit 1
fi
export Shadow=/etc/shadow
EpochSh=`perl -e 'print time, "\n"'`
export Hostname=`hostname`
#Our SSE Email Address that will get notification
export Email="emmanuel@mycompany.com"
for line in `cat $Shadow | grep adm`
do
 echo $line
done >passFile.txt
for i in `cat passFile.txt`
do
User=`echo $i |cut -d ':' -f 1`
MaxDay=`echo $i | cut -d ':' -f 5`
echo "$MaxDay"
Epoch=`echo $i |cut -d ':' -f 3`
Eval=`$MaxDay+$Epoch-$EpochSh`
echo "$Eval"
                 if [[ $Eval -lt 7 ]]
                 then
                 echo "Password for unix user $User on `hostname` is going to expire in less than a week. Please change it ASAP" | mailx -s 'Password Expiration ' $Email
                 elif [[ $Eval -le 0 ]]
                 then
                 echo "PASSWORD FOR USER $User HAS EXPIRED.PLEASE CHANGE IT ASAP TO AVOID PRODUCTION CRON JOBS FROM FAILING AND THE RESULTING LATE NIGHT CALLS"
                 fi
done


What Am I not understanding?

---------- Post updated at 05:36 PM ---------- Previous update was at 05:35 PM ----------

Quote:
Originally Posted by nails
It looks to me that your expr syntax error has to do with non-numeric data. I don't know what perl program $EpochSh does, but if it doesn't print out a number followed by a colon, you will have trouble with this line:


export Eval=`$EpochSh $Epoch | cut -d ':' -f 2`


Could that be your problem?


Also, I would like to gently point out your Useless Use Of Cat (UUOC). If you use a while loop, you can let it do your parsing for $User, $Epoch, and $Maxday:


Code:
#!/bin/ksh
while IFS=":" read User f2 Epoch f4 Maxday therest
do
echo "User: $User"
echo "Epoch: $Epoch"
echo "Maxday: $Maxday"
done < /etc/shadow

Also, if /etc/shadow's lines contained spaces, your code would fail miserably.

Another point: ksh/bash type shells let you do arithmetic, so you don't have to use expr:


Code:
if [[ $Eval == $(($x - 3)) ]]
then
echo "equal"
else
echo "NOT equal"
fi


I guess I used the Cat because it was what I was comfortable with, I will now try you while loop once I get the rest of it working.

Thank you for the suggestion! Smilie
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

password will expire

login: TEST7 TEST7's Password: Your password will expire: Wed Feb 19 14:28:08 2003 How can I the same information become in a script (as example in the .profile)????????? My login starts with .profile. These File is a menue with 24 lines and the message " Your password ....." disappear to... (8 Replies)
Discussion started by: Erwin Stocker
8 Replies

2. UNIX for Advanced & Expert Users

Disable password expire in HP UNIX

Hi, How to disable passwd expire in HP UNIX by not using SAM ? In our system SAM have some strange bugs. However due to some reason, we cannot add that patch. B. Rgds Christina (3 Replies)
Discussion started by: christina fung
3 Replies

3. Shell Programming and Scripting

Password expire

Hi, Is there any way to find out the UNIX user's password expire date?. It'll we helpful to inform the users to change the password before it get expires.(FYI - I am not having only admin previlege.) (1 Reply)
Discussion started by: sharif
1 Replies

4. Solaris

Set Password Never Expire

Hello I want to set the password for user never expire through the command line. For your information the box is running under Solaris 8 platform. (2 Replies)
Discussion started by: shamsul
2 Replies

5. Solaris

How to : check username & password is same or not in solaris 10 ?

Thanks AVKlinux (5 Replies)
Discussion started by: avklinux
5 Replies

6. Red Hat

set password not to expire

Hi All, Is this true on chage command? -M, MAX_DAYS Passing the number -1 as MAX_DAYS will remove checking a password's validity. Does this means password will not expire anymore? Thanks for any comment you may add. (0 Replies)
Discussion started by: itik
0 Replies

7. Solaris

Problem with password expire and sudo.

Hi, I have a small problem that I need to address regarding the password expiration for a number of different oracle accounts. Currently I have the MAXWEEKS set to 12 in the /etc/default/passwd file for all accounts. I also have sudo installed on the server and users access the oracle accounts... (2 Replies)
Discussion started by: sparcman
2 Replies

8. UNIX for Advanced & Expert Users

SFTP password expire error

Hi, I am using sftp in batch script for which all configuration for public/private keys are done and it works fine without asking a password. No issues till this point. Now I the problem I have is that if the password expires/someone changes the authentication keys at reote server then the... (4 Replies)
Discussion started by: coolwade
4 Replies

9. AIX

Password Expire Message

Does anyone know if the default message displayed when a users password has expired can be changed? I am just assuming the message below is the default one. If so please tell. Using username "justinxx". justinxx@160.23.12.44's password: WARNING: Your password has expired. You must... (2 Replies)
Discussion started by: juredd1
2 Replies

10. Solaris

Force to reset password after expire

Hi Lads, I would like place the mechanism of force reset password to user when he login to the server after his password expired. Currently, We are resetting users once in every 60 days using cron job but I am thinking is there any other way to force reset passwords after it expires? I am using... (1 Reply)
Discussion started by: Navkreddy
1 Replies
All times are GMT -4. The time now is 07:17 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy