Ich führe zsh unter Mac OSX aus und möchte im Terminal manchmal zum Root-Benutzer wechseln.
Ich möchte alle meine Dotfiles, die Umgebungspfadkonfiguration und die Skripte meines normalen Benutzers behalten und viele Dinge einfach als Root erledigen.
Ich habe sudo bash
oder ausgeführt sudo zsh
, um auf einfache Weise zu Root zu wechseln. Dies hat jedoch den Nachteil, dass nicht alle meine Zsh-Konfigurationen ausgeführt werden, die ich für meinen normalen Benutzer habe.
Was ist der beste Weg, „Root zu werden“, um eine Reihe von Befehlen auszuführen und gleichzeitig alle Konfigurations-/Umgebungseinstellungen beizubehalten, die ich für meinen normalen Benutzer habe?“
Ich habe beispielsweise Folgendes für meinen normalen Benutzer angepasst und möchte, dass dies alles auch dem Root-Benutzer zur Verfügung steht:
- .zshrc
- ~/bin
- .aliase
- Vim-Modus für die Eingabe
EDIT: Beachten Sie, dass ich mir bewusst bin, dass ich nicht oft „als Root ausführen“ sollte. Und das tue ich auch nicht. Aber ich muss manchmal ständig ein paar einfache Befehle als Root ausführen und ich öffne einen Tmux-Split nur für diesen Zweck und keinen anderen.
Antwort1
Um Ihre üblichen Dot-Dateien zu erhalten, stellen Sie sicher, dass sudo
die Umgebungsvariable nicht geändert wird HOME
. Ob dies geschieht, hängt von der Konfiguration von sudo zur Kompilierungszeit und Laufzeit ab. Um sudo beizubehalten HOME
, bearbeiten Sie die sudoers
Datei (führen Sie sudo aus visudo
, bearbeiten Sie diese Datei niemals direkt!) und stellen Sie sicher, dass sie Folgendes enthält:
Defaults !always_set_home, !set_home
Defaults env_keep+=HOME
(Einige davon sind je nach Kompilierungsoptionen möglicherweise unnötig.) Und führen Sie natürlich nicht aus sudo -i
.
Vermeiden Sie es jedoch, als Root zu viel zu tun. Anstatt beispielsweise einen Editor als Root auszuführen, verwenden Sie sudoedit
.
Antwort2
Dies möchten Sie mit ziemlicher Sicherheit nicht tun.
Wenn Ihr Root-Benutzer auf die Dot-Dateien Ihres normalen Benutzers verwiesen wurde, können sich die Berechtigungen für diese Dot-Dateien ändern, was die Dinge für Ihren normalen Benutzer komplizierter macht.
Stattdessen können Sie die Dateien bei jeder Anmeldung in das Stammverzeichnis Ihres Root-Benutzers kopieren.
Kopieren Sie die Dateien irgendwo in Ihre ~/.zshenv (für Root) und passen Sie deren Berechtigungen an. Auf diese Weise bleibt Ihre Umgebung in Ordnung und Sie können Ihre Anpassungen nutzen.
Persönlich möchte ich mehrere Root-Befehle ausführen, sudo su -
aber Sie könnten versuchen, sudo -E su -p
die Benutzerumgebung beizubehalten.
Obligatorische Warnung!
Es gibt nie einen guten Grund zum Laufen sudo su
. Es ist weitbesservor jedem Befehl auszuführen sudo
. Das heißt, ich mache das sudo su
manchmal. Aber die allgemeine Regel lautet: nicht sudo su
.