Ich habe eine Synology DS412+ NAS-Box, auf der Busybox läuft, das eine Standard-Shell von hat ash
. Zuvor ipkg install optware-devel
wurde ausgeführt und es wurde installiert bash
und als Standard-Shell festgelegt. Beim Ausführen ipkg install zsh
wurde es installiert zsh
, aber nicht als Standard-Shell festgelegt. chsh
ist nicht vorhanden (Busybox geht von einem abgespeckten System aus und ash
wird 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/shells
vorhanden, 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 zsh
sie auf einer der Festplatten installiert ist. Möglicherweise möchten Sie auch ohne installierte Festplatten weiterhin Root-Zugriff haben.
Sie können immer zsh
automatisch 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