Ver Fonte

fix: curl|sh sudo re-exec via temp file; Invercargill-Json clone from fabrica (not sr.ht)

clanker há 1 semana atrás
pai
commit
4c2cd55f0f
2 ficheiros alterados com 1620 adições e 0 exclusões
  1. 11 0
      installer/compile.sh
  2. 1609 0
      installer/install-usm.sh

+ 11 - 0
installer/compile.sh

@@ -111,6 +111,17 @@ cat > "$HEADER_FILE" << SCRIPT_HEADER
 # Version: $VERSION
 # Generated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
 
+# Handle curl | sh with sudo re-exec: when piped, \$0 isn't a re-readable
+# file, so capture the remaining script from stdin into a temp file and
+# re-exec that with sudo (this guard must run before any other code so
+# the pipe hasn't been fully consumed yet)
+if [[ \$EUID -ne 0 && ! -f "\$0" ]]; then
+    _usm_tmp=\$(mktemp /tmp/usm-install.XXXXXX.sh)
+    cat > "\$_usm_tmp"
+    chmod +x "\$_usm_tmp"
+    exec sudo bash "\$_usm_tmp" "\$@"
+fi
+
 set -e
 
 SCRIPT_HEADER

Diff do ficheiro suprimidas por serem muito extensas
+ 1609 - 0
installer/install-usm.sh


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff