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í.