hallöli!
ich hab da mal wieder ne frageeee:
ich hab mir unter suse 7.1 den opera6 browser runtergeladen. hab ich auch installiert bekommen. alles klappt prima.
jetzt wüßte ich nur gern, warum das so geklappt hat. ich hab mir das paket als tar.gz runtergeladen und entpackt. kein problem.
dann hab ich versucht install.sh und runme.sh auszuführen. es hat nicht geklappt.
für linux war es so, als wären es keine ausführbaren programme.
dann hab ich den MidnightCommander mc gestartet. als ich dieser beiden dateien nun unter dem mc gestartet hab, hats plötzlich funktioniert.
genau so gings mir auch mit setiathome, was ich mir runtergeladen hab. ich konnte das auch nur per MidnightCommander starten.
warum ist das so? und warum kann ich sowas nicht direkt über die shell starten? oder gibts da noch einen speziellen befehl für?
vielen dank
Silent Bob
Linux 15.068 Themen, 107.492 Beiträge
Hi bob,
Lass mich mal eine erklärung versuchen:
Alle Ausführbaren Dateien liegen in Verzeichnissen, die in der Pfadvariable angegeben sind. Das sind u.a. /bin /sbin /usr/share/bin und so weiter. ./ (also das Verzeichnis, in dem man gerade ist) ist nicht angegeben, aus folgendem Grund:
Nimm an, jemand hackt dein System und legt dir ein Datei mit Namen "ls" in dein Home-Verzeichnis (sog. Kuckucksei). Statt aber das Directory zu listen, soll der Befehl deine Festplatte formatieren. Wenn Du dich nun einloggst, und in dein Home-Verzeichnis gehst, und dann "ls" aufrufst, wäre Deine Festplatte formatiert....wäre.... wenn da nicht die Pfadvariable wäre. Denn die Pfadvariable legt fest, wo sich ausführbare Dateien befinden, und sucht die Pfade der Reihe nach nach dem Befehl "ls" durch. Wird er in den Verzeichnissen nicht gefunden, gilt er als nicht existent.
Wenn du eine ausführbare Datei nun trotzdem ausführen willst, die nicht in den Verzeichnissen der Pfadvariable angegeben ist, musst Du das Verzeichnis explizit angeben. Linux geht dann davon aus, dass Du weisst was Du tust. Das geschieht mit dem ./ vorne dran. Damit gibst Du quasi das Verzeichnis an, in dem du dich gerade befindest.
Um also die oben angesprochene "ls"-Datei (Kuckucksei) auszuführen müsstest Du in deinem home-Verzeichnis ./ls eingeben, und das tut niemand.
Deshalb sollte man in der Pfasdvariable auch niemals ./ mitangeben, da sonst eine Sicherheitslücke auftritt.
Ich hoffe, das ist einigermassen gut erklärt, ansonsten frag' nochmal
Bis denne
poly
