31 lines
864 B
Bash
31 lines
864 B
Bash
|
#!/bin/bash
|
||
|
LOCATION=$1
|
||
|
KEYWORD=$2
|
||
|
OPTION=$3
|
||
|
COMPARE=$4
|
||
|
CONDITION=$5
|
||
|
|
||
|
#Example:
|
||
|
#LOCATION="/etc/pam.d/common-password"
|
||
|
#For debian is common-password ,for Gentoo and Red hat the file is system-auth
|
||
|
#KEYWORD="pam_cracklib.so"
|
||
|
#OPTION="ocredit"
|
||
|
#COMPARE="gt"
|
||
|
#CONDITION="-1"
|
||
|
|
||
|
if [ -f "$LOCATION" ];then
|
||
|
|
||
|
RESULT=$(sed -e '/^#/d' -e '/^[ \t][ \t]*#/d' -e 's/#.*$//' -e '/^$/d' $LOCATION | grep "$KEYWORD.*$OPTION")
|
||
|
#above line is remove any comment in the configuration file and use grep to output a exit status
|
||
|
#if matched both $KEYWORD and $OPTION there is a success exit status: 0
|
||
|
|
||
|
if [ $? -eq 0 ];then
|
||
|
if [ "$(echo $RESULT | tr "\t" "\n" | tr " " "\n" | sed -n "/$OPTION/p"| awk -F "=" '{printf $2}')" -$(echo $COMPARE) "$CONDITION" ];then
|
||
|
exit 1
|
||
|
fi
|
||
|
else
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
fi
|