From: Harald Hoyer Date: Thu, 14 Apr 2016 12:56:37 +0000 (+0200) Subject: base/init.sh: don't mount /run with noexec, if the initramfs lives there X-Git-Tag: 045~175 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db7d61cff7f5a5be3a56cff39dc278f004b9c461;p=thirdparty%2Fdracut.git base/init.sh: don't mount /run with noexec, if the initramfs lives there If the initramfs was built with prefix=/run/... /run can't be mounted with noexec, otherwise no binary can be run. Guard against it by looking where /bin/sh is really located. --- diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh index bd7ef7064..a5633936a 100755 --- a/modules.d/99base/init.sh +++ b/modules.d/99base/init.sh @@ -64,7 +64,12 @@ fi if ! ismounted /run; then mkdir -m 0755 /newrun - mount -t tmpfs -o mode=0755,noexec,nosuid,nodev,strictatime tmpfs /newrun >/dev/null + if ! str_starts "$(readlink -f /bin/sh)" "/run/"; then + mount -t tmpfs -o mode=0755,noexec,nosuid,nodev,strictatime tmpfs /newrun >/dev/null + else + # the initramfs binaries are located in /run, so don't mount it with noexec + mount -t tmpfs -o mode=0755,nosuid,nodev,strictatime tmpfs /newrun >/dev/null + fi cp -a /run/* /newrun >/dev/null 2>&1 mount --move /newrun /run rm -fr -- /newrun