From a119686bfab0e15ebca325c640c25cb5ec392e1b Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 26 Apr 2026 19:25:32 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20git=5Fsafe()=20korrigiert=20Eigent=C3=BC?= =?UTF-8?q?mer=20automatisch=20bei=20User-Wechsel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chown -R nur wenn APP_DIR nicht dem APP_USER gehört, sonst nur .git. Verhindert "Your local changes would be overwritten" nach root-Läufen. Co-Authored-By: Claude Sonnet 4.6 --- scripts/update.sh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/update.sh b/scripts/update.sh index d13ac66..ec100cd 100644 --- a/scripts/update.sh +++ b/scripts/update.sh @@ -68,11 +68,18 @@ artisan_up(){ git_safe(){ # System-Level safe.directory (root schreibt /etc/gitconfig → gilt für alle User) git config --system --add safe.directory "${APP_DIR}" >/dev/null 2>&1 || true - # User-Level als Fallback + # Wenn APP_DIR einem anderen User gehört (z.B. nach User-Wechsel mailwolt→www-data), + # kompletten Baum neu besitzen — nur wenn nötig (einmalig teuer, danach billig) + local dir_owner + dir_owner="$(stat -c '%U' "${APP_DIR}" 2>/dev/null || echo '')" + if [[ -n "${dir_owner}" && "${dir_owner}" != "${APP_USER}" ]]; then + echo "[i] Eigentümer-Korrektur: ${APP_DIR} → ${APP_USER} (war: ${dir_owner})" + chown -R "${APP_USER}":"${APP_GROUP}" "${APP_DIR}" 2>/dev/null || true + else + # Nur .git sicherstellen (schnell) + chown -R "${APP_USER}":"${APP_GROUP}" "${APP_DIR}/.git" 2>/dev/null || true + fi as_app "git config --global --add safe.directory ${APP_DIR} >/dev/null 2>&1 || true" - # .git vollständig + APP_DIR-Eintrag dem APP_USER gehören - chown "${APP_USER}":"${APP_GROUP}" "${APP_DIR}" 2>/dev/null || true - chown -R "${APP_USER}":"${APP_GROUP}" "${APP_DIR}/.git" 2>/dev/null || true } git_dirty_check(){