Ich muss einen Befehl mit Administratorrechten ausführen. Jemand sagte, ich solle einen Befehl als root ausführen. Wie mache ich das?
Akzeptierte Antwort:
Die beiden wichtigsten Befehlszeilenmöglichkeiten sind:
- Verwenden Sie
su
und geben Sie das Root-Passwort ein, wenn Sie dazu aufgefordert werden. - Setzen Sie
sudo
vor dem Befehl und geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.
Einen Shell-Befehl als root ausführen
sudo (bevorzugt, wenn keine grafische Anzeige ausgeführt wird)
Dies ist die bevorzugte Methode auf den meisten Systemen, einschließlich Ubuntu, Linux Mint, (wohl) Debian und anderen. Wenn Sie kein separates Root-Passwort kennen, verwenden Sie diese Methode.
Sudo erfordert, dass Sie Ihr eigenes Passwort eingeben. (Der Zweck besteht darin, den Schaden zu begrenzen, wenn Sie Ihre Tastatur unbeaufsichtigt und entsperrt lassen, und auch sicherzustellen, dass Sie wirklich möchte diesen Befehl ausführen und es war nicht z. ein Tippfehler.) Es ist oft so konfiguriert, dass es einige Minuten lang nicht erneut fragt, sodass Sie mehrere sudo
ausführen können Befehle nacheinander.
Beispiel:
sudo service apache restart
Wenn Sie mehrere Befehle als root ausführen müssen, stellen Sie jedem von ihnen sudo
voran . Manchmal ist es bequemer, eine interaktive Shell als root auszuführen. Sie können sudo -i
verwenden dafür:
$ sudo -i
# command 1
# command 2
...
# exit
Statt sudo -i
, können Sie sudo -s
verwenden . Der Unterschied besteht darin, dass -i
wieder ich initialisiert die Umgebung auf vernünftige Standardwerte, wohingegen -s
verwendet Ihre Konfigurationsdateien zum Guten oder zum Schlechten.
Weitere Informationen finden Sie auf der sudo-Website oder geben Sie man sudo
ein auf Ihrem System. Sudo ist sehr konfigurierbar; Beispielsweise kann es so konfiguriert werden, dass ein bestimmter Benutzer nur bestimmte Befehle als root ausführen kann. Lesen Sie die sudoers
Manpage für weitere Informationen; Verwenden Sie sudo visudo
um die sudoers-Datei zu bearbeiten.
so
Der su
Befehl existiert auf den meisten Unix-ähnlichen Systemen. Damit können Sie einen Befehl als ein anderer Benutzer ausführen, vorausgesetzt, Sie kennen das Kennwort dieses Benutzers. Wenn es ohne angegebenen Benutzer ausgeführt wird, su
verwendet standardmäßig das Root-Konto.
Beispiel:
su -c 'service apache restart'
Der auszuführende Befehl muss mit -c
übergeben werden Möglichkeit. Beachten Sie, dass Sie Anführungszeichen benötigen, damit der Befehl nicht von Ihrer Shell geparst, sondern intakt an die Root-Shell übergeben wird, die su
läuft.
Um mehrere Befehle als root auszuführen, ist es bequemer, eine interaktive Shell zu starten.
$ su
# command 1
# command 2
...
# exit
Auf einigen Systemen müssen Sie in der Gruppe Nummer 0 sein (genannt wheel
). ), um su
zu verwenden . (Es geht darum, den Schaden zu begrenzen, wenn das Root-Passwort versehentlich an jemanden weitergegeben wird.)
Anmeldung als root
Wenn ein Root-Passwort festgelegt ist und Sie es besitzen, können Sie einfach root
eingeben an der Anmeldeaufforderung und geben Sie das Root-Passwort ein. Seien Sie sehr vorsichtig und vermeiden Sie es, komplexe Anwendungen als root auszuführen, da sie etwas tun könnten, was Sie nicht beabsichtigt haben. Sich direkt als root anzumelden ist vor allem in Notsituationen nützlich, wie z. B. Festplattenfehler oder wenn Sie sich selbst aus Ihrem Konto ausgesperrt haben.
Einzelbenutzermodus
Der Einzelbenutzermodus oder Runlevel 1 gibt Ihnen auch Root-Rechte. Dies ist hauptsächlich für Notwartungssituationen gedacht, in denen das Booten in einen Mehrbenutzer-Runlevel nicht möglich ist. Sie können in den Einzelbenutzermodus booten, indem Sie single
übergeben oder emergency
auf der Kernel-Befehlszeile. Beachten Sie, dass das Booten im Einzelbenutzermodus nicht dasselbe ist wie das normale Booten des Systems und die Anmeldung als root. Stattdessen startet das System nur die für Runlevel 1 definierten Dienste. Normalerweise ist dies die kleinste Anzahl von Diensten, die für ein nutzbares System erforderlich sind.
Sie können auch mit dem telinit-Befehl in den Einzelbenutzermodus wechseln:telinit 1
; Dieser Befehl erfordert jedoch, dass Sie bereits über eine andere Methode Root-Rechte erhalten haben, um ausgeführt zu werden.
Auf vielen Systemen gibt das Booten im Einzelbenutzermodus dem Benutzer Zugriff auf eine Root-Shell, ohne dass er zur Eingabe eines Passworts aufgefordert wird. Insbesondere systemd
-basierte Systeme werden Sie nach dem Root-Passwort fragen, wenn Sie auf diese Weise booten.
Andere Programme
Calife
Mit Calife können Sie Befehle als ein anderer Benutzer ausführen, indem Sie Ihr eigenes Passwort eingeben, sofern Sie dazu berechtigt sind. Es ähnelt dem viel weiter verbreiteten sudo (siehe oben). Calife ist leichter als sudo, aber auch weniger konfigurierbar.
Operation
Mit Op können Sie Befehle als ein anderer Benutzer ausführen, einschließlich root. Dies ist kein vollwertiges Werkzeug, um beliebige Befehle auszuführen:Sie geben op
ein gefolgt von einer Mnemonik vom Systemadministrator konfiguriert, um einen bestimmten Befehl auszuführen.
Super
Mit Super können Sie Befehle als ein anderer Benutzer ausführen, einschließlich root. Der Befehl muss vom Systemadministrator zugelassen worden sein.
Einen grafischen Befehl als root ausführen
PolicyKit (bevorzugt bei Verwendung von GNOME)
Stellen Sie Ihrem gewünschten Befehl einfach den Befehl pkexec
voran . Beachten Sie, dass dies zwar in den meisten Fällen funktioniert, aber nicht überall.
Siehe man pkexec
für weitere Informationen.
KdeSu, KdeSudo (bevorzugt bei Verwendung von KDE)
kdesu
und kdesudo
sind grafische Frontends für su
und sudo
bzw. Sie ermöglichen es Ihnen, X Window-Programme problemlos als Root auszuführen. Sie sind Teil von KDE. Geben Sie
kdesu -c 'command --option argument'
und geben Sie das Root-Passwort ein oder geben Sie
einkdesudo -c 'command --option argument'
und geben Sie Ihr Passwort ein (wenn Sie berechtigt sind, sudo
auszuführen ). Wenn Sie die Option „Passwort behalten“ in KdeSu aktivieren, müssen Sie das Root-Passwort nur einmal pro Anmeldesitzung eingeben.
Andere Programme
Ktsuss
Ktsuss („Keep the su simple, stupid“) ist eine grafische Version von su.
Beesu
Beesu ist ein grafisches Frontend für den su-Befehl, der Gksu in Red Hat-basierten Betriebssystemen ersetzt hat. Es wurde hauptsächlich für RHEL und Fedora entwickelt.
Veraltete Methoden
gksu
und gksudo
gksu
und gksudo
sind grafische Frontends für su
und sudo
bzw. Sie ermöglichen es Ihnen, X Window-Programme problemlos als Root auszuführen. Sie sind Teil von Gnome. Geben Sie
gksu command --option argument
und geben Sie das Root-Passwort ein oder geben Sie
eingksudo command --option argument
und geben Sie Ihr Passwort ein (wenn Sie berechtigt sind, sudo
auszuführen ).
gksu
und gksudo
sind veraltet. Sie wurden in GNOME durch PolicyKit ersetzt, und viele Distributionen (z. B. Ubuntu) installieren sie nicht mehr standardmäßig. Sie sollten sich nicht darauf verlassen, dass sie verfügbar sind oder ordnungsgemäß funktionieren.
Manuell über eine der Shell-basierten Methoden
Verwenden Sie eine der Methoden im Abschnitt „Ausführen eines Shell-Befehls als Root“. Sie müssen sicherstellen, dass weder DISPLAY
Umgebungsvariable noch die XAUTHORITY
Umgebung wird während des Übergangs zu root zurückgesetzt. Dies kann eine zusätzliche Konfiguration dieser Methoden erfordern, die außerhalb des Bereichs dieser Frage liegt.
Insgesamt ist dies eine schlechte Idee, vor allem, weil grafische Anwendungen Konfigurationsdateien als root lesen und schreiben, und wenn Sie versuchen, diese Anwendungen erneut als normaler Benutzer zu verwenden, haben diese Anwendungen keine Berechtigung, ihre eigenen Konfigurationen zu lesen.
Verwandte:Macos – Befehl beim Terminalstart ausführen (macOS)?Bearbeiten einer Datei als root
Siehe Wie bearbeite ich eine Datei als Root?