commit:     67bb8e2907a1c503e5bc841c70e253c217812347
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 24 12:33:26 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon Aug 24 12:36:40 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67bb8e29

sys-kernel/genkernel: try to detect and warn for problematic /run permissions

Closes: https://bugs.gentoo.org/737270
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 sys-kernel/genkernel/genkernel-4.1.0-r2.ebuild | 18 +++++++++++++++++-
 sys-kernel/genkernel/genkernel-9999.ebuild     | 18 +++++++++++++++++-
 2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/sys-kernel/genkernel/genkernel-4.1.0-r2.ebuild 
b/sys-kernel/genkernel/genkernel-4.1.0-r2.ebuild
index 56ac783bac6..c5db490b8eb 100644
--- a/sys-kernel/genkernel/genkernel-4.1.0-r2.ebuild
+++ b/sys-kernel/genkernel/genkernel-4.1.0-r2.ebuild
@@ -277,10 +277,26 @@ pkg_postinst() {
        fi
 
        local n_root_args=$(grep -o -- '\<root=' /proc/cmdline 2>/dev/null | wc 
-l)
-       if [[ ${n_root_args} > 1 ]]; then
+       if [[ ${n_root_args} > 1 ]] ; then
                ewarn "WARNING: Multiple root arguments (root=) on kernel 
command-line detected!"
                ewarn "If you are appending non-persistent device names to 
kernel command-line,"
                ewarn "next reboot could fail in case running system and 
initramfs do not agree"
                ewarn "on detected root device name!"
        fi
+
+       if [[ -d /run ]] ; then
+               local permission_run_expected="drwxr-xr-x"
+               local permission_run=$(stat -c "%A" /run)
+               if [[ "${permission_run}" != "${permission_run_expected}" ]] ; 
then
+                       ewarn "Found the following problematic permissions:"
+                       ewarn ""
+                       ewarn "    ${permission_run} /run"
+                       ewarn ""
+                       ewarn "Expected:"
+                       ewarn ""
+                       ewarn "    ${permission_run_expected} /run"
+                       ewarn ""
+                       ewarn "This is known to be causing problems for any 
UDEV-enabled service."
+               fi
+       fi
 }

diff --git a/sys-kernel/genkernel/genkernel-9999.ebuild 
b/sys-kernel/genkernel/genkernel-9999.ebuild
index e9d3133ce6f..deecdc19176 100644
--- a/sys-kernel/genkernel/genkernel-9999.ebuild
+++ b/sys-kernel/genkernel/genkernel-9999.ebuild
@@ -275,10 +275,26 @@ pkg_postinst() {
        fi
 
        local n_root_args=$(grep -o -- '\<root=' /proc/cmdline 2>/dev/null | wc 
-l)
-       if [[ ${n_root_args} > 1 ]]; then
+       if [[ ${n_root_args} > 1 ]] ; then
                ewarn "WARNING: Multiple root arguments (root=) on kernel 
command-line detected!"
                ewarn "If you are appending non-persistent device names to 
kernel command-line,"
                ewarn "next reboot could fail in case running system and 
initramfs do not agree"
                ewarn "on detected root device name!"
        fi
+
+       if [[ -d /run ]] ; then
+               local permission_run_expected="drwxr-xr-x"
+               local permission_run=$(stat -c "%A" /run)
+               if [[ "${permission_run}" != "${permission_run_expected}" ]] ; 
then
+                       ewarn "Found the following problematic permissions:"
+                       ewarn ""
+                       ewarn "    ${permission_run} /run"
+                       ewarn ""
+                       ewarn "Expected:"
+                       ewarn ""
+                       ewarn "    ${permission_run_expected} /run"
+                       ewarn ""
+                       ewarn "This is known to be causing problems for any 
UDEV-enabled service."
+               fi
+       fi
 }

Reply via email to