So che il chsh
Il comando viene utilizzato per cambiare la shell di accesso di un utente tra le shell installate, ma funziona indipendentemente da dove proviene il login (tty1, tty2, ssh, …). Quello che mi piacerebbe ottenere è avere ad es. csh
sugli accessi da tty7 e ad es. bash
su tutte le altre fonti di accesso.
È fattibile?
Risposta accettata:
No e sì.
No, la shell di accesso è legata all'utente, non al TTY in cui l'utente effettua l'accesso. Un utente può avere solo una shell di accesso specifica.
Sì, l'utente può, nei file di inizializzazione della shell di accesso, avviare qualsiasi altro programma o utilità a seconda di qualsiasi condizione.
Ad esempio, un utente con bash
poiché la loro attuale shell di accesso potrebbe aggiungere qualcosa di simile al seguente al loro .bash_profile
per eseguire csh
quando si accede al terminale virtuale 7:
case $(tty) in
*/tty7) exec csh -l ;;
esac
exec csh -l
sostituirebbe la shell corrente con csh
, iniziato come shell di accesso.