Ich weiß, dass die chsh
Der Befehl wird verwendet, um die Login-Shell für einen Benutzer zwischen installierten Shells zu wechseln, aber es funktioniert egal woher die Anmeldung kommt (tty1, tty2, ssh, …). Was ich erreichen möchte, ist z.B. csh
bei Anmeldungen von tty7 und z.B. bash
auf allen anderen Anmeldequellen.
Ist das überhaupt machbar?
Akzeptierte Antwort:
Nein und ja.
Nein, die Anmelde-Shell ist an den Benutzer gebunden, nicht an das TTY, wo sich der Benutzer anmeldet. Ein Benutzer kann nur eine bestimmte Anmelde-Shell haben.
Ja, der Benutzer kann in den Initialisierungsdateien der Login-Shell je nach Bedingung jedes andere Programm oder Dienstprogramm starten.
Zum Beispiel ein Benutzer mit bash
da ihre aktuelle Login-Shell etwas wie das Folgende zu ihrem .bash_profile
hinzufügen könnte Datei zum Ausführen von csh
beim Einloggen am virtuellen Terminal 7:
case $(tty) in
*/tty7) exec csh -l ;;
esac
exec csh -l
würde die aktuelle Shell durch csh
ersetzen , gestartet als Login-Shell.