[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