C'est une bonne question, mais elle pourrait être plus appropriée pour le site Linux QA.
BradleyDotNET
6
définissez-le dans / etc / passwd
resultsway
Réponses:
415
Essayez la commande linux chsh.
La commande détaillée est chsh -s /bin/bash. Il vous demandera d'entrer votre mot de passe. Votre shell de connexion par défaut est /bin/bashmaintenant. Vous devez vous déconnecter et vous reconnecter pour voir ce changement.
Ce qui suit est extrait de la page de manuel:
La commande chsh modifie le shell de connexion utilisateur. Cela détermine le nom de la commande de connexion initiale des utilisateurs. Un utilisateur normal peut uniquement changer le shell de connexion pour son propre compte, le superutilisateur peut changer le shell de connexion pour n'importe quel compte
Cette commande modifiera définitivement le shell de connexion par défaut.
Remarque: Si votre compte d'utilisateur est distant, par exemple lors de l'authentification Kerberos (par exemple, Enterprise RHEL), vous ne pourrez pas l'utiliser chsh.
chsh: can only change local entries; use ypchsh instead. Alors ypchsh n'a aucune -soption
mahmood
10
@ShaktiMalik Je pense que le fichier de configuration l'est /etc/passwd, mais je ne l'ai pas revérifié.
Summer_More_More_Tea
30
Vous devez vous déconnecter et vous reconnecter pour voir ce changement.
Neil Traft
22
Dans mon cas, j'avais un accès root mais je ne voulais pas jouer avec des configurations sur l'hôte réel. J'ai ajouté exec /bin/bashà ~/.profileet cela m'a permis de me connecter directement à bash sans apporter de modifications au serveur. (Le shell par défaut d'origine était juste /bin/sh)
Paul Nelson Baker
2
@BCqrstoO Merci pour cela. Mais que faire si vous tapez exitbash? Voulez-vous déconnecter le serveur directement ou simplement quitter le bash et dans le sh et un autre exitrequis pour vous déconnecter du serveur?
Summer_More_More_Tea
148
Vous pouvez modifier le fichier passwd directement pour l'utilisateur particulier ou utiliser la commande ci-dessous
Probablement une bonne idée à essayer which bashavant d'appeler la commande ci-dessus; votre kilométrage peut varier selon l'emplacement. Dans mon cas, il a été trouvé dans/bin/bash
Martin Haeberli
Je peux également ajouter que la chshcommande fait partie du util-linuxpackage; et chsh -s $(which bash) $USERdevrait avoir le même résultat que ci-dessus.
Il y a aussi l' -loption: "imprimer la liste des coquilles".
Betlista
3
c'était chsh -s /bin/bash usernamepour moi
Salvatorelab
Je vous remercie! Cela m'a aidé en essayant de le changer pour un autre utilisateur
Tobias Feil
18
Vous devriez avoir un «squelette» quelque part /etc, probablement /etc/skeleton, ou vérifier les paramètres par défaut, probablement /etc/defaultou quelque chose. Ce sont des scripts qui définissent les variables d'environnement standard définies lors d'une connexion.
Si c'est juste pour votre propre compte: vérifiez le fichier (caché) ~/.profileet ~/.login. Ou générez-les, s'ils n'existent pas. Ceux-ci sont également évalués par le processus de connexion.
Plus 1 pour répondre spécifiquement à la question (LE Shell par défaut). Sur Red Hat Linux, il est spécifié dans/etc/default/useradd
geedoubleya
@geedoubleya Pouvez-vous spécifier quelle est la différence entre le shell par défaut et le shell de connexion?
Betlista
1
Salut @Betlista Le shell par défaut est le shell qui est utilisé pour un nouveau shell de connexion des utilisateurs lors de leur création, sauf si un shell spécifique est fourni comme argument.
Réponses:
Essayez la commande linux
chsh
.La commande détaillée est
chsh -s /bin/bash
. Il vous demandera d'entrer votre mot de passe. Votre shell de connexion par défaut est/bin/bash
maintenant. Vous devez vous déconnecter et vous reconnecter pour voir ce changement.Ce qui suit est extrait de la page de manuel:
Cette commande modifiera définitivement le shell de connexion par défaut.
Remarque: Si votre compte d'utilisateur est distant, par exemple lors de l'authentification Kerberos (par exemple, Enterprise RHEL), vous ne pourrez pas l'utiliser
chsh
.la source
chsh: can only change local entries; use ypchsh instead
. Alors ypchsh n'a aucune-s
option/etc/passwd
, mais je ne l'ai pas revérifié.exec /bin/bash
à~/.profile
et cela m'a permis de me connecter directement à bash sans apporter de modifications au serveur. (Le shell par défaut d'origine était juste/bin/sh
)exit
bash? Voulez-vous déconnecter le serveur directement ou simplement quitter le bash et dans le sh et un autreexit
requis pour vous déconnecter du serveur?Vous pouvez modifier le fichier passwd directement pour l'utilisateur particulier ou utiliser la commande ci-dessous
Ensuite, déconnectez-vous et connectez-vous
la source
which bash
avant d'appeler la commande ci-dessus; votre kilométrage peut varier selon l'emplacement. Dans mon cas, il a été trouvé dans/bin/bash
chsh
commande fait partie duutil-linux
package; etchsh -s $(which bash) $USER
devrait avoir le même résultat que ci-dessus.-l
option: "imprimer la liste des coquilles".chsh -s /bin/bash username
pour moiVous devriez avoir un «squelette» quelque part
/etc
, probablement/etc/skeleton
, ou vérifier les paramètres par défaut, probablement/etc/default
ou quelque chose. Ce sont des scripts qui définissent les variables d'environnement standard définies lors d'une connexion.Si c'est juste pour votre propre compte: vérifiez le fichier (caché)
~/.profile
et~/.login
. Ou générez-les, s'ils n'existent pas. Ceux-ci sont également évalués par le processus de connexion.la source
/etc/default/useradd