fix(installer): Re-Exec auch ohne curl (wget/busybox/lokale Quelle)
Auf einem frischen System fehlt curl haeufig — genau dort, wo apt laeuft und der Schutz am noetigsten ist. Der Re-Exec scheiterte deshalb still und der Installer lief ohne Schutz weiter. Jetzt: curl -> wget -> busybox wget -> lokale Quelle (NETBIRD_TG_SOURCE). Ist keiner verfuegbar, wird das ausdruecklich gemeldet statt still uebergangen.
This commit is contained in:
1 parent
9e6593a6f6
commit
06ad67f8f5
1 file changed
+23
-6
+23
-6
@@ -21,9 +21,28 @@ if [ -z "${NETBIRD_TG_REEXEC:-}" ] && [ ! -t 0 ]; then
|
|||||||
# Rest und die Kopie waere unvollstaendig. Stattdessen frisch von der Quelle
|
# Rest und die Kopie waere unvollstaendig. Stattdessen frisch von der Quelle
|
||||||
# laden (dieselbe URL, die der Aufrufer benutzt hat).
|
# laden (dieselbe URL, die der Aufrufer benutzt hat).
|
||||||
_src="${REPO_RAW:-https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main}"
|
_src="${REPO_RAW:-https://gitea.m-m.bio/mm/netbird-telegraf-installer/raw/branch/main}"
|
||||||
_self="$(mktemp /tmp/netbird-telegraf-install.XXXXXX)"
|
_self="$(mktemp /tmp/netbird-telegraf-install.XXXXXX 2>/dev/null || echo /tmp/netbird-tg.$$)"
|
||||||
if command -v curl >/dev/null 2>&1 && \
|
|
||||||
curl -fsSL "$_src/install.sh" -o "$_self" 2>/dev/null && [ -s "$_self" ]; then
|
# WICHTIG: auf einem FRISCHEN System gibt es oft kein curl — genau dort, wo
|
||||||
|
# der Schutz am noetigsten ist (dort laeuft apt und damit needrestart).
|
||||||
|
# Deshalb BEIDE Wege versuchen und, wenn keiner geht, das Skript weiter
|
||||||
|
# ausfuehren wie bisher (dann bleibt das Risiko, aber es laeuft).
|
||||||
|
_dl=0
|
||||||
|
if command -v curl >/dev/null 2>&1; then
|
||||||
|
curl -fsSL "$_src/install.sh" -o "$_self" 2>/dev/null && [ -s "$_self" ] && _dl=1
|
||||||
|
fi
|
||||||
|
if [ "$_dl" -eq 0 ] && command -v wget >/dev/null 2>&1; then
|
||||||
|
wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1
|
||||||
|
fi
|
||||||
|
if [ "$_dl" -eq 0 ] && command -v busybox >/dev/null 2>&1; then
|
||||||
|
busybox wget -q -O "$_self" "$_src/install.sh" 2>/dev/null && [ -s "$_self" ] && _dl=1
|
||||||
|
fi
|
||||||
|
# Letzter Weg: liegt das Skript schon lokal (z. B. per scp), von dort kopieren.
|
||||||
|
if [ "$_dl" -eq 0 ] && [ -n "${NETBIRD_TG_SOURCE:-}" ] && [ -s "${NETBIRD_TG_SOURCE:-}" ]; then
|
||||||
|
cp "${NETBIRD_TG_SOURCE}" "$_self" 2>/dev/null && _dl=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$_dl" -eq 1 ]; then
|
||||||
chmod 0700 "$_self"
|
chmod 0700 "$_self"
|
||||||
printf '[netbird-telegraf] Selbstschutz: Skript laeuft jetzt von %s (stdin frei).\n' "$_self"
|
printf '[netbird-telegraf] Selbstschutz: Skript laeuft jetzt von %s (stdin frei).\n' "$_self"
|
||||||
# stdin ausdruecklich auf /dev/null: der Prozess erbt sonst die Pipe, und
|
# stdin ausdruecklich auf /dev/null: der Prozess erbt sonst die Pipe, und
|
||||||
@@ -33,9 +52,7 @@ if [ -z "${NETBIRD_TG_REEXEC:-}" ] && [ ! -t 0 ]; then
|
|||||||
rm -f "$_self"
|
rm -f "$_self"
|
||||||
exit "$_rc"
|
exit "$_rc"
|
||||||
fi
|
fi
|
||||||
# Kein curl oder Download fehlgeschlagen: weiter wie bisher. Dann bleibt das
|
printf '[netbird-telegraf] HINWEIS: kein curl/wget fuer den Selbstschutz — weiter ohne.\n'
|
||||||
# Risiko, aber der Installer laeuft wenigstens (z. B. in einer Umgebung ohne
|
|
||||||
# Netz beim zweiten Aufruf).
|
|
||||||
rm -f "$_self"
|
rm -f "$_self"
|
||||||
fi
|
fi
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|||||||
Reference in new issue
Block a user