Je veux changer mon shell par défaut de tcsh à bash. Alors j'ai essayé et voici ce qui s'est passé:
>Sudo chsh userid
Changing the login Shell for userid
Enter the new value, or press ENTER for the default
Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd
En effet, je ne suis pas dans/etc/passwd. Je ne sais pas pourquoi.
Que puis-je faire?
Mon ordinateur fait partie d'un réseau utilisant une authentification distribuée, de sorte que mes détails d'utilisateur n'apparaissent pas dans le fichier local/etc/passwd (mais sont visibles à l'aide de getent passwd IDutilisateur). (merci @steeldriver) Dans mon cas, je devais faire chsh sur une machine de base.
Il existe une solution de contournement pour gnome-terminal
:
bash
en tant que commande personnalisée (ou fish
ou quoi que ce soit)Si vous souhaitez modifier le shell pour votre utilisateur, vous n'avez pas besoin de devenir root. Il suffit de taper:
chsh
sans Sudo
et sans arguments.
Voir aussi man chsh
:
La commande chsh change le shell de connexion de l'utilisateur. Cela détermine le nom De la commande de connexion initiale de l'utilisateur. n utilisateur normal ne peut changer que le shell de connexion Pour son propre compte; le superutilisateur peut modifier le login Shell pour tout compte.
Si vous utilisez l'authentification LDAP par PAM ou autre chose, vous devez trouver votre réponse dans votre serveur LDAP. Visons Microsoft AD. Dans ce cas, votre compte de domaine ne figure pas dans /etc/passwd
lorsque vous vous connectez, mais vous pouvez voir votre propriété d'utilisateur dans AD, par getent passwd | grep user
.
Si à la fin, votre shell affiche le code /bin/csh
, c'est qu'il existe dans votre AD un attribut correspondant. Donc, si vous avez un compte administrateur sur AD, vous pouvez le réparer vous-même. Autrement, indiquez simplement à votre administrateur AD d'activer les fonctionnalités avancées dans l'onglet Affichage de Utilisateurs et ordinateurs Active Directory> Propriétés de l'utilisateur > Attributs UNIX . Là, vous pouvez changer le shell de connexion en /bin/bash
.
Assurez-vous de ne pas oublier de courir:
Sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash
Source: l'utilisateur n'existe pas dans/etc/passwd lors d'une tentative de modification du shell par défaut .
Si vous avez oublié votre nom d'utilisateur, vous pouvez utiliser la commande whoami
pour vous souvenir de vous.
Alors, essayez avec:
Sudo chsh $(whoami)
Si en effet, il n'existe pas de ligne commençant par votre nom d'utilisateur dans le fichier /etc/passwd
(qui semble inexplicable), vous pouvez en ajouter une nouvelle comme celle-ci:
username: x: 1000: 1000:votre vrai nom,:/maison/username:/bin/bash
Voir aussi: Comprendre le format de fichier/etc/passwd .