web-dev-qa-db-fra.com

l'utilisateur n'existe pas dans / etc / passwd lors d'une tentative de modification du shell par défaut

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?

20
rmp251

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.

12
rmp251

Il existe une solution de contournement pour gnome-terminal:

  1. Allez à Éditer -> Préférences de profil -> Titre et commande
  2. Vérifier Exécuter une commande personnalisée à la place de mon shell
  3. Indiquez bash en tant que commande personnalisée (ou fish ou quoi que ce soit)
11
MrMeszaros

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. 
5
Andrea Corbellini

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 .

5
Masoud

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 .

2
Radu Rădeanu