#!/bin/bash # run-shellcheck # # CIS Debian Hardening # # # Ensure password complexity is configured (Manual) # set -e # One error, it's over set -u # One variable unset, it's over # shellcheck disable=2034 HARDENING_LEVEL=2 # shellcheck disable=2034 DESCRIPTION="Ensure password minimum length is configured " OPTIONS='' FILE_QUALITY='/etc/security/pwquality.conf' # This function will be called if the script status is on enabled / audit mode audit() { for PW_OPT in $OPTIONS; do PW_PARAM=$(echo "$PW_OPT" | cut -d= -f1) PW_VALUE=$(echo "$PW_OPT" | cut -d= -f2) # note : dont backslash regex characters, as 'does_pattern_exist_in_file' use "grep -E" which don't need it PATTERN="${PW_PARAM}[[:space:]]?+=[[:space:]]?+$PW_VALUE" does_pattern_exist_in_file "$FILE_QUALITY" "$PATTERN" if [ "$FNRET" = 0 ]; then ok "$PATTERN is present in $FILE_QUALITY" else crit "$PATTERN is not present in $FILE_QUALITY" fi done } # This function will be called if the script status is on enabled mode apply() { info "The values defined here should be adapted to one needs before applying." } # This function will create the config file for this check with default values create_config() { cat <