From 54e15992c677da2391ffb243eaa9767bc95c67a4 Mon Sep 17 00:00:00 2001 From: Valentin David Date: Tue, 9 Dec 2025 15:14:28 +0100 Subject: [PATCH] static: add generator for hybrid-users mounts --- .../systemd/system-generators/hybrid-users | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 static/usr/lib/systemd/system-generators/hybrid-users diff --git a/static/usr/lib/systemd/system-generators/hybrid-users b/static/usr/lib/systemd/system-generators/hybrid-users new file mode 100755 index 00000000..09c4ba73 --- /dev/null +++ b/static/usr/lib/systemd/system-generators/hybrid-users @@ -0,0 +1,44 @@ +#!/bin/sh + +set -eu + +if ! [ -d /run/snapd/hybrid-users ]; then + exit 0 +fi + +normal="${1}" + +sysroot= +sysroot_unit= +target="local-fs.target" +if [ -e /etc/initrd-released ]; then + sysroot=/sysroot + sysroot_unit=sysroot- + target=initrd-fs.target +fi + +gen_mount() { + unit="${1}" + file="${2}" + cat <"${normal}/${unit}" +[Unit] +ConditionPathExists=!${sysroot}/etc/system-image/writable-paths +DefaultDependencies=no +Before=${target} +Before=umount.target +Conflicts=umount.target + +[Mount] +What=${sysroot}/etc/${file} +Where=/run/snapd/hybrid-users/${file} +Type=none +Options=bind +EOF + mkdir -p "${normal}/${target}.d" + ln -s "../${unit}" "${normal}/${target}.d/${unit}" +} + +gen_mount "${sysroot_unit}etc-passwd.mount" passwd +gen_mount "${sysroot_unit}etc-shadow.mount" shadow +gen_mount "${sysroot_unit}etc-group.mount" group +gen_mount "${sysroot_unit}etc-gshadow.mount" gshadow