Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CISOfy/lynis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Boelen <michael.boelen@cisofy.com>2016-09-27 12:20:35 +0300
committerMichael Boelen <michael.boelen@cisofy.com>2016-09-27 12:20:35 +0300
commitf0cfab3f04d2222d76ee0c340d57454e9c818818 (patch)
treef087af3ee0378060ad36fba4080e1c674d58e3bd
parent9caf3005b59ef14472204e79fae94414b15a6625 (diff)
Style changes and improved detection of Red Hat based clones
-rw-r--r--include/osdetection466
1 files changed, 235 insertions, 231 deletions
diff --git a/include/osdetection b/include/osdetection
index a94c1479..c65d602c 100644
--- a/include/osdetection
+++ b/include/osdetection
@@ -27,155 +27,158 @@
# IBM AIX
AIX)
- OS="AIX"
- OS_NAME="AIX"
- OS_VERSION=$(oslevel)
- OS_FULLNAME="AIX ${OS_VERSION}"
- CPU=$(uname -p)
- HARDWARE=$(uname -M)
- FIND_BINARIES="whereis -b"
- SYSCTL_READKEY=""
+ OS="AIX"
+ OS_NAME="AIX"
+ OS_VERSION=$(oslevel)
+ OS_FULLNAME="AIX ${OS_VERSION}"
+ CPU=$(uname -p)
+ HARDWARE=$(uname -M)
+ FIND_BINARIES="whereis -b"
+ SYSCTL_READKEY=""
;;
- # Mac OS X
+ # Mac OS X and macOS
Darwin)
- OS="MacOS"
- if [ -x /usr/bin/sw_vers ]; then
- OS_NAME=$(/usr/bin/sw_vers -productName)
- OS_VERSION=$(/usr/bin/sw_vers -productVersion)
- OS_FULLNAME="${OS_NAME} ${OS_VERSION}"
+ OS="MacOS"
+ if [ -x /usr/bin/sw_vers ]; then
+ OS_NAME=$(/usr/bin/sw_vers -productName)
+ OS_VERSION=$(/usr/bin/sw_vers -productVersion)
+ OS_FULLNAME="${OS_NAME} ${OS_VERSION}"
else
- # Fall back to pretty safe name
- OS_NAME="Mac OS X"
- OS_FULLNAME=$(uname -s -r)
- OS_VERSION=$(uname -r)
- fi
- HARDWARE=$(uname -m)
- HOMEDIRS="/Users"
- FIND_BINARIES="whereis"
- OS_KERNELVERSION=$(uname -r)
- SYSCTL_READKEY=""
+ # Fall back to a fairly safe name
+ OS_NAME="Mac OS X"
+ OS_FULLNAME=$(uname -s -r)
+ OS_VERSION=$(uname -r)
+ fi
+ HARDWARE=$(uname -m)
+ HOMEDIRS="/Users"
+ FIND_BINARIES="whereis"
+ OS_KERNELVERSION=$(uname -r)
+ SYSCTL_READKEY=""
;;
# DragonFly BSD
DragonFly)
- OS="DragonFly"
- OS_NAME="DragonFly BSD"
- OS_FULLNAME=$(uname -s -r)
- OS_VERSION=$(uname -r)
- HARDWARE=$(uname -m)
- HOMEDIRS="/home /root"
- FIND_BINARIES="whereis -q -a -b"
- OS_KERNELVERSION=$(uname -i)
- SYSCTL_READKEY="sysctl -n"
+ OS="DragonFly"
+ OS_NAME="DragonFly BSD"
+ OS_FULLNAME=$(uname -s -r)
+ OS_VERSION=$(uname -r)
+ HARDWARE=$(uname -m)
+ HOMEDIRS="/home /root"
+ FIND_BINARIES="whereis -q -a -b"
+ OS_KERNELVERSION=$(uname -i)
+ SYSCTL_READKEY="sysctl -n"
;;
# FreeBSD
FreeBSD)
- OS="FreeBSD"
- OS_NAME="FreeBSD"
- OS_FULLNAME=$(uname -s -r)
- OS_VERSION=$(uname -r)
- HARDWARE=$(uname -m)
- HOMEDIRS="/home /root"
- FIND_BINARIES="whereis -q -a -b"
- OS_KERNELVERSION=$(uname -i)
- SYSCTL_READKEY="sysctl -n"
-
- # TrueOS
- if [ -f /etc/defaults/trueos ]; then
- OS_NAME="TrueOS"
- LogText "Result: found TrueOS file, system is completely based on FreeBSD though. Only adjusting OS name."
- fi
+ OS="FreeBSD"
+ OS_NAME="FreeBSD"
+ OS_FULLNAME=$(uname -s -r)
+ OS_VERSION=$(uname -r)
+ HARDWARE=$(uname -m)
+ HOMEDIRS="/home /root"
+ FIND_BINARIES="whereis -q -a -b"
+ OS_KERNELVERSION=$(uname -i)
+ SYSCTL_READKEY="sysctl -n"
+
+ # TrueOS
+ if [ -f /etc/defaults/trueos ]; then
+ OS_NAME="TrueOS"
+ LogText "Result: found TrueOS file, system is completely based on FreeBSD though. Only adjusting OS name."
+ fi
;;
# HP-UX
HP-UX)
- OS="HP-UX"
- OS_NAME="HP-UX"
- OS_FULLNAME=$(uname -s -r)
- OS_VERSION=$(uname -r)
- HARDWARE=$(uname -m)
- FIND_BINARIES="whereis -b"
- SYSCTL_READKEY=""
+ OS="HP-UX"
+ OS_NAME="HP-UX"
+ OS_FULLNAME=$(uname -s -r)
+ OS_VERSION=$(uname -r)
+ HARDWARE=$(uname -m)
+ FIND_BINARIES="whereis -b"
+ SYSCTL_READKEY=""
;;
# Linux
Linux)
- OS="Linux"
- OS_NAME="Linux"
- OS_FULLNAME=""
- OS_VERSION=$(uname -r)
- LINUX_VERSION=""
- HARDWARE=$(uname -m)
- HOMEDIRS="/home"
- FIND_BINARIES="whereis -b"
- OS_KERNELVERSION_FULL=$(uname -r)
- OS_KERNELVERSION=$(echo ${OS_KERNELVERSION_FULL} | sed 's/-.*//')
- if [ -e /dev/grsec ]; then GRSEC_FOUND=1; fi
-
- # Amazon
- if [ -e "/etc/system-release" ]; then
- FIND=$(grep "Amazon" /etc/system-release)
- if [ ! "${FIND}" = "" ]; then
- OS_REDHAT_OR_CLONE=1
- OS_FULLNAME=$(grep "^Amazon" /etc/system-release)
- OS_VERSION=$(grep "^Amazon" /etc/system-release | awk '{ if ($4=="release") { print $5 } }')
- LINUX_VERSION="Amazon"
- fi
- fi
-
- # Arch Linux
- if [ -e "/etc/arch-release" ]; then
- OS_FULLNAME="Arch Linux"
- OS_VERSION="Unknown"
- LINUX_VERSION="Arch Linux"
- fi
-
- # Chakra Linux
- if [ -e "/etc/chakra-release" ]; then
- OS_FULLNAME=$(grep "^Chakra" /etc/chakra-release)
- OS_VERSION=$(awk '/^Chakra/ { if ($3=="release") { print $4 }}' /etc/chakra-release)
- LINUX_VERSION="Chakra Linux"
- fi
-
- # Cobalt
- if [ -e "/etc/cobalt-release" ]; then OS_FULLNAME=$(cat /etc/cobalt-release); fi
- # CPUBuilders Linux
- if [ -e "/etc/cpub-release" ]; then OS_FULLNAME=$(cat /etc/cpub-release); fi
-
- # Debian/Ubuntu (***) - Set first to Debian
- if [ -e "/etc/debian_version" ]; then
- OS_VERSION=$(cat /etc/debian_version)
- OS_FULLNAME="Debian ${OS_VERSION}"
- LINUX_VERSION="Debian"
- fi
- # /etc/lsb-release does not exist on Debian
- if [ -e "/etc/debian_version" -a -e /etc/lsb-release ]; then
+ OS="Linux"
+ OS_NAME="Linux"
+ OS_FULLNAME=""
+ OS_VERSION=$(uname -r)
+ LINUX_VERSION=""
+ HARDWARE=$(uname -m)
+ HOMEDIRS="/home"
+ FIND_BINARIES="whereis -b"
+ OS_KERNELVERSION_FULL=$(uname -r)
+ OS_KERNELVERSION=$(echo ${OS_KERNELVERSION_FULL} | sed 's/-.*//')
+ if [ -e /dev/grsec ]; then GRSEC_FOUND=1; fi
+
+ # Amazon
+ if [ -e "/etc/system-release" ]; then
+ FIND=$(grep "Amazon" /etc/system-release)
+ if [ ! "${FIND}" = "" ]; then
+ OS_REDHAT_OR_CLONE=1
+ OS_FULLNAME=$(grep "^Amazon" /etc/system-release)
+ OS_VERSION=$(grep "^Amazon" /etc/system-release | awk '{ if ($4=="release") { print $5 } }')
+ LINUX_VERSION="Amazon"
+ fi
+ fi
+
+ # Arch Linux
+ if [ -e "/etc/arch-release" ]; then
+ OS_FULLNAME="Arch Linux"
+ OS_VERSION="Unknown"
+ LINUX_VERSION="Arch Linux"
+ fi
+
+ # Chakra Linux
+ if [ -e "/etc/chakra-release" ]; then
+ OS_FULLNAME=$(grep "^Chakra" /etc/chakra-release)
+ OS_VERSION=$(awk '/^Chakra/ { if ($3=="release") { print $4 }}' /etc/chakra-release)
+ LINUX_VERSION="Chakra Linux"
+ fi
+
+ # Cobalt
+ if [ -e "/etc/cobalt-release" ]; then OS_FULLNAME=$(cat /etc/cobalt-release); fi
+ # CPUBuilders Linux
+ if [ -e "/etc/cpub-release" ]; then OS_FULLNAME=$(cat /etc/cpub-release); fi
+
+ # Debian/Ubuntu (***) - Set first to Debian
+ if [ -e "/etc/debian_version" ]; then
+ OS_VERSION=$(cat /etc/debian_version)
+ OS_FULLNAME="Debian ${OS_VERSION}"
+ LINUX_VERSION="Debian"
+ fi
+
+ # /etc/lsb-release does not exist on Debian
+ if [ -e "/etc/debian_version" -a -e /etc/lsb-release ]; then
OS_VERSION=$(cat /etc/debian_version)
FIND=$(grep "^DISTRIB_ID=" /etc/lsb-release | cut -d '=' -f2 | sed 's/"//g')
if [ "${FIND}" = "Ubuntu" ]; then
OS_VERSION=$(grep "^DISTRIB_RELEASE=" /etc/lsb-release | cut -d '=' -f2)
OS_FULLNAME="Ubuntu ${OS_VERSION}"
LINUX_VERSION="Ubuntu"
- elif [ "${FIND}" = "elementary OS" ]; then
+ elif [ "${FIND}" = "elementary OS" ]; then
LINUX_VERSION="elementary OS"
OS_VERSION=$(grep "^DISTRIB_RELEASE=" /etc/lsb-release | cut -d '=' -f2)
OS_FULLNAME=$(grep "^DISTRIB_DESCRIPTION=" /etc/lsb-release | cut -d '=' -f2 | sed 's/"//g')
- else
+ else
# Catch all, in case it's unclear what specific release this is.
OS_FULLNAME="Debian ${OS_VERSION}"
LINUX_VERSION="Debian"
fi
# Ubuntu test (optional) $(grep "[Uu]buntu" /proc/version)
- fi
- # E-smith
- if [ -e "/etc/e-smith-release" ]; then OS_FULLNAME=$(cat /etc/e-smith-release); fi
- # Gentoo
- if [ -e "/etc/gentoo-release" ]; then LINUX_VERSION="Gentoo"; OS_FULLNAME=$(cat /etc/gentoo-release); fi
-
- # Red Hat and others
- if [ -e "/etc/redhat-release" ]; then
+ fi
+
+ # E-smith
+ if [ -e "/etc/e-smith-release" ]; then OS_FULLNAME=$(cat /etc/e-smith-release); fi
+
+ # Gentoo
+ if [ -e "/etc/gentoo-release" ]; then LINUX_VERSION="Gentoo"; OS_FULLNAME=$(cat /etc/gentoo-release); fi
+
+ # Red Hat and others
+ if [ -e "/etc/redhat-release" ]; then
OS_REDHAT_OR_CLONE=1
# CentOS
@@ -238,125 +241,126 @@
fi
fi
- # Red Hat
- FIND=$(grep "Red Hat" /etc/redhat-release)
- if [ ! "${FIND}" = "" ]; then
- OS_FULLNAME=$(grep "Red Hat" /etc/redhat-release)
- OS_VERSION="${OS_FULLNAME}"
- LINUX_VERSION="Red Hat"
- fi
-
# Scientific
FIND=$(grep "Scientific" /etc/redhat-release)
if [ ! "${FIND}" = "" ]; then
- OS_FULLNAME=$(grep "^Scientific" /etc/redhat-release)
+ OS_FULLNAME=$(grep "^Scientific" /etc/redhat-release)
OS_VERSION=$(grep "^Scientific" /etc/redhat-release | awk '{ if ($3=="release") { print $4 } }')
LINUX_VERSION="Scientific"
fi
- fi
-
- # PCLinuxOS
- if [ -f /etc/pclinuxos-release ]; then
- FIND=$(grep "^PCLinuxOS" /etc/pclinuxos-release)
- if [ ! "${FIND}" = "" ]; then
- OS_FULLNAME="PCLinuxOS Linux"
- LINUX_VERSION="PCLinuxOS"
- OS_VERSION=$(grep "^PCLinuxOS" /etc/pclinuxos-release | awk '{ if ($2=="release") { print $3 } }')
- fi
- fi
-
- # Sabayon Linux
- if [ -f /etc/sabayon-edition ]; then
- FIND=$(grep "Sabayon Linux" /etc/sabayon-edition)
- if [ ! "${FIND}" = "" ]; then
- OS_FULLNAME="Sabayon Linux"
- LINUX_VERSION="Sabayon"
- OS_VERSION=$(awk '{ print $3 }' /etc/sabayon-edition)
- fi
- fi
-
- if [ -f /etc/SLOX-release ]; then
- OS_FULLNAME=$(grep "SuSE Linux" /etc/SLOX-release)
- LINUX_VERSION="SuSE"
- fi
-
- # Slackware
- if [ -f /etc/slackware-version ]; then
- LINUX_VERSION="Slackware"
- OS_VERSION=$(grep "^Slackware" /etc/slackware-version | awk '{ if ($1=="Slackware") { print $2 } }')
- OS_FULLNAME="Slackware Linux ${OS_VERSION}"
- fi
-
- # SuSE
- if [ -e "/etc/SuSE-release" ]; then
- OS_VERSION=$(head -n 1 /etc/SuSE-release)
- LINUX_VERSION="SuSE"
- fi
-
- # Turbo Linux
- if [ -e "/etc/turbolinux-release" ]; then OS_FULLNAME=$(cat /etc/turbolinux-release); fi
-
- # YellowDog
- if [ -e "/etc/yellowdog-release" ]; then OS_FULLNAME=$(cat /etc/yellowdog-release); fi
-
- # VMware
- if [ -e "/etc/vmware-release" ]; then
- OS_FULLNAME=$(cat /etc/vmware-release)
- OS_VERSION=$(uname -r)
- IS_VMWARE_ESXI=$(vmware -vl | grep VMware ESXi)
- if [ ! "${IS_VMWARE_ESXI}" = "" ]; then
- OS_FULLNAME="VMware ESXi ${OS_VERSION}"
- fi
- fi
-
- # ===================================================================
- # Set OS name to the discovered Linux version
- if [ ! "${LINUX_VERSION}" = "" -a "${OS_NAME}" = "Linux" ]; then
- OS_NAME="${LINUX_VERSION}"
- fi
- # If Linux version (full name) is unknown, use uname value
- if [ "${OS_FULLNAME}" = "" ]; then OS_FULLNAME=$(uname -s -r); fi
- SYSCTL_READKEY="sysctl -n"
+ if [ -z "${LINUX_VERSION}" ]; then
+ # Red Hat
+ FIND=$(grep "Red Hat" /etc/redhat-release)
+ if [ ! "${FIND}" = "" ]; then
+ OS_FULLNAME=$(grep "Red Hat" /etc/redhat-release)
+ OS_VERSION="${OS_FULLNAME}"
+ LINUX_VERSION="Red Hat"
+ fi
+ fi
+
+ fi
+
+ # PCLinuxOS
+ if [ -f /etc/pclinuxos-release ]; then
+ FIND=$(grep "^PCLinuxOS" /etc/pclinuxos-release)
+ if [ ! "${FIND}" = "" ]; then
+ OS_FULLNAME="PCLinuxOS Linux"
+ LINUX_VERSION="PCLinuxOS"
+ OS_VERSION=$(grep "^PCLinuxOS" /etc/pclinuxos-release | awk '{ if ($2=="release") { print $3 } }')
+ fi
+ fi
+
+ # Sabayon Linux
+ if [ -f /etc/sabayon-edition ]; then
+ FIND=$(grep "Sabayon Linux" /etc/sabayon-edition)
+ if [ ! "${FIND}" = "" ]; then
+ OS_FULLNAME="Sabayon Linux"
+ LINUX_VERSION="Sabayon"
+ OS_VERSION=$(awk '{ print $3 }' /etc/sabayon-edition)
+ fi
+ fi
+
+ if [ -f /etc/SLOX-release ]; then
+ OS_FULLNAME=$(grep "SuSE Linux" /etc/SLOX-release)
+ LINUX_VERSION="SuSE"
+ fi
+
+ # Slackware
+ if [ -f /etc/slackware-version ]; then
+ LINUX_VERSION="Slackware"
+ OS_VERSION=$(grep "^Slackware" /etc/slackware-version | awk '{ if ($1=="Slackware") { print $2 } }')
+ OS_FULLNAME="Slackware Linux ${OS_VERSION}"
+ fi
+
+ # SuSE
+ if [ -e "/etc/SuSE-release" ]; then
+ OS_VERSION=$(head -n 1 /etc/SuSE-release)
+ LINUX_VERSION="SuSE"
+ fi
+
+ # Turbo Linux
+ if [ -e "/etc/turbolinux-release" ]; then OS_FULLNAME=$(cat /etc/turbolinux-release); fi
+ # YellowDog
+ if [ -e "/etc/yellowdog-release" ]; then OS_FULLNAME=$(cat /etc/yellowdog-release); fi
+
+ # VMware
+ if [ -e "/etc/vmware-release" ]; then
+ OS_FULLNAME=$(cat /etc/vmware-release)
+ OS_VERSION=$(uname -r)
+ IS_VMWARE_ESXI=$(vmware -vl | grep VMware ESXi)
+ if [ ! "${IS_VMWARE_ESXI}" = "" ]; then
+ OS_FULLNAME="VMware ESXi ${OS_VERSION}"
+ fi
+ fi
+
+ # ===================================================================
+ # Set OS name to the discovered Linux version
+ if [ ! "${LINUX_VERSION}" = "" -a "${OS_NAME}" = "Linux" ]; then
+ OS_NAME="${LINUX_VERSION}"
+ fi
+ # If Linux version (full name) is unknown, use uname value
+ if [ "${OS_FULLNAME}" = "" ]; then OS_FULLNAME=$(uname -s -r); fi
+ SYSCTL_READKEY="sysctl -n"
;;
# NetBSD
NetBSD)
- OS="NetBSD"
- OS_NAME="NetBSD"
- OS_FULLNAME=$(uname -s -r)
- OS_KERNELVERSION=$(uname -v)
- OS_VERSION=$(uname -r)
- HARDWARE=$(uname -m)
- FIND_BINARIES="whereis"
- SYSCTL_READKEY=""
+ OS="NetBSD"
+ OS_NAME="NetBSD"
+ OS_FULLNAME=$(uname -s -r)
+ OS_KERNELVERSION=$(uname -v)
+ OS_VERSION=$(uname -r)
+ HARDWARE=$(uname -m)
+ FIND_BINARIES="whereis"
+ SYSCTL_READKEY=""
;;
# OpenBSD
OpenBSD)
- OS="OpenBSD"
- OS_NAME="OpenBSD"
- OS_FULLNAME=$(uname -s -r)
- OS_KERNELVERSION=$(uname -v)
- OS_VERSION=$(uname -r)
- HARDWARE=$(uname -m)
- FIND_BINARIES="whereis"
- SYSCTL_READKEY=""
+ OS="OpenBSD"
+ OS_NAME="OpenBSD"
+ OS_FULLNAME=$(uname -s -r)
+ OS_KERNELVERSION=$(uname -v)
+ OS_VERSION=$(uname -r)
+ HARDWARE=$(uname -m)
+ FIND_BINARIES="whereis"
+ SYSCTL_READKEY=""
;;
# Solaris / OpenSolaris
SunOS)
- OS="Solaris"
- OS_NAME="Sun Solaris"
- OS_FULLNAME=$(uname -s -r)
- OS_VERSION=$(uname -r)
- HARDWARE=$(uname -m)
- if [ -x /usr/bin/isainfo ]; then
- # Returns 32, 64
- OS_MODE=$(/usr/bin/isainfo -b)
- fi
- SYSCTL_READKEY=""
+ OS="Solaris"
+ OS_NAME="Sun Solaris"
+ OS_FULLNAME=$(uname -s -r)
+ OS_VERSION=$(uname -r)
+ HARDWARE=$(uname -m)
+ if [ -x /usr/bin/isainfo ]; then
+ # Returns 32, 64
+ OS_MODE=$(/usr/bin/isainfo -b)
+ fi
+ SYSCTL_READKEY=""
;;
# VMware products
@@ -382,10 +386,10 @@
# Unknown or unsupported systems
*)
- echo "[ ${WARNING}WARNING${NORMAL} ]"
- echo "${WARNING}Error${NORMAL}: ${WHITE}Unknown OS found. No support available yet for this OS or platform...${NORMAL}"
- echo "Please consult the README/documentation for more information."
- exit 1
+ echo "[ ${WARNING}WARNING${NORMAL} ]"
+ echo "${WARNING}Error${NORMAL}: ${WHITE}Unknown OS found. No support available yet for this OS or platform...${NORMAL}"
+ echo "Please consult the README/documentation for more information."
+ exit 1
;;
esac
@@ -394,19 +398,19 @@
ECHONB=""
case ${OS} in
- "AIX") ECHOCMD="echo" ;;
- "DragonFly"|"FreeBSD"|"NetBSD") ECHOCMD="echo -e"; ECHONB="echo -n" ;;
- "MacOS") ECHOCMD="echo"; ECHONB="echo -n" ;;
- "Solaris") ECHOCMD="echo" ;;
- "Linux")
- # Check if dash is used (Debian/Ubuntu)
- DEFAULT_SHELL=$(ls -l /bin/sh | awk -F'>' '{print $2}')
- case ${DEFAULT_SHELL} in
- " dash") ECHOCMD="/bin/echo -e" ;;
- *) ECHOCMD="echo -e" ;;
- esac
- ;;
- *) ECHOCMD="echo -e" ;;
+ "AIX") ECHOCMD="echo" ;;
+ "DragonFly"|"FreeBSD"|"NetBSD") ECHOCMD="echo -e"; ECHONB="echo -n" ;;
+ "MacOS") ECHOCMD="echo"; ECHONB="echo -n" ;;
+ "Solaris") ECHOCMD="echo" ;;
+ "Linux")
+ # Check if dash is used (Debian/Ubuntu)
+ DEFAULT_SHELL=$(ls -l /bin/sh | awk -F'>' '{print $2}')
+ case ${DEFAULT_SHELL} in
+ " dash") ECHOCMD="/bin/echo -e" ;;
+ *) ECHOCMD="echo -e" ;;
+ esac
+ ;;
+ *) ECHOCMD="echo -e" ;;
esac
# Check if we have full featured commands, or are using BusyBox as a shell