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 lsBefehl 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 sourcedam 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 bashrcDateien gelesen, da jede profileDatei 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 bashrcwird in beiden Fällen wo gelesen.
Es muss kein a source ~/.bashrczum 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.bashrcfür alle Benutzer, die eine Shell in diesem System starten. Oder ~/.bashrcfür jeden Benutzer, der es braucht. Sie könnten (oder bearbeiten) , um ein Skelett eines Benutzers hinzufügen , .bashrcum /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/environmentfür jeden Benutzer, der sie benötigt. Oder verwenden Sie diese Option /etc/ssh/sshrcfür eine globale Einstellung in dem System, in dem der SSH-Server ausgeführt wird (lesen Sie den Abschnitt "Dateien", man sshdum weitere Informationen zu erhalten).
.bashrcwird 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.