validate_user () {
user=$1
pass=$2
shadow_digest=$(/usr/bin/getent shadow "$user" | awk -F: '{print $2}')
if [ -z "$shadow_digest" ]
then
echo "Invalid user"
return
fi
salt=$(echo $shadow_digest|awk -F\$ '{print "$"$2"$"$3}')
export USER_PASS=$pass
export PASS_SALT=$salt
user_digest=$(perl -e 'print crypt($ENV{USER_PASS},$ENV{PASS_SALT})')
echo $user_digest
if [ "$user_digest" = "$shadow_digest" ]; then
echo "Password matched."
else
echo "Password did not match"
fi
}
validate_user 'USER' 'PASSWORD'
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}