diff options
Diffstat (limited to 'raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh')
| -rwxr-xr-x | raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh | 29 |
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 |