Sie setzen lokale Einstellungen mit Remote- Einstellungen gleich.
Lokal eine Bash-Instanz, die aktuelle laufende Shell, in die Sie schreiben:
ssh user@host command
Führt den Befehl ssh (nichts weiter) als Client-ssh aus.
Dazu muss die lokale Shell keine Sub-Shell oder eine neue Shell starten oder sich anmelden.
Der Befehl wird ausgeführt als ls
Befehl lautet: lokal.
Es ist der Client-Befehl ssh, der eine Netzwerkverbindung zu einem fernen System herstellt. Bei korrekter Authentifizierung wird eine neue Shell gestartet, um den Befehl auszuführen, der als Argument für ssh geschrieben wurde, oder wenn kein Argument angegeben wird, weitere Befehle zu erwarten auf dieser Verbindung.
Diese neue Remote- Shell ist zwangsläufig eine Anmeldeshell, da der Remote-Benutzer (für dieses System) zur Anmeldung authentifiziert werden muss. Wenn ein bestimmter Befehl angegeben wird, führen Sie diesen Befehl einfach mit den Berechtigungen des authentifizierten Benutzers aus.
Sie können sehen, welche Dateien stammen, indem Sie $file sourced
am Anfang jeder Datei (im fernen System) ein einfügen (root wird zum Ändern von /etc/
Dateien benötigt ):
$ a=(~/.bashrc ~/.profile /etc/bash.bashrc /etc/profile)
$ for f in "${a[@]}"; do sed -i '1 i\echo "'"$f"' was read"\n' "$f"; done
Und dann starten Sie einfach eine SSH-Konsole:
$ ssh sorontar@localhost
/etc/profile was read
/etc/bash.bashrc was read
/home/sorontar/.profile was read
/home/sorontar/.bashrc was read
In diesem Fall wurden beide bashrc
Dateien gelesen, da jede profile
Datei Befehle zum Einschließen enthielt, und nicht, weil die Anmeldeshell sie direkt bezogen hat.
$ ssh sorontar@localhost :
/etc/bash.bashrc was read
/home/sorontar/.bashrc was read
In diesem System bashrc
wird in beiden Fällen wo gelesen.
Es muss kein a source ~/.bashrc
zum auszuführenden Befehl hinzugefügt werden .
Ändern Sie den Pfad
Alles, was Sie tun müssen, ist die korrekten Einstellungen zum Ändern des "$ PATH", entweder /etc/bash.bashrc
für alle Benutzer, die eine Shell in diesem System starten. Oder ~/.bashrc
für jeden Benutzer, der es braucht. Sie könnten (oder bearbeiten) , um ein Skelett eines Benutzers hinzufügen , .bashrc
um /etc/skel/
alle neuen Benutzer zur Verfügung haben die richtige Datei erstellt haben.
Das obige gilt nur für bash. Wenn Sie die Einstellung für alle Shells benötigen, setzen Sie wahrscheinlich die Umgebungsvariable PATH mithilfe der ssh-Datei ~/.ssh/environment
für jeden Benutzer, der sie benötigt. Oder verwenden Sie diese Option /etc/ssh/sshrc
für eine globale Einstellung in dem System, in dem der SSH-Server ausgeführt wird (lesen Sie den Abschnitt "Dateien", man sshd
um weitere Informationen zu erhalten).
.bashrc
wird bezogen, aber es hat wahrscheinlich einen Test für die Interaktivität an der Spitze. Die Dinge, die Sie vor dieser Prüfung angegeben haben, sollten zutreffen, und das ist es, was ich tue, um PATH zu erzwingen, wenn der Server keine Benutzerumgebung oder -nutzung zulässt~/.pam_environment
.