Beim Remote-Anmelden an meinem Mountain Lion Mac über ssh
bekomme ich nicht die gleiche PATH
Variable wie beim lokalen Öffnen einer Shell: Die lokale Shell erbt ihre Umgebung wie erwartet von launchd
und hat daher den PATH-Wert, den ich in eingestellt habe /etc/launchd.conf
.
Bei der Remote-Shell bin ich auf eine Überraschung gestoßen: Wenn ich darüber eine Shell öffne, erbt ssh
sie nicht die gesetzten Umgebungsvariablen, /etc/launchd.conf
obwohl die zugehörigen ssh
Prozesse alle launchd
ihre Eltern haben. Warum???
Ein Ausschnitt aus einer ps -ef
Ausgabe zeigt:
UID PID PPID C STIME TTY TIME CMD
0 1 0 0 Mon01PM ?? 9:07.07 /sbin/launchd
.
.
.
501 150 1 0 Mon01PM ?? 0:17.99 /sbin/launchd
.
.
.
501 39994 150 0 Thu11AM ?? 0:00.72 /usr/bin/ssh-agent -l
.
.
.
0 74002 1 0 2:08PM ?? 0:00.05 /usr/sbin/sshd -i
501 74005 74002 0 2:08PM ?? 0:00.00 /usr/sbin/sshd -i
501 74000 9844 0 2:08PM ttys000 0:00.02 ssh bridge@bridgethegap.local
Ich kann das Problem beheben, indem ich PATH
z. B. in setze .bashrc
, aber ich suche nach einer Möglichkeit, allenPATH
unter Mountain Lion gestarteten Anwendungen dasselbe zu geben (siehe In Mountain Lion, wie setze ich die Umgebungsvariable PATH... ).
Meine Frage ist also: Warum erben Remote-Shells über ssh nicht die Launchd-Umgebung?
Ich habe auch nach einer Antwort gesucht und schließlich eine verwandte Antwort auf diese Frage gefunden: How to set system-wide environment variables on OS X Mavericks .
Dies ist eine Sicherheitsmaßnahme, insbesondere um sicherzustellen, dass Secure Shell-Benutzer mit einer deaktivierten Shell, bei der SHELL
auf gesetzt ist /bin/false
, keinen unaufgeforderten Zugriff erhalten können.
Eine Problemumgehung ist die Einstellung PermitUserEnvironment
in Ihrer ssh-Konfiguration; Bitte lesen Sie die Sicherheitshinweise in der oben genannten Antwort, bevor Sie dies tun.
grg
hallo
hallo