diff --git a/init.sh b/init.sh index 2991dc2..d51b873 100755 --- a/init.sh +++ b/init.sh @@ -1339,12 +1339,20 @@ runFullUninstall() rm -rf /docker isSuccessful "Removed /docker" - # 5. Remove the LibrePortal users + their subuid/subgid ranges. - pkill -9 -u "$mgr" >/dev/null 2>&1 || true - userdel -r "$mgr" >/dev/null 2>&1 || true - userdel -r "$iuser" >/dev/null 2>&1 || true + # 5. Remove the LibrePortal users + their subuid/subgid ranges + home dirs. + # Terminate each user's session/linger and kill its processes first, or + # `userdel -r` leaves the home behind ("user currently used"); rm -rf the + # home afterwards as a backstop. + local u + for u in "$mgr" "$iuser"; do + loginctl disable-linger "$u" >/dev/null 2>&1 || true + loginctl terminate-user "$u" >/dev/null 2>&1 || true + pkill -9 -u "$u" >/dev/null 2>&1 || true + userdel -r "$u" >/dev/null 2>&1 || true + [[ -n "$u" ]] && rm -rf "/home/$u" + done sed -i "/^${mgr}:/d;/^${iuser}:/d" /etc/subuid /etc/subgid 2>/dev/null || true - isSuccessful "Removed users '$mgr' + '$iuser'" + isSuccessful "Removed users '$mgr' + '$iuser' (+ home dirs)" isHeader "LibrePortal uninstalled" isNotice "Left in place: docker engine, docker-compose, apt deps, SSH config."