Je veux changer mon shell par défaut de tcsh en bash. J'ai donc essayé et c'est 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?
getent passwd <userid>
). Je pense que lachsh
prise en charge de l' exécution dans ce cas peut dépendre des paramètres de/etc/pam.d/
Réponses:
Mon ordinateur fait partie d'un réseau utilisant l'authentification distribuée, mes informations utilisateur n'apparaissent donc pas dans le fichier local / etc / passwd (mais sont visibles à l'aide de l'ID utilisateur getent passwd). (merci @steeldriver) Dans mon cas, j'ai dû faire chsh sur une machine principale.
la source
Il existe une solution de contournement pour
gnome-terminal
:bash
tant que commande personnalisée (oufish
, ou quoi que ce soit)la source
Si vous utilisez l'authentification LDAP par PAM ou quelque chose, vous devez trouver votre réponse dans votre serveur LDAP. Visons-le pour Microsoft AD, auquel cas votre compte de domaine n'est pas dans
/etc/passwd
lorsque vous vous connectez, mais vous pouvez voir votre propriété d'utilisateur dans AD, pargetent passwd | grep user
.Si à la fin cela montre que votre shell est
/bin/csh
, c'est parce que dans votre AD il y a un attribut pour cela. Donc, si vous avez un compte administrateur sur AD, vous pouvez le réparer vous-même. Sinon, dites simplement à votre administrateur AD d'activer les fonctionnalités avancées dans l' onglet Affichage des utilisateurs et ordinateurs Active Directory> Propriétés de l'utilisateur> Attributs UNIX . Là, vous pouvez changer le shell de connexion en/bin/bash
.N'oubliez pas de courir:
Source: l' utilisateur n'existe pas dans / etc / passwd lors de la tentative de modification du shell par défaut .
la source
Si vous souhaitez modifier le shell de votre utilisateur, vous n'avez pas besoin de devenir root. Tapez simplement:
sans
sudo
et sans arguments.Voir aussi
man chsh
:la source
> whoami userid > chsh You may not change the shell for 'userid'.
Si vous avez oublié votre nom d'utilisateur, vous pouvez utiliser la
whoami
commande pour vous souvenir de vous.Alors, essayez avec:
Si en effet, il n'existe pas de ligne commençant par votre nom d'utilisateur dans le
/etc/passwd
fichier (ce qui semble inexplicable), vous pouvez en ajouter une nouvelle comme celle-ci:Voir aussi: Comprendre le format de fichier / etc / passwd .
la source
Si vous essayez de vous connecter à un hôte distant avec un utilisateur de domaine, vous ne pourrez peut-être pas changer votre shell en utilisant
chsh
comme mentionné @Masoud. Mais voici une solution de contournement simple pour ce cas - chaque fois que vous entrez dans la machine, procédez comme suit:ssh my-host -t "zsh --login"
ou
ssh my-host -t "cd /data/repos; zsh --login"
Si vous souhaitez également vous connecter directement dans un autre répertoire de travail.
la source