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.