mirror of
https://github.com/aleleba/aleleba-vscode-dockerfile-configuration.git
synced 2026-07-16 12:17:07 -06:00
Fixing root user conflict.
This commit is contained in:
@@ -9,6 +9,10 @@ fi
|
||||
# permitir override explícito vía HOST_UID/HOST_GID, y por defecto usar 1000.
|
||||
DETECTED_UID=$(stat -c '%u' "/home/${HOME_USER}" 2>/dev/null || echo 1000)
|
||||
DETECTED_GID=$(stat -c '%g' "/home/${HOME_USER}" 2>/dev/null || echo 1000)
|
||||
# Descartar UID/GID 0 (root) detectados del mount: es metadata espuria
|
||||
# de bind mounts (p.ej. WSL2/Docker Desktop), no un UID/GID real de host.
|
||||
[ "$DETECTED_UID" = "0" ] && DETECTED_UID=1000
|
||||
[ "$DETECTED_GID" = "0" ] && DETECTED_GID=1000
|
||||
TARGET_UID="${HOST_UID:-$DETECTED_UID}"
|
||||
TARGET_GID="${HOST_GID:-$DETECTED_GID}"
|
||||
|
||||
@@ -86,20 +90,26 @@ if ! id -u "$HOME_USER" > /dev/null 2>&1; then
|
||||
# Changing the property of the directory /home/${HOME_USER}/.vscode
|
||||
sudo chown -R ${HOME_USER} /home/${HOME_USER}/.vscode
|
||||
else
|
||||
# Usuario ya existe (imagen/volumen reusado) — resincronizar UID/GID si cambiaron
|
||||
CURRENT_UID=$(id -u "${HOME_USER}")
|
||||
CURRENT_GID=$(id -g "${HOME_USER}")
|
||||
CURRENT_GROUP=$(id -gn "${HOME_USER}")
|
||||
# Usuario ya existe (imagen/volumen reusado) — resincronizar UID/GID
|
||||
# SOLO si el operador lo pidió explícitamente vía HOST_UID/HOST_GID.
|
||||
# No usar la detección automática del mount acá: en reinicios repetidos
|
||||
# es una señal poco confiable (ver metadata GID 0 de bind mounts en
|
||||
# WSL2/Docker Desktop) y causaba un groupmod fallido en cada arranque.
|
||||
if [[ -n "${HOST_UID-}" || -n "${HOST_GID-}" ]]; then
|
||||
CURRENT_UID=$(id -u "${HOME_USER}")
|
||||
CURRENT_GID=$(id -g "${HOME_USER}")
|
||||
CURRENT_GROUP=$(id -gn "${HOME_USER}")
|
||||
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ] || [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
if [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
sudo groupmod -g "${TARGET_GID}" "${CURRENT_GROUP}"
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ] || [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
if [ "$CURRENT_GID" != "$TARGET_GID" ]; then
|
||||
sudo groupmod -g "${TARGET_GID}" "${CURRENT_GROUP}"
|
||||
fi
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ]; then
|
||||
sudo usermod -u "${TARGET_UID}" "${HOME_USER}"
|
||||
fi
|
||||
sudo find / -xdev \( -user "${CURRENT_UID}" -o -group "${CURRENT_GID}" \) \
|
||||
-exec chown -h "${TARGET_UID}:${TARGET_GID}" {} + 2>/dev/null || true
|
||||
fi
|
||||
if [ "$CURRENT_UID" != "$TARGET_UID" ]; then
|
||||
sudo usermod -u "${TARGET_UID}" "${HOME_USER}"
|
||||
fi
|
||||
sudo find / -xdev \( -user "${CURRENT_UID}" -o -group "${CURRENT_GID}" \) \
|
||||
-exec chown -h "${TARGET_UID}:${TARGET_GID}" {} + 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user