[fli4l] Verschiedene Suchpfade bei SSH-Zugriff
Christoph Schulz
fli4l at kristov.de
Mi Sep 19 23:27:46 CEST 2012
Hallo!
Am 19.09.2012 17:13, schrieb Mark Gerber:
> Ein weiteres Hallo!
>
> Diesmal habe ich eine Frage zu den Suchpfaden, die in $PATH vorhanden sind.
>
> Wenn ich mit PuTTY von Windows aus eine SSH-Konsole auf fli4l 3.6.2
> öffne, mich als root anmelde und dann "echo $PATH" ausführe, kommt
> folgendes:
> /sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:.
>
> Wenn ich den gleichen Befehl direkt über das SSH-Kommandozeilentool
> plink.exe (teil des PuTTY-Pakets) ausführe (auch als root), erhalte ich
> einen reduzierten Suchpfad:
> /usr/bin:/bin
>
> Wie kommt's? Wenn's eine Unterscheidung zwischen SSH-Fernzugriffen und
> lokalen Anmeldungen gäbe, würde ich das noch verstehen, aber beides sind
> ja SSH-Zugriffe.
Ja, aber der erste Zugriff öffnet eine interaktive Login-Shell und der
zweite nicht. Eine Login-Shell liest ~/.profile aus, dort steht auf dem
fli4l auch der erweiterte Suchpfad drin. Eine (nicht interaktive)
Nicht-Login-Shell tut dies nicht, somit nutzt diese den Pfad aus ihrer
Umgebung, und der ist je nach SSH-Server (auf dem fli4l: dropbear) aus
Sicherheitsgründen reduziert.
Den Unterschied kann man mit dem Linux-SSH-Client gut nachvollziehen.
Zuerst eine nicht-interaktive Kommandoausführung:
kristov at peacock ~ $ sudo ssh -x garm "echo \$PATH"
/usr/bin:/bin
=> kurzer Pfad
Jetzt eine interaktive Ausführung, indem eine Sub-Shell explizit mit der
"-l"-Option gestartet wird (die zusätzlichen Backslashes sind notwendig,
da der Befehl zum Ausführung wiederum in (verschachtelten)
Anführungsstrichen gesetzt sein muss):
kristov at peacock ~ $ sudo ssh -x garm "sh -l -c \"echo \\\$PATH\""
Welcome to fli4l !
/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:.
=> langer Pfad, zusätzlich Ausgabe der Begrüßung
Viele Grüße,
Christoph
Mehr Informationen über die Mailingliste Fli4L