Vím, že chsh
příkaz se používá k přepínání přihlašovacího shellu pro uživatele mezi nainstalovanými shelly, ale funguje bez ohledu odkud pochází přihlášení (tty1, tty2, ssh, …). Čeho bych chtěl dosáhnout, je mít např. csh
na přihlášení z tty7 a např. bash
na všech ostatních zdrojích přihlášení.
Je to vůbec proveditelné?
Přijatá odpověď:
Ne a ano.
Ne, přihlašovací shell je svázán s uživatelem, nikoli s TTY, kde se uživatel přihlašuje. Uživatel může mít pouze jeden konkrétní přihlašovací shell.
Ano, uživatel může v inicializačních souborech přihlašovacího shellu spustit jakýkoli jiný program nebo nástroj v závislosti na jakýchkoli podmínkách.
Například uživatel s bash
protože jejich aktuální přihlašovací shell by mohl přidat něco jako následující do svého .bash_profile
soubor ke spuštění csh
při přihlášení na virtuálním terminálu 7:
case $(tty) in
*/tty7) exec csh -l ;;
esac
exec csh -l
by nahradil aktuální shell za csh
, spuštěný jako přihlašovací prostředí.