diff options
author | mslifcak <slifcan@gmail.com> | 2018-01-17 17:56:19 +0300 |
---|---|---|
committer | Michael Boelen <michael.boelen@cisofy.com> | 2018-01-17 17:56:19 +0300 |
commit | 173843bdfd009f856aca8c37b1c06d3ff5bea5e6 (patch) | |
tree | 1cae61d1f9dc0caf8c3db496e5bfcb95093a44a0 | |
parent | bc571054c4de724811e6aa47347a028f323c1a39 (diff) |
Pin svc mgr (#506)
* systemctl does not mean systemd is used
* Check for systemd active
* determine service manager if not already set
-rw-r--r-- | include/binaries | 2 | ||||
-rw-r--r-- | include/tests_boot_services | 46 | ||||
-rwxr-xr-x | lynis | 14 |
3 files changed, 29 insertions, 33 deletions
diff --git a/include/binaries b/include/binaries index 2d45c3fe..32743447 100644 --- a/include/binaries +++ b/include/binaries @@ -213,7 +213,7 @@ ssh-keyscan) SSHKEYSCANBINARY="${BINARY}"; LogText " Found known binary: ssh-keyscan (scanner for SSH keys) - ${BINARY}" ;; sysctl) SYSCTLBINARY="${BINARY}"; LogText " Found known binary: sysctl (kernel parameters) - ${BINARY}" ;; syslog-ng) SYSLOGNGBINARY="${BINARY}"; SYSLOGNGVERSION=$(${BINARY} -V 2>&1 | grep "^syslog-ng" | awk '{ print $2 }'); LogText "Found ${BINARY} (version ${SYSLOGNGVERSION})" ;; - systemctl) SYSTEMCTLBINARY="${BINARY}"; SERVICE_MANAGER="systemd"; HAS_SYSTEMD=1; LogText " Found known binary: systemctl (client to systemd) - ${BINARY}" ;; + systemctl) SYSTEMCTLBINARY="${BINARY}"; SERVICE_MANAGER="systemd"; LogText " Found known binary: systemctl (client to systemd) - ${BINARY}" ;; timedatectl) TIMEDATECTL="${BINARY}"; LogText " Found known binary: timedatectl (timedate client) - ${BINARY}" ;; tr) TRBINARY="${BINARY}"; LogText " Found known binary: tr (text transformation) - ${BINARY}" ;; tripwire) TRIPWIREBINARY="${BINARY}"; LogText " Found known binary: tripwire (file integrity) - ${BINARY}" ;; diff --git a/include/tests_boot_services b/include/tests_boot_services index 0a2619cb..fbbfd382 100644 --- a/include/tests_boot_services +++ b/include/tests_boot_services @@ -30,7 +30,9 @@ BOOT_LOADER_FOUND=0 BOOT_LOADER_SEARCHED=0 GRUB_VERSION=0 - SERVICE_MANAGER="unknown" + if [ -z "${SERVICE_MANAGER}" ]; then + SERVICE_MANAGER="unknown" + fi # ################################################################################# # @@ -85,27 +87,29 @@ if [ ! -z "${FILENAME}" ]; then SHORTNAME=$(echo ${FILENAME} | ${AWKBINARY} -F/ '{ print $NF }') LogText "Found: ${SHORTNAME}" - case ${SHORTNAME} in - "init" | "initsplash") - SERVICE_MANAGER="SysV Init" - ;; - systemd) - SERVICE_MANAGER="systemd" - ;; - upstart) - SERVICE_MANAGER="upstart" - ;; - *) - CONTAINS_SYSTEMD=$(echo ${SHORTNAME} | ${GREPBINARY} "systemd") - - if [ ! -z "${CONTAINS_SYSTEMD}" ]; then + if [ "${SERVICE_MANAGER}" = "unknown" ]; then + case ${SHORTNAME} in + "init" | "initsplash") + SERVICE_MANAGER="SysV Init" + ;; + systemd) SERVICE_MANAGER="systemd" - else - LogText "Found ${SHORTNAME}. Unclear what service manager this is" - ReportException "${TEST_NO}:001" "Unknown service manager" - fi - ;; - esac + ;; + upstart) + SERVICE_MANAGER="upstart" + ;; + *) + CONTAINS_SYSTEMD=$(echo ${SHORTNAME} | ${GREPBINARY} "systemd") + + if [ ! -z "${CONTAINS_SYSTEMD}" ]; then + SERVICE_MANAGER="systemd" + else + LogText "Found ${SHORTNAME}. Unclear what service manager this is" + ReportException "${TEST_NO}:001" "Unknown service manager" + fi + ;; + esac + fi else LogText "Result: /proc/1/cmdline seems to be empty" ReportException "${TEST_NO}:002" "No data found in /proc/1/cmdline" @@ -788,22 +788,14 @@ ${NORMAL} # ################################################################################# # - # Check for systemd presence (already tested via binaries: systemctl) - if [ ${HAS_SYSTEMD} -eq 0 ]; then - FOUND=0 - # Backup option to do additional testing for systemd - LIST="${ROOTDIR}lib/systemd/system"; for ITEM in ${LIST}; do if [ -d ${ITEM} ]; then FOUND=1; break; fi; done - LIST="${ROOTDIR}usr/lib/systemd/systemd" - if [ ${FOUND} -eq 0 ]; then for ITEM in ${LIST}; do if [ -f ${ITEM} ]; then FOUND=1; break; fi; done; fi - else - FOUND=1 - fi - if [ ${FOUND} -eq 1 ]; then + # Check for systemd active + if [ -d /run/systemd/system ]; then LogText "Result: system is using systemd" HAS_SYSTEMD=1 Report "systemd=1" else LogText "Result: systemd not found" + HAS_SYSTEMD=0 Report "systemd=0" fi # |