summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2019-11-26 15:00:37 +0100
committerSimon Rettberg2019-11-26 15:00:37 +0100
commitcd5eb2366535f2bbf997f06f84bb5d45c20dcd38 (patch)
tree498b85f2b063c6a718034ce704c0801f31abccfb
parent[rootfs-stage32] Force nobody uid and gid (diff)
downloadmltk-cd5eb2366535f2bbf997f06f84bb5d45c20dcd38.tar.gz
mltk-cd5eb2366535f2bbf997f06f84bb5d45c20dcd38.tar.xz
mltk-cd5eb2366535f2bbf997f06f84bb5d45c20dcd38.zip
[rootfs-stage32] Merge any passwd/group/shadow from addons
-rwxr-xr-xcore/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_slx_addons10
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