zsh als Standard-Shell für Root festlegen

zsh als Standard-Shell für Root festlegen

Kann ich zsh als Standard-Shell festlegen, während ich als Root angemeldet bin? Ich habe das getan chsh -s /bin/zshund mein Root-Passwort zur Authentifizierung verwendet, aber es ist fehlgeschlagen.

Antwort1

Ein Trick besteht darin, interaktive Root-Shells so einzustellen, dass sie zsh verwenden, und nicht-interaktive Shells so zu belassen, dass sie weiterhin /bin/sh verwenden.

Dies kann immer noch zu „Erwartungsproblemen“ führen, wie in anderen Antworten beschrieben, aber zumindest werden Sie keine nicht interaktiven Prozesse zerstören.

Fügen Sie am Ende von /root/.bashrc Folgendes hinzu

if [ ! -z "$PS1" ]; then
    exec /bin/zsh $*
fi 

Antwort2

Im Allgemeinen ist es keine gute Idee, die Root-Shell von /bin/sh weg zu ändern. Es ist besser, ein anderes Konto hinzuzufügen, z. B. zroot, das immer noch eine UID von 0 hat, aber zsh als Shell hat. Um jedoch die Frage zu beantworten: Wenn Sie sich als Root anmelden, müssen Sie nicht verwenden sudo. Verwenden Sie einfach

chsh -s /bin/zsh root

und geben Sie das rootPasswort als Antwort auf die Anfrage von chsh ein. Es lohnt sich, „root“ explizit anzugeben.

Wenn Sie sich als „Fred“ anmelden, verwenden Sie

sudo -i

und beantworten Sie die Passwortabfrage mit fred'spassword. Dadurch sollten Sie eine Root-Shell erhalten. Fahren Sie fort, als ob Sie sich ursprünglich als Root angemeldet hätten.

Stellen Sie sicher, dass /bin/zsh in /etc/shells aufgeführt ist.

Antwort3

Wahrscheinlich haben Sie vergessen, es als Root auszuführen. Führen Sie den folgenden Befehl aus:

$ sudo chsh -s /bin/zsh

Antwort4

Das Bearbeiten der Passwd-Datei mit einem normalen Editor wird für diesen Zweck nicht empfohlen.

vipw

und ändern Sie die Shell zu zsh. Ehrlich gesagt verstehe ich nicht, warum Sie die Root-Shell ändern möchten. Das Root-Konto darf nur für Verwaltungsaufgaben verwendet werden. Für normale Arbeiten verwenden Sie einen nicht privilegierten Benutzer. Versuchen Sie anschließend, sich bei einem anderen TTY anzumelden, ohne (ist wichtig) die Verbindung zum aktuellen TTY zu trennen. Wenn es funktioniert, können Sie Ihre neue Shell sehen. Wenn Sie sofort zsh verwenden möchten, geben Sie einfach zsh ein. Fazit

I want to use my new shell now = type zsh
I want to use my new shell + change = chsh -s or vipw

PS: Wenn Ihr ZSH nicht auf diesem Pfad (/bin /sbin ...) installiert ist und Sie sich als Einzelbenutzer mit Root anmelden müssen, funktioniert dies nicht, da Ihre Shell nicht gefunden werden kann. Dies kann auch auf Systemen passieren, bei denen /usr von Root getrennt/auf einem anderen LVM oder einer anderen Partition gemountet ist.

verwandte Informationen