diff --git a/common.sh b/common.sh index 75a0535..efc6ab5 100644 --- a/common.sh +++ b/common.sh @@ -13,6 +13,10 @@ error() { printf "$@" 1>&2 echo '' 1>&2 } + +# $1 - value +# $2 - param name +# (optional) $3 - anything, trigger check for non-negative _check_argument_is_number() { if [[ "$1" == [0-9]* ]]; then return 0 @@ -24,6 +28,9 @@ _check_argument_is_number() { return 1 fi } + +# $1 - value +# $2 - param name _check_argument_value() { if [[ "$1" < "$2" ]]; then error $"Argument to %s must be greater than %s" "$2" "$3" @@ -32,6 +39,9 @@ _check_argument_value() { return 0 fi } + +# $1 - value +# $2 - param name _check_argument_is_string() { if [[ "$1" == *[[:blank:]]* ]]; then error $"Argument to %s must be a string without spaces" "$2" @@ -41,3 +51,27 @@ _check_argument_is_string() { fi } +# $1 - value +# $2 - param name +_check_argument_is_boolean(){ + case "$1" in + "yes" ) return 0 ;; + "no" ) return 0 ;; + "" ) + error $"Value of %s is empty, set yes or no" "$2" + ;; + * ) + error $"String %s is not a boolean, set yes or no" "$1" + ;; + esac +} + +# $1 - value +# $2 - param name +_check_argument_is_non_negative_number(){ + # 2>/dev/null to avoid odd output if $1 is not a number + if ! test "$1" -lt 0 2>/dev/null; then + error $"Value of %s must be a non-negative number" "$2" + return 1 + fi +} diff --git a/mikhailnov.sh b/mikhailnov.sh index d08abbb..6d251b6 100755 --- a/mikhailnov.sh +++ b/mikhailnov.sh @@ -7,31 +7,6 @@ _is_auditd_enabled(){ systemctl is-active -q autitd } -# $1 - value -# $2 - param name -_auditd_conf_is_boolean(){ - case "$1" in - "yes" ) return 0 ;; - "no" ) return 0 ;; - "" ) - error $"Value of %s is empty, set yes or no" "$2" - ;; - * ) - error $"String %s is not a boolean, set yes or no" "$1" - ;; - esac -} - -# $1 - value -# $2 - param name -_auditd_conf_is_non_negative_number(){ - # 2>/dev/null to avoid odd output if $1 is not a number - if ! test "$1" -lt 0 2>/dev/null; then - error $"Value of %s must be a non-negative number" "$2" - return 1 - fi -} - _mk_auditd_config(){ local failed=0 local local_events="yes" @@ -56,7 +31,7 @@ _mk_auditd_config(){ do case "$1" in "--local_events" ) - _auditd_conf_is_boolean "$1" "local_events" || failed=1 + _check_argument_is_boolean "$1" "local_events" || failed=1 local_events="$1" shift ;; @@ -78,7 +53,7 @@ _mk_auditd_config(){ fi ;; "--write_logs" ) - _auditd_conf_is_boolean "$1" "write_logs" || failed=1 + _check_argument_is_boolean "$1" "write_logs" || failed=1 write_logs="$1" shift ;; @@ -100,7 +75,7 @@ _mk_auditd_config(){ shift ;; "--priority_boost" ) - _auditd_conf_is_non_negative_number "$1" "priority_boost" || failed=1 + _check_argument_is_non_negative_number "$1" "priority_boost" || failed=1 priority_boost="$1" shift ;; @@ -122,7 +97,7 @@ _mk_auditd_config(){ ;; "--freq" ) if [ "$flush" = "incremental_async" ]; then - _auditd_conf_is_non_negative_number "$1" "freq" || failed=1 + _check_argument_is_non_negative_number "$1" "freq" || failed=1 freq="$1" shift else @@ -156,7 +131,7 @@ _mk_auditd_config(){ error $"Parameter %s makes sense only when %s" "num_logs" "max_log_file_action=rotate" failed=1 else - _auditd_conf_is_non_negative_number "$1" "num_logs" || failed=1 + _check_argument_is_non_negative_number "$1" "num_logs" || failed=1 num_logs="$1" shift fi diff --git a/test_back_pwquality.sh b/test_back_pwquality.sh index 995cb7a..95cdc11 100644 --- a/test_back_pwquality.sh +++ b/test_back_pwquality.sh @@ -21,6 +21,9 @@ _main(){ _mk_pwquality_conf --minclass STRING 1>/dev/null && { echo failed test 1; failed="$((++failed))"; } _mk_pwquality_conf --usercheck 1 1>/dev/null || { echo failed test 2 && failed="$((++failed))" ;} ! _mk_pwquality_conf --enforcing 1 --retry --usersubstr 1>/dev/null || { echo failed test 3 && failed="$((++failed))" ;} + _mk_pwquality_conf --ucredit -3 || { echo failed test 3 && failed="$((++failed))" ;} + _mk_pwquality_conf --ucredit 3 || { echo failed test 3 && failed="$((++failed))" ;} + _mk_pwquality_conf --ucredit +3 || { echo failed test 3 && failed="$((++failed))" ;} } _main