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.