Checks improved

This commit is contained in:
Martin Berghaus
2026-05-09 21:59:40 +02:00
parent ee114ee732
commit 00b920763e
30 changed files with 21 additions and 20 deletions
+3
View File
@@ -9,6 +9,9 @@
!/definitions/README.md !/definitions/README.md
!/definitions/default/ !/definitions/default/
/definitions/default/* /definitions/default/*
!/definitions/default/check/
/definitions/default/check/*
!/definitions/default/check/all/
!/definitions/default/core/ !/definitions/default/core/
/definitions/default/core/* /definitions/default/core/*
!/definitions/default/core/all/ !/definitions/default/core/all/
+18 -20
View File
@@ -1,12 +1,5 @@
#!/bin/bash #!/bin/bash
source /cis/core/base.module.sh
_SCRIPT="$(readlink -f "${0}" 2> /dev/null)"
# Folders always ends with an tailing '/'
_CIS_ROOT="${_SCRIPT%%/script/check/*}/" #Removes longest matching pattern '/script/check/*' from the end
_SCRIPT_PATH="${_CIS_ROOT:?"Missing CIS_ROOT"}script/"
_OWN_DOMAIN="$(${_CIS_ROOT}core/printOwnDomain.sh)"
_OWN_DEFINITIONS="${_CIS_ROOT}definitions/${_OWN_DOMAIN:?"Missing OWN_DOMAIN"}/"
@@ -20,7 +13,7 @@ function run_as_root() {
} }
function scripts_are_updateable_by_git() { function scripts_are_updateable_by_git() {
git -C "${_SCRIPT_PATH:?"Missing SCRIPT_PATH"}" pull > /dev/null 2>&1 \ git -C "${CIS[SCRIPTDIR]?"Missing CIS_SCRIPTDIR"}" pull > /dev/null 2>&1 \
&& echo OK \ && echo OK \
&& return 0 && return 0
@@ -29,31 +22,36 @@ function scripts_are_updateable_by_git() {
} }
function allChecks() { function allChecks() {
local _CHECK_PATH _MODE_PATH local _CHECK_PATH _MODE_PATH _CHECK_FILES
_CHECK_PATH="${1:?"allChecks(): Missing first parameter CHECK_PATH"}check/" _CHECK_PATH="${1:?"allChecks(): Missing first parameter CHECK_PATH"}check/"
_MODE_PATH="${2:-all}/" _MODE_PATH="${2:-all}/"
readonly _CHECK_PATH _MODE_PATH _CHECK_FILES="${_CHECK_PATH}${_MODE_PATH}"
readonly _CHECK_PATH _MODE_PATH _CHECK_FILES
echo " - ${_CHECK_PATH}host/${_MODE_PATH}*.check.sh" local _CHECK_FOUND="false"
[ "$(ls -1 ${_CHECK_PATH}host/${_MODE_PATH}*.check.sh 2> /dev/null | grep -cE '.*')" == "0" ] \ echo " - ${_CHECK_FILES}*.check.sh"
&& echo " nothing to do" \ for _CURRENT_CHECK in "${_CHECK_FILES}"*.check.sh; do
&& return 0 ! [ -x "${_CURRENT_CHECK}" ] \
&& continue
for _CURRENT_CHECK in ${_CHECK_PATH}host/${_MODE_PATH}*.check.sh; do _CHECK_FOUND="true"
_NAME="$(basename ${_CURRENT_CHECK} | cut -d'.' -f1)" _NAME="$(basename ${_CURRENT_CHECK} | cut -d'.' -f1)"
_CONTEXT="$(echo ${_NAME} | cut -d'_' -f1)" _CONTEXT="$(echo ${_NAME} | cut -d'_' -f1)"
_CHECK="$(echo ${_NAME} | cut -d'_' -f2- | tr '_' ' ')" _CHECK="$(echo ${_NAME} | cut -d'_' -f2- | tr '_' ' ')"
_RESULT="$("${_CURRENT_CHECK}" && echo OK || echo FAIL)" _RESULT="$("${_CURRENT_CHECK}" && echo OK || echo FAIL)"
echo " ${_CONTEXT^^} ${_CHECK}: ${_RESULT}" echo " ${_CONTEXT^^} ${_CHECK}: ${_RESULT}"
done done
[ "${_CHECK_FOUND}" == "false" ] \
&& echo " nothing to do" \
&& return 0
} }
echo "PRECONDITION run as root: $(run_as_root)" echo "PRECONDITION run as root: $(run_as_root)"
echo "PRECONDITION scripts are updateable by git: $(scripts_are_updateable_by_git)" echo "PRECONDITION scripts are updateable by git: $(scripts_are_updateable_by_git)"
echo echo
echo "Check all (common):" echo "Check all (common):"
allChecks "${_SCRIPT_PATH}" allChecks "${CIS[DEFAULTDEFINITIONS]?"Missing CIS_DEFAULTDEFINITIONS"}"
echo "Check all (own):" echo "Check all (own):"
allChecks "${_OWN_DEFINITIONS}" allChecks "${CIS[DOMAINDEFINITIONS]?"Missing CIS_DOMAINDEFINITIONS"}"
echo "Check this host:" echo "Check this host:"
allChecks "${_OWN_DEFINITIONS}" "$(hostname -s)" allChecks "${CIS[DOMAINDEFINITIONS]}" "$(hostname -s)"