web-dev-qa-db-fra.com

J'utilise zsh comme utilisateur régulier, mais lorsque j'utilise root, mon shell s'appelle Bash. Comment puis-je utiliser Zsh pour root aussi?

Ma question initiale:

Lorsque je lance Sudo su mon zsh Invite redevient Bash. Comment faire de Zsh le shell par défaut pour l'utilisateur root?

Ma réponse à propos de dupliquer:

La question de savoir quand un article est considéré comme un doublon fait l'objet d'un débat ici: Les questions devraient-elles être fermées comme un doublon uniquement en raison de l'utilité des réponses?

Je cite le premier paragraphe de la première réponse:

La plupart des opinions que j'ai vues à ce sujet disent que les questions sont des doublons et non des réponses. Par conséquent, les questions ne doivent être fermées en double que si elles sont identiques, et non pas parce que la réponse à l'une est également la réponse à l'autre.

Et puis les premiers mots après:

Je suis cependant en désaccord.

Vous êtes libre de voir le post pour lire les arguments de cet utilisateur.

Personnellement, en tant que "plupart des opinions", je pense que les questions sont des doublons et pas de réponses car je n’avais jamais trouvé de réponse à ma question particulière avec le message: Comment définir le poisson comme coquille par défaut?

Et quelle coïncidence que l'utilisateur que j'ai cité soit l'un des utilisateurs qui marque mon message comme étant en double.

J'ai essayé de me défendre mais probablement de manière négative. Alors, s'il vous plait, arrêtez mon vote et comprenez que certaines personnes veulent peut-être simplement étendre le shell par défaut à tous les utilisateurs et que d'autres veulent qu'un tel shell devienne par défaut. Ce n'est pas la même recherche et je pense que cela peut aider la communauté.

1
Gy0m

Vous devez définir le shell pour votre compte root

usermod -s /bin/zsh root

Fera le travail


cela change l'entrée dans le fichier /etc/passwd. Ils ont l'air ça. comme ça

root:x:0:0:root:/root:/bin/bash

Où la dernière entrée est le shell de connexion. Vous pouvez également éditer le fichier manuellement.


Faites attention à bien faire les choses. usermod ne vérifiera pas (et vous ne pourrez pas vous connecter en tant que root):

usermod -s /bin/blargh root
Sudo -i
Sudo: /bin/blargh: command not found

Pour plus de sécurité, voir la réponse de @PerlDuck

8
mbeyss

Outre usermod, il existe également l'utilitaire chsh ( change Shell ) . Cela présente l'avantage qu'un utilisateur peut changer son propre shell sans déranger l'utilisateur root.

Je me souviens qu’il affiche un petit menu avec les shells disponibles et que l’utilisateur peut en choisir un, mais mon installation actuelle fait not afficher un tel menu. Peut-être parce que je n'ai pas installé de coquilles supplémentaires (à part bash).

pduck@myhost:~> chsh
Password: 
Changing the login Shell for pduck
Enter the new value, or press ENTER for the default
    Login Shell [/bin/bash]: 
3
PerlDuck