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:
authorSimon Biewald <simon@fam-biewald.de>2020-08-08 00:38:10 +0300
committerSimon Biewald <simon@fam-biewald.de>2020-08-08 02:39:13 +0300
commit529bcb2a6036718da41ef0bfc52fae7f20bdfcac (patch)
tree09a933261f41d22917f35a4762ba2391a44ed52d /include/osdetection
parent7df0b8618b5cce39961b245a3c582af4294276d7 (diff)
Test for LINUX_VERSION before setting it again
Before parsing /etc/debian-release and /etc/lsb-release, it is now checked if the variable LINUX_VERSION is already set. This fixes cisofy/lynis#1003, but has some side effects. This will affects Ubuntu and Debian based distributions, like: - Pop!_OS (Ubuntu based) - Kali (Debian Based) - Raspbian - ... Unfortunately this will likely skip/brake a few tests for those distributions, as they are not considered to be Ubuntu or Debian anymore. Linux Mint was already detected properly, but at least some tests already had support for them (will other tests for Ubuntu are skipped). Those are tests I identified that will be skipped incorrectly now: - BOOT-5180: Check for Linux boot services (Debian style) It was already skipped on Linux Mint. - KRNL-5622: Check default run level on Linux machines This will only be skipped if systemd is not installed. It is already skipped on Linux Mint in this case. - KRNL-5788: Checking availability new kernel (sic!) This was already skipped on Linux Mint. - PKGS-7388: Check security repository (...) It will now be skipped for all distributions that do use the Debian / Ubuntu security repositories but are not detected as such anymore (like Pop!_OS). It will now be correctly skipped on Raspbian. This test was already aware of Linux Mint. - PKGS-7390: Check Ubuntu database consitency I am not sure why this test is Ubuntu only, thus it already skipped on Debian and Mint. - PKGS-7394: Check Ubuntu upgradeable packages I am not sure why this is for Ubuntu only, too. I think this should be feature tested instead, as apt-show-versions can be installed on any Debian based distribution as well.. - PKGS-7366: Checking if debsecan is installed (...) While it may be correct to skip, debsecan remains usefull if package versions, patches and vulnerability fixes are very close on Debian itself. It is the correct behaviour to not do this test on Ubuntu and Ubuntu based distributions, as Canonical does not provide the required databases. - PKGS-7420: (Autoupdates) Linux Mint was already skipped on this test. I think this could be solved by introducing a variable like LINUX_VERSION_PARENT. On Linux Mint it would be set to Ubuntu, on e.g. Kali Linux the veriable has the value Debian. Tests can use this variable to check if it is broadly applicable, and then check if the specific distribution is excluded.
Diffstat (limited to 'include/osdetection')
-rw-r--r--include/osdetection40
1 files changed, 20 insertions, 20 deletions
diff --git a/include/osdetection b/include/osdetection
index c2726d31..4af35a18 100644
--- a/include/osdetection
+++ b/include/osdetection
@@ -308,31 +308,31 @@
# 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
+ if [ -z "${LINUX_VERSION}" ] && [ -e "/etc/debian_version" ]; then
+ # Debian/Ubuntu (***) - Set first to Debian
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
- 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
- # Catch all, in case it's unclear what specific release this is.
- OS_FULLNAME="Debian ${OS_VERSION}"
- LINUX_VERSION="Debian"
+ # /etc/lsb-release does not exist on Debian
+ if [ -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
+ 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
+ # 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
- # Ubuntu test (optional) $(grep "[Uu]buntu" /proc/version)
fi
# Override for Linux Mint, as that is initially detected as Debian or Ubuntu