]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
dracut.sh: only set the owner of files to 0:0, if generated as non-root
authorHarald Hoyer <harald@redhat.com>
Thu, 30 Jan 2014 15:11:40 +0000 (16:11 +0100)
committerHarald Hoyer <harald@redhat.com>
Tue, 29 Jul 2014 09:52:05 +0000 (11:52 +0200)
If the root user generates the initramfs image, preserve the ownership
of the files. This of course cannot be done for non-root users
generating an initramfs image.

dracut.sh

index 58acb64738cb6f92cb43b39517570c64e39c11fe..4e2399360f9fae8f30b79c530678d74bba55f431 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -1377,13 +1377,16 @@ fi
 
 rm -f -- "$outfile"
 dinfo "*** Creating image file ***"
+
+[[ "$UID" != 0 ]] && cpio_owner_root="-R 0:0"
+
 if [[ $create_early_cpio = yes ]]; then
     echo 1 > "$early_cpio_dir/d/early_cpio"
     # The microcode blob is _before_ the initramfs blob, not after
-    (cd "$early_cpio_dir/d";     find . -print0 | cpio --null -R 0:0 -H newc -o --quiet >../early.cpio)
+    (cd "$early_cpio_dir/d";     find . -print0 | cpio --null $cpio_owner_root -H newc -o --quiet >../early.cpio)
     mv $early_cpio_dir/early.cpio $outfile.$$
 fi
-if ! ( umask 077; cd "$initdir"; find . -print0 | cpio --null -R 0:0 -H newc -o --quiet | \
+if ! ( umask 077; cd "$initdir"; find . -print0 | cpio --null $cpio_owner_root -H newc -o --quiet | \
     $compress >> "$outfile.$$"; ); then
     dfatal "dracut: creation of $outfile.$$ failed"
     exit 1