summaryrefslogtreecommitdiff
path: root/raveos-calamares-theme/etc/calamares/modules/raveos-chown-homes.sh
blob: acabd6c0e580f5b059e998d21cf0738b63157937 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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