fix(deploy): permissions config et prompt d'écrasement au réinstall
- ConfigurationDirectoryMode 0750→0755 : le DynamicUser (sans groupe root) peut maintenant traverser /etc/nanometrics et lire config.toml - chmod 644 systématique sur config.toml même si conservé (corrige les anciennes installs en 640 qui causent un PermissionDenied au démarrage) - Prompt interactif si config existe : o=écraser, N=conserver ; variable OVERWRITE_CONFIG=true pour forcer sans interaction (curl|bash) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
8d4dc0e853
commit
f604e22f6e
+30
-3
@@ -112,10 +112,33 @@ ok "Répertoire créé"
|
|||||||
# ── 7. Écrire config.toml ─────────────────────────────────────────────────────
|
# ── 7. Écrire config.toml ─────────────────────────────────────────────────────
|
||||||
echo "[3/5] Écriture de $CONFIG_FILE"
|
echo "[3/5] Écriture de $CONFIG_FILE"
|
||||||
|
|
||||||
# Ne pas écraser une config existante (upgrade)
|
OVERWRITE_CONFIG="${OVERWRITE_CONFIG:-}"
|
||||||
|
WRITE_CONFIG=true
|
||||||
|
|
||||||
if [ -f "$CONFIG_FILE" ]; then
|
if [ -f "$CONFIG_FILE" ]; then
|
||||||
warn "config.toml déjà présent — conservé tel quel"
|
if [ "${OVERWRITE_CONFIG}" = "true" ]; then
|
||||||
else
|
warn "OVERWRITE_CONFIG=true — config.toml sera écrasé"
|
||||||
|
WRITE_CONFIG=true
|
||||||
|
elif [ -t 0 ]; then
|
||||||
|
# Mode interactif (bash local, pas curl | bash)
|
||||||
|
echo ""
|
||||||
|
warn "Un config.toml existe déjà :"
|
||||||
|
echo " $CONFIG_FILE"
|
||||||
|
printf " Écraser la configuration existante ? [o/N] : "
|
||||||
|
read -r _ANS
|
||||||
|
if [[ "$_ANS" =~ ^[Oo]$ ]]; then
|
||||||
|
WRITE_CONFIG=true
|
||||||
|
else
|
||||||
|
ok "config.toml conservé"
|
||||||
|
WRITE_CONFIG=false
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warn "config.toml déjà présent — conservé (relancez avec OVERWRITE_CONFIG=true pour écraser)"
|
||||||
|
WRITE_CONFIG=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$WRITE_CONFIG" = "true" ]; then
|
||||||
cat > "$CONFIG_FILE" << TOML
|
cat > "$CONFIG_FILE" << TOML
|
||||||
[server]
|
[server]
|
||||||
ip = "$SERVER_IP"
|
ip = "$SERVER_IP"
|
||||||
@@ -165,6 +188,10 @@ TOML
|
|||||||
ok "config.toml créé"
|
ok "config.toml créé"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# S'assurer que le fichier est toujours lisible (cas d'un config existant en 640)
|
||||||
|
chmod 644 "$CONFIG_FILE" 2>/dev/null || true
|
||||||
|
chmod 755 "$CONFIG_DIR"
|
||||||
|
|
||||||
# ── 8. Installer le fichier service ──────────────────────────────────────────
|
# ── 8. Installer le fichier service ──────────────────────────────────────────
|
||||||
echo "[4/5] Installation du service systemd"
|
echo "[4/5] Installation du service systemd"
|
||||||
curl -fsSL -o "$SERVICE_FILE" "$SERVICE_URL"
|
curl -fsSL -o "$SERVICE_FILE" "$SERVICE_URL"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ RestartSec=5
|
|||||||
|
|
||||||
DynamicUser=yes
|
DynamicUser=yes
|
||||||
ConfigurationDirectory=nanometrics
|
ConfigurationDirectory=nanometrics
|
||||||
ConfigurationDirectoryMode=0750
|
ConfigurationDirectoryMode=0755
|
||||||
|
|
||||||
ProtectSystem=strict
|
ProtectSystem=strict
|
||||||
ProtectHome=read-only
|
ProtectHome=read-only
|
||||||
|
|||||||
Reference in New Issue
Block a user