]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
fix(fips): remove /dev/{random,urandom} pre-creation
authorVitaly Kuznetsov <vkuznets@redhat.com>
Thu, 23 May 2024 12:20:43 +0000 (14:20 +0200)
committerNeal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>
Fri, 24 May 2024 23:07:49 +0000 (19:07 -0400)
Random device nodes were required to workaround libgcrypt initialization
problem (see https://bugzilla.redhat.com/show_bug.cgi?id=1401444) which
is gone since libgcrypt-1.10 (2022): modern Linux kernels (3.17+) support
getrandom() syscall and libgcrypt has switch to using getentropy()
(glibc-2.25+).

The requirement to run dracut as root (which is needed to mknod
/dev/{random,urandom}) is a particular problem for building UKIs in distro
build systems where packages are not built by a privileged user.

Note, dracut itself always pre-creates /dev/{null,kmsg,console,random,urandom}
devices when running privileged so the patch has no effect on 'traditional'
setup.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
modules.d/01fips/module-setup.sh

index 67d9894feba16fac8a83e84ae090376725408cf5..83fcd564541852c90d7bfc794e377f23f340585a 100755 (executable)
@@ -67,16 +67,4 @@ install() {
     inst_multiple sha512hmac rmmod insmod mount uname umount grep sed cut find sort
 
     inst_simple /etc/system-fips
-    [ -c "${initdir}"/dev/random ] || mknod "${initdir}"/dev/random c 1 8 \
-        || {
-            dfatal "Cannot create /dev/random"
-            dfatal "To create an initramfs with fips support, dracut has to run as root"
-            return 1
-        }
-    [ -c "${initdir}"/dev/urandom ] || mknod "${initdir}"/dev/urandom c 1 9 \
-        || {
-            dfatal "Cannot create /dev/urandom"
-            dfatal "To create an initramfs with fips support, dracut has to run as root"
-            return 1
-        }
 }