sudoers: set Defaults secure_path to have sane default settings master
authorMichael Prokop <mika@grml.org>
Thu, 2 Apr 2020 09:56:18 +0000 (11:56 +0200)
committerMichael Prokop <mika@grml.org>
Thu, 2 Apr 2020 09:56:18 +0000 (11:56 +0200)
If the user (non-root) doesn't have /sbin:/usr/sbin inside $PATH (as
present when invoking `mksh -l`, which causes /etc/profile to be
sourced and setting $PATH), then executing sudo might fail with:

| $ sudo apt-get install rdesktop
| [...]
| dpkg: warning: 'ldconfig' not found in PATH or not executable
| dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
| dpkg: error: 2 expected programs not found in PATH or not executable
| Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

Ensure to have a working $PATH setting when invoking sudo
by explicitly setting secure_path.

Closes: https://github.com/grml/grml/issues/144

etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STABLE
etc/grml/fai/config/files/etc/initramfs-tools/conf.d/xz-compress/GRMLBASE
etc/grml/fai/config/files/etc/sudoers/GRMLBASE
etc/grml/fai/config/package_config/GRML_FULL
etc/grml/fai/config/scripts/GRMLBASE/50-lvm
etc/grml/fai/config/scripts/GRMLBASE/80-initramfs

index 3072559..2e0674e 100644 (file)
@@ -7,5 +7,5 @@
   deb-src http://security.debian.org/ stable/updates main contrib
 
 # backports:
-  deb     http://ftp.debian.org/debian/ stretch-backports main contrib non-free
-  deb-src http://ftp.debian.org/debian/ stretch-backports main contrib non-free
+  deb     http://ftp.debian.org/debian/ buster-backports main contrib non-free
+  deb-src http://ftp.debian.org/debian/ buster-backports main contrib non-free
index 4e6b5b3..3631ac8 100644 (file)
@@ -3,7 +3,7 @@
 
 # this is a workaround to pass custom options to the xz compression
 xz() {
-    command xz -8 --check=crc32
+    command xz --check=crc32
 }
 
 # enable XZ compression, reducing initramfs size from ~17MB to ~12MB
index f52c892..7a46342 100644 (file)
@@ -20,6 +20,9 @@ root    ALL=(ALL) ALL
 # WARNING: Never allow external access to the $USERNAME user!!!
 $USERNAME    ALL=NOPASSWD: ALL
 
+# Path used for every command run from sudo
+Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+
 # allow editing of files with editor:
 # $USERNAME ALL=NOPASSWD: sudoedit
 
index dfb99ce..1076aaf 100644 (file)
@@ -104,7 +104,6 @@ e2fsprogs
 exfat-fuse
 exfat-utils
 genisoimage
-hfsprogs
 hfsutils
 jfsutils
 ntfs-3g
@@ -152,6 +151,7 @@ bind9-host
 bridge-utils
 cdpr
 cifs-utils
+cloud-init
 comgt
 dnsmasq
 dnsutils
index 4cecce4..9ec8199 100755 (executable)
@@ -9,11 +9,6 @@
 set -u
 set -e
 
-if ! [ -r "${target}/lib/udev/rules.d/69-lvm-metad.rules" ] ; then
-  echo "File /lib/udev/rules.d/69-lvm-metad.rules doesn't exist, skipping execution of script."
-  exit 0
-fi
-
 echo "Clearing /lib/udev/rules.d/69-lvm-metad.rules to avoid automatic LVM scanning"
 echo '# this file was generated by grml-live script GRMLBASE/50-lvm' > "${target}/lib/udev/rules.d/69-lvm-metad.rules"
 
index a56a579..82cf083 100755 (executable)
@@ -20,8 +20,8 @@ fi
 echo "Rebuilding initramfs"
 
 for initrd in "$(basename $target/boot/vmlinuz-*)" ; do
-    if ! CRYPTSETUP=y $ROOTCMD update-initramfs -k "${initrd##vmlinuz-}" -c ; then
-        echo "Creating fresh initrd did not work, trying update instead:"
-        CRYPTSETUP=y $ROOTCMD update-initramfs -k "${initrd##vmlinuz-}" -u
+    if ! $ROOTCMD update-initramfs -k "${initrd##vmlinuz-}" -c ; then
+        echo "Creating fresh initramfs did not work, trying update instead:"
+        $ROOTCMD update-initramfs -k "${initrd##vmlinuz-}" -u
     fi
 done