Q. I have a requirement to check whose accounts are expired in Linux machine and send a mail to root user about the accounts. How can i achieve this in Linux?
Ans : Here is the script to check the account expires of the users in Linux
#Created on:09-02-2010 #Last modified:02-05-2010 #Purpose:To check the user account status in Linux #Author:Surendra Kumar Anne #The below command will grep all the users in shadow file #whose expiry time is set and send them to expirelist.txt cat /etc/shadow | cut -d: -f1,8 | sed /:$/d > /tmp/expirelist.txt totalaccounts=`cat /tmp/expirelist.txt | wc -l` for((i=1; i<=$totalaccounts; i++ )) do tuserval=`head -n $i /tmp/expirelist.txt | tail -n 1` username=`echo $tuserval | cut -f1 -d:` userexp=`echo $tuserval | cut -f2 -d:` userexpireinseconds=$(( $userexp * 86400 )) todaystime=`date +%s` #check if the user expired or not? if [ $userexpireinseconds -ge $todaystime ] ; then timeto7days=$(( $todaystime + 604800 )) if [ $userexpireinseconds -le $timeto7days ]; then mail -s "The account $username will expire less than 7 days" root fi else mail -s "The user account $username already expired" root fi done
This script will send a mail to root about the status of expired and going to expire user accounts.
Latest posts by Surendra Anne (see all)
- Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
- How to use ohai/chef-shell to get node attributes - July 19, 2018
- wget download a file to a directory in Linux/Unix - June 4, 2018
- GIT: How to compare two GIT branches? - June 3, 2018
- Online training on Linux Bash shell scripting - February 8, 2018