Add check_password_by_pam function,

This commit is contained in:
Samson-W 2018-09-07 17:44:27 +08:00
parent e7c2a49365
commit 9e82c08cd5
1 changed files with 34 additions and 0 deletions

View File

@ -441,3 +441,37 @@ verify_integrity_all_packages()
fi
}
check_password_pam()
{
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
FNRET=1
else
FNRET=0
fi
else
FNRET=1
fi
else
FNRET=2
fi
}