Das Hauptproblem scheint zu sein, dass root eine andere zsh-Konfiguration hat als Ihr Benutzer. wie sudo -s
die Konfiguration des Zielbenutzer (verwendet root ) anstelle des anrufenden Benutzers, erhalten Sie eine andere zsh Konfiguration.
Die Ausgabe sieht aus, als könnte sie vom functions
eingebauten stammen (oder typeset -f
oder declare -f
, was äquivalent ist), das in einem der Konfigurationsskripte von root aufgerufen wird :
/root/.zshrc /root/.zshenv /root/.zprofile /root/.zlogin
Wenn Sie root nur die gleiche zsh-Konfiguration geben möchten, die Ihr normaler Benutzer hat, können Sie diese einfach kopieren:
- Melden Sie sich als root an, z
sudo -s
Entfernen Sie alle zsh-Konfigurationsdateien, die root möglicherweise hat
mkdir ~/zsh-old-conf mv ~/.zshrc ~/.zshenv ~/.zprofile ~/.zlogin ~/.oh-my-zsh ~/zsh-old-conf
Kopieren Sie Ihre regulären Benutzerkonfiguration in das Stammverzeichnis von root :
cp -r /Users/REGULAR/.zshrc /Users/REGULAR/.oh-my-zsh ~/
Prüfen Sie, ob die Konfiguration jetzt funktioniert. Um auf der sicheren Seite zu sein, lassen Sie die aktuelle Sitzung geöffnet und melden Sie sich von einem anderen Terminal aus als root an. Auf diese Weise können Sie die Änderungen rückgängig machen, wenn die Konfiguration aus irgendeinem Grund nicht funktionieren sollte.