Hallo,
Dagegen war ja die Erkennung nach der Windows-Methode an der Dateiendung ein richtiger Fortschritt. 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? Ich kannte das noch nicht und habe mir mit 'env --help' erstmal eine Kurzinfo geben lassen. 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?
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. Nur bei Software, die über die Paketquellen meiner Distro bereitgestellt wird, bin ich mal vertrauensselig; da gehe ich davon aus, dass das von der betreuenden Community entsprechend geprüft wird.
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. Und dann ist es doch erwünscht, dass diese Änderungen auch für weitere Script- oder Programmaufrufe erhalten bleiben.
So long,
Martin
Keine Sorge, wir finden für jede Lösung ein Problem.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(