So legen Sie die Standard-Shell fest, wenn chsh nicht vorhanden ist

So legen Sie die Standard-Shell fest, wenn chsh nicht vorhanden ist

Ich habe eine Synology DS412+ NAS-Box, auf der Busybox läuft, das eine Standard-Shell von hat ash. Zuvor ipkg install optware-develwurde ausgeführt und es wurde installiert bashund als Standard-Shell festgelegt. Beim Ausführen ipkg install zshwurde es installiert zsh, aber nicht als Standard-Shell festgelegt. chshist nicht vorhanden (Busybox geht von einem abgespeckten System aus und ashwird nur verwendet), also wie lege ich die Standard-Shell fest?

Ich wäre für jede Hilfe und jeden Hinweis sehr dankbar.

Antwort1

Sie können die Login-Shell ändern, indem Sie bearbeiten /etc/passwd. Jede Zeile ist eine Liste von durch Doppelpunkte getrennten Werten, von denen der letzte die Login-Shell ist:

user:x:1000:1000:User:/home/user:/usr/bin/zsh

Falls /etc/shellsvorhanden, sollten Sie zsh (vollständiger Pfad) hinzufügen, da sonst einige Dienste für Ihren Benutzer möglicherweise nicht funktionieren.

Notiz:

Ich würde davon abraten, die Login-Shell für Root (oder einen beliebigen Benutzer, den Sie für Verwaltungszwecke benötigen) zu ändern, wenn zshsie auf einer der Festplatten installiert ist. Möglicherweise möchten Sie auch ohne installierte Festplatten weiterhin Root-Zugriff haben.

Sie können immer zshautomatisch von Ashs Benutzerkonfiguration aus starten. So etwas in der Art

[ -x /usr/bin/zsh ] && exec /usr/bin/zsh

Antwort2

Eine andere Methode aus diesem Beitrag im Synology-Forum:

https://community.synology.com/enu/forum/1/post/150323

Fügen Sie in Ihrem bevorzugten Editor (z. B. nano) die folgenden Zeilen hinzu: ~/.profile

export SHELL=/bin/bash exec /bin/bash

wobei /bin/bash der Pfad zu Ihrer gewählten Shell ist

verwandte Informationen