diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-sysusers b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-sysusers new file mode 100755 index 0000000000..172b5a8e43 --- /dev/null +++ b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-sysusers @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# Run systemd-sysusers for the target OSTree sysroot. + +set -euo pipefail + +main() { + coreos-sysroot-bwrap systemd-sysusers + coreos-relabel \ + /etc/group \ + /etc/group- \ + /etc/gshadow \ + /etc/gshadow- \ + /etc/passwd \ + /etc/passwd- \ + /etc/shadow \ + /etc/shadow- +} + +main "$@" diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-sysusers.service b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-sysusers.service new file mode 100644 index 0000000000..85c8e1b1ba --- /dev/null +++ b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-sysusers.service @@ -0,0 +1,16 @@ +[Unit] +Description=Populate OSTree sysusers +DefaultDependencies=false +ConditionKernelCommandLine=|ostree + +# Need to do this with all mount points active +After=ignition-mount.service + +# But *before* we start dumping files in there +Before=ignition-files.service +Before=ignition-ostree-populate-var.service + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/sbin/ignition-ostree-sysusers diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh index c50358cbd4..89eaed86d1 100755 --- a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh @@ -60,6 +60,10 @@ install() { sgdisk \ find + inst_script "$moddir/ignition-ostree-sysusers" \ + "/usr/sbin/ignition-ostree-sysusers" + install_ignition_unit ignition-ostree-sysusers.service + for x in mount populate; do install_ignition_unit ignition-ostree-${x}-var.service inst_script "$moddir/ignition-ostree-${x}-var.sh" "/usr/sbin/ignition-ostree-${x}-var"