Tach!
Denn das für die Laufzeitumgebung notwendige Programm kann ja von System zu System in verschiedenen Verzeichnissen liegen, es ist also problematisch, das im Kopf jedes Scripts festzuschreiben.
Dafür/dagegen gibt es ja /usr/bin/env
könntest du den Zusammenhang etwas näher erläutern? [...] Wenn ich es richtig verstehe, kann ich damit ein anderes Programm starten und diesem ein gezielt geändertes Environment mitgeben. Okay. Aber wie rettet mich das vor Scripts, in deren shebang-Zeile ein ganz anderes Verzeichnis für das erforderliche Programm steht, als es in meiner eigenen Installation der Fall ist?
Dann ist es schon zu spät. Wenn die Shebang gleich auf #!/usr/bin/env php steht, dann wird PHP gestartet, ohne dass das Script genau wissen muss, wo die "php.exe" liegt.
Genauso könntest du ja - um mal zu übertreiben - für eine Sandbox plädieren. Meist braucht man die nicht, also kann man die ja generell beim Start von Programmen/Scripten/Dokumenten links liegen lassen und nur wenn man was wirklich verdächtiges starten/öffnen will, dann nimmt man sie.
Ja, genau so gehe ich vor. Wobei meine Sandbox in der Regel eine VM ist. Programme, die nicht mein Vertrauen haben, kommen vorläufig nicht auf mein Alltags- und Produktivsystem.
Das mag mit deiner Alles-sperren-plus-Whitelist-Einstellung zuzüglich deines Sachverstands wunderbar harmonieren, ist aber keine Option für die Massen, die eher die Neugier in den Vordergrund stellen.
Nur, wer prüft das denn jedes Mal vorher, ob ein Programm keinen Unfug anstellt? Wer prüft denn, dass das Script die Shell genauso wieder verlässt, wie es sie vorgefunden hatte und kein Unrat liegen bleibt?
Was für Unrat meinst du? Geänderte Environment-Einträge? Ich sag's mal so: WENN ein Script das Environment ändert, dann hat das doch normalerweise einen Sinn.
Möglicherweise, aber was weiß denn ein Programm (du darfst hier nicht nur Shellscripts betrachten) von der aufrufenden Umgebung und was sie so für Bedürfnisse hat? Oft geht es nur darum, den Kindprozessen eine gewünschte Umgebung bereitzustellen. Es ist aufwendiger am Ende (nebst unvorhergesehenem Abbruch) alles zu Fuß aufzuräumen. Einfacher, effektiver und effizienter ist es, die benutzte Umgebung einfach komplett zu entsorgen.
dedlfix.