Ich habe einen CentOS 5.7-Webserver und möchte den Standardspeicherort ändern, an dem ich lande, wenn ich eine Verbindung über SSH herstelle.
Derzeit lande ich in /home/username
und möchte /home
stattdessen in landen .
Ich habe als root und hinzugefügt gegangen PermitUserEnvironment yes
zu /etc/.ssh/sshd_config
- und wie ich es verstehe diese dann fegt den eigenen ssh
Benutzerordner für eine environment
Datei. Was ich nicht sicher bin, ist genau das, was ich dieser Umgebungsdatei hinzufüge, da export path=$PATH:$HOME
es hier oder in meinen .bashrc- oder .bash_profile-Dateien anscheinend nicht funktioniert (was meines Wissens keinen Unterschied macht) ist sowieso eine SSH-Verbindung eine nicht interaktive Shell?).
Danke im Voraus.
usermod
wenn irgendetwas in Bezug auf einen Benutzer zu ändern , dass Schreibvorgänge auf/etc/passwd
, Fehler zu vermeiden:usermod -d /home user
..bashrc
hat mich zu Facepalm gemacht. Es ist so einfach und offensichtlich, ich wünschte, ich hätte daran gedacht! Gut gemacht. Ein dickes Lob!Es ist zu beachten, dass
~/.ssh/environment
vor dem Start einer Shell oder einesssh
Befehls gelesen wird, sodass (zum Beispiel) weder Export noch $ PATH einen Sinn ergeben. Sie können hier nur Umgebungsvariablen festlegen (keine allgemeinen Shell-Befehle ausführen).Wenn Sie die Umgebung für eine nicht interaktive SSH-Shell nutzen, ändern Sie diese, und Sie sollten die gewünschten Informationen für nicht interaktive Befehle erhalten. Beispielsweise:
$ ssh mylogin@myserver env
Hier erfahren Sie, womit der SSH auf Ihrem Server beginnt. Wenn Sie Ihre
~/.ssh/environment
Datei schreiben als:PATH=/usr/local/bin
und führen Sie das oben Gesagte erneut aus, Sie sollten "bash: env: command not found" erhalten. Gut!
Bauen Sie nun Ihren Pfad explizit auf der Basis Ihres Systems auf
sshd
(dh dem ersten "ssh .... env" -Aufruf), indem Sie Folgendes hinzufügen/usr/local/bin
:PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Beachten Sie auch, dass es nicht sinnvoll ist, die CWD festzulegen
~/.ssh/rc
(die ausgeführt wird, nachdem sie~/.ssh/environment
gelesen wurde, aber bevor Ihressh
Shell oder Ihr Befehl ausgeführt wurde), da Ihre Shell (standardmäßig) in Ihrem Home-Pfad gestartet wird.quelle