Hallo,
z.B. ich befinde mich im Terminal Fenster:
...und gebe "netscape" ein dann startet Netscape.
Es gibt aber auch Programme die muss man mit
"./programm_name" starten.
Wofür dient das "./"?
Linux Programme
Re: Linux Programme
Wenn ein Programm nicht im Path ist, sondern direkt aus dem aktuellen Verzeichnis gestartet wird, dann braucht man ./ .
Warum kann ich nicht genau sagen. Ich hab mal gesagt bekommen es wäre wegen der Sicherheit ... !?
Warum kann ich nicht genau sagen. Ich hab mal gesagt bekommen es wäre wegen der Sicherheit ... !?
Re: Linux Programme
"./" wird benötigt, damit man nicht plötzlich ein Programm im aktuellen Verzeichnis startet, das da nicht hin gehört (Virus o.ä.).
Man stelle sich mal ein ein Programm im Heimatverzeichnis namens "startx" vor das den Inhalt "rm -rf /" hat...
CU
Andi
Man stelle sich mal ein ein Programm im Heimatverzeichnis namens "startx" vor das den Inhalt "rm -rf /" hat...
CU
Andi
Re: Linux Programme
Wieso läßt das dann Solaris zu, daß man
Programme im aktuellen Verzeichnis ohne
'./' starten kann ?
Strange ?
Programme im aktuellen Verzeichnis ohne
'./' starten kann ?
Strange ?
Re: Linux Programme
Hi,
von zulassen oder nicht zulassen kann keine Rede sein. Man braucht das "./", wenn das aktuelle Directory nicht in $PATH enthalten ist. $PATH wiederum kann sich jeder User einstellen, wie er möchte.
Gruß,
hjb
von zulassen oder nicht zulassen kann keine Rede sein. Man braucht das "./", wenn das aktuelle Directory nicht in $PATH enthalten ist. $PATH wiederum kann sich jeder User einstellen, wie er möchte.
Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
Re: Linux Programme
Die PATH-Variable enthält (wie hjb ganz richtig sagte) eine Liste von Verzeichnissen, die die Shell nach passenden Dateien durchsucht, wenn man einfach ein
ls
(beispielsweise) eintippt. Ansonsten müsste man ja immer
/bin/ls
eintippen. Funktioniert auch, ist aber viiiieeel zu lang. Wenn aber nun ein Skript/Executable geladen werden soll, dessen Verzeichnis nicht in der PATH-Variablen auftaucht, muss man den Pfad explizit angeben. Das kann entweder wie oben mit absoluten Pfadnamen (führender /) geschehen oder halt mit relativen Pfadnamen. Diese verweisen auf eine Datei ab dem eigenen Arbeitsverzeichnis. Wenn man also im /etc-Verzeichnis steht, könnte man auch tippen
../bin/ls
Also ab Arbeitsverzeichnis eine Stufe nach oben, dann ins Verzeichnis bin und dort Executable ls laden.
Und was hat das jetzt mit Sicherheit zu tun, Michael Flaig? Ganz einfach. "./" sind für die meisten Leute genau zwei Zeichen zu viel zu tippen, daher ergänzen sie ihre PATH-Variable um das Verzeichnis ".", also dem jeweiligen Arbeitsverzeichnis, in dem sie gerade stehen. Macht das auch der SysAdmin, kann folgendes passieren:
cd ~eviluser
ls
Harmlos, oder? Hat eviluser vorher ein Skript mit Namen "ls" in seinem Verzeichnis abgelegt, ruft's jetzt der SysAdmin mit sämtlichen Rechten auf. Das Skript kann jetzt (wie Andi "vorschlug") ein "rm -rf /" ausführen, oder ein "echo '+ +' >>/.rhosts", oder oder oder...
Und Manfreds Frage sollte jetzt auch geklärt sein, es dreht sich einfach um den Inhalt der PATH-Variablen. Meines Wissens ist die Voreinstellung der PATH-Variablen für root bei Solaris korrekt (ohne "."), bei normalen Usern weiss ich's nicht. Letzten Endes ist es aber doch meistens eine Sache des Admins. (Sollte der Solaris-Admin tatsächlich diesen Fehler machen, würde ich das als eine Einladung zum harmlosen Ärgern werten...
ls
(beispielsweise) eintippt. Ansonsten müsste man ja immer
/bin/ls
eintippen. Funktioniert auch, ist aber viiiieeel zu lang. Wenn aber nun ein Skript/Executable geladen werden soll, dessen Verzeichnis nicht in der PATH-Variablen auftaucht, muss man den Pfad explizit angeben. Das kann entweder wie oben mit absoluten Pfadnamen (führender /) geschehen oder halt mit relativen Pfadnamen. Diese verweisen auf eine Datei ab dem eigenen Arbeitsverzeichnis. Wenn man also im /etc-Verzeichnis steht, könnte man auch tippen
../bin/ls
Also ab Arbeitsverzeichnis eine Stufe nach oben, dann ins Verzeichnis bin und dort Executable ls laden.
Und was hat das jetzt mit Sicherheit zu tun, Michael Flaig? Ganz einfach. "./" sind für die meisten Leute genau zwei Zeichen zu viel zu tippen, daher ergänzen sie ihre PATH-Variable um das Verzeichnis ".", also dem jeweiligen Arbeitsverzeichnis, in dem sie gerade stehen. Macht das auch der SysAdmin, kann folgendes passieren:
cd ~eviluser
ls
Harmlos, oder? Hat eviluser vorher ein Skript mit Namen "ls" in seinem Verzeichnis abgelegt, ruft's jetzt der SysAdmin mit sämtlichen Rechten auf. Das Skript kann jetzt (wie Andi "vorschlug") ein "rm -rf /" ausführen, oder ein "echo '+ +' >>/.rhosts", oder oder oder...
Und Manfreds Frage sollte jetzt auch geklärt sein, es dreht sich einfach um den Inhalt der PATH-Variablen. Meines Wissens ist die Voreinstellung der PATH-Variablen für root bei Solaris korrekt (ohne "."), bei normalen Usern weiss ich's nicht. Letzten Endes ist es aber doch meistens eine Sache des Admins. (Sollte der Solaris-Admin tatsächlich diesen Fehler machen, würde ich das als eine Einladung zum harmlosen Ärgern werten...