mirror of
https://github.com/m8tin/cis.git
synced 2026-06-02 14:56:58 +02:00
Checks improved
This commit is contained in:
@@ -1,12 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
_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"}/"
|
||||
source /cis/core/base.module.sh
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +13,7 @@ function run_as_root() {
|
||||
}
|
||||
|
||||
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 \
|
||||
&& return 0
|
||||
|
||||
@@ -29,31 +22,36 @@ function scripts_are_updateable_by_git() {
|
||||
}
|
||||
|
||||
function allChecks() {
|
||||
local _CHECK_PATH _MODE_PATH
|
||||
local _CHECK_PATH _MODE_PATH _CHECK_FILES
|
||||
_CHECK_PATH="${1:?"allChecks(): Missing first parameter CHECK_PATH"}check/"
|
||||
_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"
|
||||
[ "$(ls -1 ${_CHECK_PATH}host/${_MODE_PATH}*.check.sh 2> /dev/null | grep -cE '.*')" == "0" ] \
|
||||
&& echo " nothing to do" \
|
||||
&& return 0
|
||||
|
||||
for _CURRENT_CHECK in ${_CHECK_PATH}host/${_MODE_PATH}*.check.sh; do
|
||||
local _CHECK_FOUND="false"
|
||||
echo " - ${_CHECK_FILES}*.check.sh"
|
||||
for _CURRENT_CHECK in "${_CHECK_FILES}"*.check.sh; do
|
||||
! [ -x "${_CURRENT_CHECK}" ] \
|
||||
&& continue
|
||||
_CHECK_FOUND="true"
|
||||
_NAME="$(basename ${_CURRENT_CHECK} | cut -d'.' -f1)"
|
||||
_CONTEXT="$(echo ${_NAME} | cut -d'_' -f1)"
|
||||
_CHECK="$(echo ${_NAME} | cut -d'_' -f2- | tr '_' ' ')"
|
||||
_RESULT="$("${_CURRENT_CHECK}" && echo OK || echo FAIL)"
|
||||
echo " ${_CONTEXT^^} ${_CHECK}: ${_RESULT}"
|
||||
done
|
||||
|
||||
[ "${_CHECK_FOUND}" == "false" ] \
|
||||
&& echo " nothing to do" \
|
||||
&& return 0
|
||||
}
|
||||
|
||||
echo "PRECONDITION run as root: $(run_as_root)"
|
||||
echo "PRECONDITION scripts are updateable by git: $(scripts_are_updateable_by_git)"
|
||||
echo
|
||||
echo "Check all (common):"
|
||||
allChecks "${_SCRIPT_PATH}"
|
||||
allChecks "${CIS[DEFAULTDEFINITIONS]?"Missing CIS_DEFAULTDEFINITIONS"}"
|
||||
echo "Check all (own):"
|
||||
allChecks "${_OWN_DEFINITIONS}"
|
||||
allChecks "${CIS[DOMAINDEFINITIONS]?"Missing CIS_DOMAINDEFINITIONS"}"
|
||||
echo "Check this host:"
|
||||
allChecks "${_OWN_DEFINITIONS}" "$(hostname -s)"
|
||||
allChecks "${CIS[DOMAINDEFINITIONS]}" "$(hostname -s)"
|
||||
|
||||
Reference in New Issue
Block a user