summaryrefslogtreecommitdiff
path: root/raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh')
-rwxr-xr-xraveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh b/raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh
new file mode 100755
index 0000000..acabd6c
--- /dev/null
+++ b/raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+# RaveOS: célrendszer /home könyvtárainak rekurzív chown-ja a céluserhez.
+# A Calamares shellprocess-final (dontChroot: true) hívja, $1 = ${ROOT}.
+set -euo pipefail
+
+ROOT="${1:-}"
+[ -n "$ROOT" ] || { echo "raveos-chown-homes: ROOT hiányzik"; exit 1; }
+
+PASSWD="$ROOT/etc/passwd"
+[ -f "$PASSWD" ] || { echo "raveos-chown-homes: $PASSWD hiányzik"; exit 0; }
+
+while IFS=: read -r user _ uid gid _ _ home _; do
+ [ -n "$user" ] || continue
+ case "$uid" in
+ ''|*[!0-9]*) continue ;;
+ esac
+ [ "$uid" -ge 1000 ] && [ "$uid" -lt 60000 ] || continue
+ case "$gid" in
+ ''|*[!0-9]*) gid="$uid" ;;
+ esac
+ if [ -z "$home" ] || [ "$home" = "/" ]; then
+ home="/home/$user"
+ fi
+ [ -d "$ROOT$home" ] || continue
+ chown -R "$uid:$gid" "$ROOT$home" 2>/dev/null || true
+ echo "raveos-chown-homes: $home -> $uid:$gid"
+done < "$PASSWD"
+
+exit 0