[linux] Lorsque vous ne pouvez pas exécuter / usr / local / bin / zsh en essayant de sudo su

introduction

Je ne trouve pas la commande dans sudo Lorsque j'ai essayé de su et de définir le chemin de l'utilisateur racine, il a été rejeté, alors j'ai vérifié

Cause

Lors de la migration de bash vers zsh ~~ Le shell par défaut de root est-il devenu / usr / local / bin / zsh par erreur ~~, il semble que la cause en soit que le shell root n'est pas défini en premier lieu.

Je n'ai pas défini le chemin racine, donc je ne peux pas définir le shell racine avec chsh! </ font>

Chemin réel


❯ echo $SHELL                                      
/usr/bin/zsh

Commencez par changer la coque

sudo chsh root -s /usr/bin/zsh

Lorsque l'authentification échoue

sudo chsh root -s /usr/bin/zsh
chsh: PAM:Échec d'authentification

Modifiez / etc / pam.d / chsh pour pouvoir changer le shell.

#
# The PAM configuration file for the Shadow `chsh' service
#

# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.


#Commentez ici
# auth       required   pam_shells.so

Vous pouvez le changer en refaisant sudo chsh root -s / usr / bin / zsh dans cet état. Si vous pouvez le modifier, annulez la ligne que vous avez commentée.

Changer le chemin racine

$ sudo su -
$ passwd root

Veuillez saisir un nouveau mot de passe UNIX: xxx
Veuillez saisir à nouveau votre nouveau mot de passe UNIX: xxx
passwd:Mot de passe mis à jour correctement

$ exit

Recommended Posts

[linux] Lorsque vous ne pouvez pas exécuter / usr / local / bin / zsh en essayant de sudo su
Linux (À propos des utilisateurs et des commandes su / sudo)
Paramètres lorsque vous souhaitez exécuter python-mecab avec travis