Add two points tolerance in config files and simplify the params you have to send to the function

This commit is contained in:
nemo 2019-06-01 09:30:07 +02:00
parent b6f0d82f6b
commit 912d374d6d
2 changed files with 15 additions and 14 deletions

View file

@ -23,15 +23,15 @@ check_value_in_conf_file () {
# Get parameters # Get parameters
local name=${1} local name=${1}
local conf_file=${2} local conf_file=${2}
local search_ok=${3} local param_key=${3}
local param_key=${4} local search_ok=${4}
# Print message to explain this check # Print message to explain this check
echo -e "Check ${BLUE}${name} ${param_key}${NC} config file ${conf_file} ..." echo -e "Check ${BLUE}${name} ${param_key}${NC} config file ${conf_file} ..."
# If multiple expected values # If multiple expected values
local list_search_ok=(${search_ok}) local list_search_ok=(${search_ok})
local search_ok_to_grep="^[[:space:]]*"${search_ok}"[[:space:]]*$" local search_ok_to_grep="^[[:space:]]*"${param_key}"[[:space:]]*:\?[[:space:]]*"${search_ok}"[[:space:]]*$"
# If there is more than one unexpected values # If there is more than one unexpected values
if [ ${#list_search_ok[@]} -gt 1 ] if [ ${#list_search_ok[@]} -gt 1 ]
@ -39,16 +39,16 @@ check_value_in_conf_file () {
search_ok_to_grep="" search_ok_to_grep=""
for var_search_ok in ${list_search_ok[@]} for var_search_ok in ${list_search_ok[@]}
do do
search_ok_to_grep=${search_ok_to_grep}'-e '"^[[:space:]]*${var_search_ok}[[:space:]]*$"' ' search_ok_to_grep=${search_ok_to_grep}'-e '"^[[:space:]]*${param_key}[[:space:]]*:\?[[:space:]]*${var_search_ok}[[:space:]]*$"' '
done done
fi fi
echo 1
# Check if unexpected value is set (grep -v) (success if return code = 1) # Check if unexpected value is set (grep -v) (success if return code = 1)
grep "^[[:space:]]*"${param_key} ${conf_file} | grep -q -v ${search_ok_to_grep} grep "^[[:space:]]*"${param_key} ${conf_file} | grep -q -v ${search_ok_to_grep}
# Return Code # Return Code
local RC=${?} local RC=${?}
# Unexpected value is set # Unexpected value is set
if [ ${RC} -eq 0 ] if [ ${RC} -eq 0 ]
then then
@ -56,9 +56,10 @@ check_value_in_conf_file () {
return 2 return 2
# Unexpected value is not set # Unexpected value is not set
else else
search_ok_to_grep="^[[:space:]]*"${search_ok}"[[:space:]]*$" echo 2
search_ok_to_grep="^[[:space:]]*"${param_key}"[[:space:]]*:\?[[:space:]]*"${search_ok}"[[:space:]]*$"
# Boolean for final Return Code, if one return code in the loop -ne 0 -> set finalRC=1 # Boolean for final Return Code, if one return code in the loop -ne 0 -> set finalRC=1
local finalRC=0 local finalRC=0
@ -67,7 +68,7 @@ check_value_in_conf_file () {
then then
for var_search_ok in ${list_search_ok[@]} for var_search_ok in ${list_search_ok[@]}
do do
grep -q "^[[:space:]]*"${var_search_ok}"[[:space:]]*$" ${conf_file} grep -q "^[[:space:]]*"${param_key}"[[:space:]]*:\?[[:space:]]*"${var_search_ok}"[[:space:]]*$" ${conf_file}
RC=${?} RC=${?}
@ -81,7 +82,7 @@ check_value_in_conf_file () {
# Else : do classical check # Else : do classical check
else else
# Check if OK value is set (success if return code = 0) # Check if OK value is set (success if return code = 0)
grep -q "^[[:space:]]*"${search_ok}"[[:space:]]*$" ${conf_file} grep -q "^[[:space:]]*"${param_key}"[[:space:]]*:\?[[:space:]]*"${search_ok}"[[:space:]]*$" ${conf_file}
# Return Code # Return Code
finalRC=${?} finalRC=${?}

View file

@ -1,6 +1,6 @@
print_config_title 'CHECK SSH CONFIG' print_config_title 'CHECK SSH CONFIG'
check_value_in_conf_file "SSH" "/etc/ssh/sshd_config" "PasswordAuthentication[[:space:]]*no" "PasswordAuthentication" check_value_in_conf_file "SSH" "/etc/ssh/sshd_config" "PasswordAuthentication" "no"
case ${?} in case ${?} in
0) # OK, nothing to do 0) # OK, nothing to do
@ -19,7 +19,7 @@ case ${?} in
;; ;;
esac esac
check_value_in_conf_file "SSH" "/etc/ssh/sshd_config" "PermitRootLogin[[:space:]]*no" "PermitRootLogin" check_value_in_conf_file "SSH" "/etc/ssh/sshd_config" "PermitRootLogin" "no"
case ${?} in case ${?} in
0) # OK, nothing to do 0) # OK, nothing to do
@ -38,7 +38,7 @@ case ${?} in
;; ;;
esac esac
check_value_in_conf_file "SSH" "/etc/ssh/sshd_config" "ListenAddress[[:space:]]*${IPV4_ADMIN_LAN_IP} ListenAddress[[:space:]]*${IPV6_ADMIN_LAN_IP}" "ListenAddress" check_value_in_conf_file "SSH" "/etc/ssh/sshd_config" "ListenAddress" "${IPV4_ADMIN_LAN_IP} ${IPV6_ADMIN_LAN_IP}"
case ${?} in case ${?} in
0) # OK, nothing to do 0) # OK, nothing to do