Back to the main page

Look for expired password on Solaris

This script requires password's aging in days and then reports accounts whose password has expired.

#!/bin/bash
#set -x
# dudicz April 05 2013
# look for expired passwd

usage() {
        echo ; echo "Usage: ${programname} <aging days>" ; echo ; exit 1
}

programname=`/usr/bin/basename $0`

# check if argument is provided
if [ $# != 1 ]; then
        usage
fi

aging_days=$1
today_epoch_sec=`truss date 2>&1 | grep ^time | awk -F= '{print $2}'`
today_epoch_days=`(echo "scale=0; ${today_epoch_sec}/60/60/24" | bc -l)`
target_days=`(echo "scale=0; ${today_epoch_days} - ${aging_days}" | bc -l)`

for i in `cat /etc/shadow`
do
        user=`echo $i  |awk -F: '{print $1}'`
        days=`echo $i  |awk -F: '{print $3}'`
        maxdays=`echo $i  |awk -F: '{print $5}'`
        # continue if max passwd age is not setup, like for root
        if [ -z ${maxdays} ]
        then
        echo "Password never expires: ${user}"
        elif [ ${days} -lt ${target_days} ]
        then
        echo "Password EXPIRED: ${user}"
        else
        echo "Password OK: ${user}"
        fi
done

exit 0

This is how it works.

# bash expiredpasswd.sh

Usage: expiredpasswd.sh <aging days>
# bash expiredpasswd.sh 90
Password never expires: root
Password never expires: rootc
Password never expires: rootmo
Password never expires: daemon
Password never expires: bin
Password never expires: sys
Password never expires: adm
Password never expires: lp
Password never expires: uucp
Password never expires: nuucp
Password never expires: smmsp
Password never expires: listen
Password never expires: gdm
Password never expires: webservd
Password never expires: postgres
Password never expires: svctag
Password never expires: nobody
Password never expires: noaccess
Password never expires: nobody4
Password never expires: hpsmh
Password never expires: mlodge
Password never expires: paw
Password never expires: pooles1
Password never expires: roberts
Password never expires: stevewag
Password never expires: femino
Password never expires: cullinan
Password never expires: itms
Password never expires: dano
Password never expires: mikec
Password never expires: cullinan
Password never expires: sysinfo
Password EXPIRED: troyc
Password OK: irvingr
Password EXPIRED: miserw
Password EXPIRED: parkerd
Password EXPIRED: santhsu
Password OK: dudicz
Back to the main page