Ich kann den Befehl in sudo nicht finden Als ich versuchte, den Pfad des Root-Benutzers zu ermitteln und festzulegen, wurde er abgelehnt, sodass ich ihn überprüfte
Bei der Migration von bash nach zsh ~~ Wurde die Standard-Shell von root versehentlich zu / usr / local / bin / zsh ~~, scheint die Ursache darin zu liegen, dass die Root-Shell nicht an erster Stelle gesetzt ist.
Ich habe den Root-Pfad nicht festgelegt, daher kann ich die Root-Shell nicht mit chsh festlegen! </ font>
Tatsächlicher Weg
❯ echo $SHELL
/usr/bin/zsh
sudo chsh root -s /usr/bin/zsh
sudo chsh root -s /usr/bin/zsh
chsh: PAM:Authentifizierungsfehler
Bearbeiten Sie / etc / pam.d / chsh
, damit Sie die Shell ändern können.
#
# 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.
#Kommentar hier raus
# auth required pam_shells.so
In diesem Zustand können Sie es ändern, indem Sie erneut "sudo chsh root -s / usr / bin / zsh" drücken. Wenn Sie es ändern können, machen Sie die auskommentierte Zeile rückgängig.
$ sudo su -
$ passwd root
Bitte geben Sie ein neues UNIX-Passwort ein: xxx
Bitte geben Sie Ihr neues UNIX-Passwort erneut ein: xxx
passwd:Passwort korrekt aktualisiert
$ exit