diff options
author | Simon Rettberg | 2019-11-26 15:00:37 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-11-26 15:00:37 +0100 |
commit | cd5eb2366535f2bbf997f06f84bb5d45c20dcd38 (patch) | |
tree | 498b85f2b063c6a718034ce704c0801f31abccfb | |
parent | [rootfs-stage32] Force nobody uid and gid (diff) | |
download | mltk-cd5eb2366535f2bbf997f06f84bb5d45c20dcd38.tar.gz mltk-cd5eb2366535f2bbf997f06f84bb5d45c20dcd38.tar.xz mltk-cd5eb2366535f2bbf997f06f84bb5d45c20dcd38.zip |
[rootfs-stage32] Merge any passwd/group/shadow from addons
-rwxr-xr-x | core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons b/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons index d99a1ec2..26b82341 100755 --- a/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons +++ b/core/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons @@ -61,6 +61,16 @@ mkdir -p "$ADDON_MOUNT_POINT" mount -t squashfs -o ro "$ADDON_PATH" "$ADDON_MOUNT_POINT" || \ { slxlog --echo "addon-setup-mount" "Failed to mount $ADDON_PATH."; exit 1; } +# Merge any passwd/group/... files +merguez() { + local tmp=$(mktemp) + cat "$@" | awk -F: '!n[$1]++' > "$tmp" + mv -f -- "$tmp" "$1" +} +for i in group shadow passwd; do + [ -s "${ADDON_MOUNT_POINT}/etc/$i" ] && merguez "/etc/$i" "${ADDON_MOUNT_POINT}/etc/$i" +done + # now append it to / echo "Appending ${ADDON_MOUNT_POINT} to /" if ! mount -o "remount,ins:1:${ADDON_MOUNT_POINT}=rr" / ; then # ins:1 makes sure the addon is before stage32, after rw layer |