Je sais que le chsh La commande est utilisée pour basculer le shell de connexion d'un utilisateur entre les shells installés, mais cela fonctionne indépendamment d'où provient la connexion (tty1, tty2, ssh, …). Ce que j'aimerais réaliser, c'est avoir par ex. csh sur les connexions depuis tty7 et par ex. bash sur toutes les autres sources de connexion.
Est-ce faisable du tout ?
Réponse acceptée :
Non et oui.
Non, le shell de connexion est lié à l'utilisateur, pas au TTY auquel l'utilisateur se connecte. Un utilisateur ne peut avoir qu'un seul shell de connexion spécifique.
Oui, l'utilisateur peut, dans les fichiers d'initialisation du shell de connexion, démarrer tout autre programme ou utilitaire en fonction de n'importe quelle condition.
Par exemple, un utilisateur avec bash car leur shell de connexion actuel pourrait ajouter quelque chose comme ce qui suit à leur .bash_profile fichier pour exécuter csh lors de la connexion au terminal virtuel 7 :
case $(tty) in
*/tty7) exec csh -l ;;
esac
exec csh -l remplacerait le shell actuel par csh , démarré en tant que shell de connexion.