#!/usr/bin/bash set -e system_fips=/etc/system-fips dracut_cfg_d=/etc/dracut.conf.d dracut_cfg=$dracut_cfg_d/40-fips.conf is_ostree_system=0 create_system_fips_file () { echo "# FIPS module installation complete" >$system_fips }; if test -f /run/ostree-booted -o -d /ostree; then is_ostree_system=1 fi if test x"$1" != x--complete && test x"$1" != x--undo ; then echo "Complete / undo the installation of FIPS modules." echo "Not to be used directly, see fips-mode-setup(8)." echo "usage: $0 --complete|--undo (unsupported)" exit 2 fi if [ $(id -u) != 0 ]; then echo "You must be root to run $(basename $0)" exit 1 fi umask 022 if test "$is_ostree_system" = 1; then if test x"$1" == x--complete; then create_system_fips_file fi if test x"$1" == x--undo ; then rm -f $system_fips fi fi if test ! -d $dracut_cfg_d -o ! -d /boot -o "$is_ostree_system" = 1 ; then # No dracut configuration or boot directory present, do not try to modify it. # Also, on OSTree systems, we currently rely on the initrd already including # the FIPS module. exit 0 fi if test x"$1" == x--complete; then trap "rm -f $dracut_cfg $system_fips" ERR create_system_fips_file cat >$dracut_cfg </dev/null; then zipl else echo '`zipl` execution has been skipped: `zipl` not found.' fi fi