Wie führe ich einen Befehl als Systemadministrator aus (root)

66

Ich muss einen Befehl mit Administratorrechten ausführen. Jemand sagte, ich sollte einen Befehl als root ausführen. Wie mache ich das?

Stefan
quelle
2
finden Sie in der Meta - Diskussion über diese Frage
Stefan

Antworten:

94

Die beiden wichtigsten Befehlszeilenoptionen sind:

  • Verwenden Sie sudas root-Passwort und geben Sie es ein, wenn Sie dazu aufgefordert werden.
  • Stellen Sie sudoden Befehl vor und geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.

Ausführen eines Shell-Befehls als root

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.

Für Sudo müssen Sie Ihr eigenes Passwort eingeben. (Der Zweck ist, den Schaden zu begrenzen, wenn Sie Ihre Tastatur unbeaufsichtigt und entsperrt lassen, und sicherzustellen, dass Sie diesen Befehl wirklich ausführen möchten und er zB kein Tippfehler war.) Oft wird er so konfiguriert, dass Sie nicht noch einmal nach ein paar fragen Minuten, damit Sie mehrere sudoBefehle nacheinander ausführen können.

Beispiel:

sudo service apache restart

Wenn Sie mehrere Befehle als root ausführen müssen, müssen Sie ihnen jeweils das Präfix voranstellen sudo. Manchmal ist es bequemer, eine interaktive Shell als root auszuführen. Sie können dafür verwenden sudo -i:

$ sudo -i
# command 1
# command 2
...
# exit

Stattdessen sudo -ikönnen Sie verwenden sudo -s. Der Unterschied besteht darin , dass -ire i die Umwelt vernünftige Default nitializes, während -sverwendet Ihre Konfigurationsdateien für Gedeih und Verderb.

Weitere Informationen finden Sie auf der sudo-Website oder geben Sie man sudoin Ihr System ein. Sudo ist sehr konfigurierbar; Beispielsweise kann es so konfiguriert werden, dass ein bestimmter Benutzer nur bestimmte Befehle als root ausführt. Weitere Informationen finden Sie in der sudoersManpage . Verwenden Sie sudo visudodiese Option, um die sudoers-Datei zu bearbeiten.

su

Der suBefehl ist auf den meisten Unix-ähnlichen Systemen vorhanden. Sie können einen Befehl als ein anderer Benutzer ausführen, sofern Sie das Kennwort dieses Benutzers kennen. Bei Ausführung ohne Angabe eines Benutzers suwird standardmäßig das Root-Konto verwendet.

Beispiel:

su -c 'service apache restart'

Der auszuführende Befehl muss mit der -cOption übergeben werden. Beachten Sie, dass Sie Anführungszeichen benötigen, damit der Befehl nicht von Ihrer Shell analysiert, sondern intakt an die ausgeführte Root-Shell übergeben wird su.

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 sich in der Gruppe 0 (angerufen wheel) befinden, um sie verwenden zu können su. (Der Punkt ist, den Schaden zu begrenzen, wenn das root-Passwort versehentlich an jemanden weitergegeben wird.)

Melden Sie sich als root an

Wenn ein Root-Passwort festgelegt ist und Sie es besitzen, können Sie es einfach rootan der Anmeldeaufforderung eingeben und das Root-Passwort eingeben. Seien Sie sehr vorsichtig und vermeiden Sie es, komplexe Anwendungen als Root auszuführen, da diese möglicherweise etwas tun, was Sie nicht beabsichtigt haben. Die direkte Anmeldung als Root ist vor allem in Notfällen hilfreich, z. B. bei Datenträgerfehlern oder wenn Sie Ihr Konto gesperrt haben.

Einzelbenutzermodus

Im Einzelbenutzermodus oder auf Run-Level 1 erhalten Sie auch Root-Berechtigungen. Dies ist in erster Linie für Notfallwartungssituationen gedacht, in denen ein Booten in eine Mehrbenutzer-Run-Level nicht möglich ist. Sie können im Einzelbenutzermodus über die Kernel-Befehlszeile singleoder emergencyüber die Kernel-Befehlszeile starten . Beachten Sie, dass das Booten im Einzelbenutzermodus nicht mit dem normalen Booten des Systems und der Anmeldung als Root identisch ist. Vielmehr startet das System nur die Services, die für Run-Level 1 definiert sind. In der Regel ist dies die geringste Anzahl von Services, die für ein verwendbares System erforderlich sind.

Sie können auch mit dem telinit Befehl des Single - User - Modus gelangen: telinit 1; Für diesen Befehl müssen Sie jedoch über eine andere Methode bereits über Root-Berechtigungen verfügen, um ausgeführt werden zu können.

Auf vielen Systemen ermöglicht das Booten im Einzelbenutzermodus dem Benutzer den Zugriff auf eine Root-Shell, ohne dass zur Eingabe eines Kennworts aufgefordert wird. Insbesondere systemdwerden Sie bei -basierten Systemen zur Eingabe des Root-Kennworts aufgefordert, wenn Sie auf diese Weise starten.

Andere Programme

Calife

Mit Calife können Sie Befehle als anderer Benutzer ausführen, indem Sie Ihr eigenes Kennwort eingeben, sofern Sie dazu berechtigt sind. Es ähnelt dem viel weiter verbreiteten Sudo (so). Calife ist leichter als sudo, aber auch weniger konfigurierbar.

Op

Mit Op können Sie Befehle als ein anderer Benutzer ausführen, einschließlich root. Dies ist kein vollständiges Tool zum Ausführen beliebiger Befehle: Sie geben ein, opgefolgt von einer Mnemonik , die vom Systemadministrator zum Ausführen eines bestimmten Befehls konfiguriert wurde.

Super

Mit Super können Sie Befehle als ein anderer Benutzer ausführen, einschließlich root. Der Befehl muss vom Systemadministrator zugelassen worden sein.

Ausführen eines grafischen Befehls als root

Siehe auch Wikipedia .

PolicyKit (bevorzugt bei Verwendung von GNOME)

Stellen Sie dem Befehl einfach den gewünschten Befehl voran pkexec. Beachten Sie, dass dies in den meisten Fällen funktioniert, jedoch nicht universell.

Siehe man pkexecfür weitere Informationen.

KdeSu, KdeSudo (bevorzugt bei Verwendung von KDE)

kdesuund kdesudosind grafische Frontends an suund sudoverbunden. Mit ihnen können Sie problemlos X Window-Programme als Root ausführen. Sie sind Teil von KDE . Art

kdesu -c 'command --option argument'

und geben Sie das root-Passwort ein oder geben Sie Folgendes ein

kdesudo -c 'command --option argument'

und geben Sie Ihr Passwort ein (falls zur Ausführung berechtigt sudo). Wenn Sie in KdeSu die Option "Kennwort beibehalten" aktivieren, müssen Sie das Root-Kennwort nur einmal pro Anmeldesitzung eingeben.

Andere Programme

Ktsuss

Ktsuss ist eine grafische Version von su.

Beesu

Beesu ist ein grafisches Frontend für den Befehl su, der Gksu in Red Hat-basierten Betriebssystemen ersetzt hat. Es wurde hauptsächlich für RHEL und Fedora entwickelt.

Veraltete Methoden

gksu und gksudo

gksuund gksudosind grafische Frontends an suund sudoverbunden. Mit ihnen können Sie problemlos X Window-Programme als Root ausführen. Sie sind Teil von Gnome . Art

gksu command --option argument

und geben Sie das root-Passwort ein oder geben Sie Folgendes ein

gksudo command --option argument

und geben Sie Ihr Passwort ein (falls zur Ausführung berechtigt sudo).

gksuund gksudosind obsolet. Sie wurden in GNOME durch PolicyKit ersetzt und von vielen Distributionen (wie Ubuntu) nicht mehr standardmäßig installiert. 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 beim Übergang auf root weder die DISPLAYUmgebungsvariable noch die XAUTHORITYUmgebung zurückgesetzt werden. Dies erfordert möglicherweise eine zusätzliche Konfiguration der Methoden, die außerhalb des Bereichs dieser Frage liegen.

Insgesamt ist dies eine schlechte Idee, vor allem, weil grafische Anwendungen Konfigurationsdateien als Root lesen und schreiben. Wenn Sie versuchen, diese Anwendungen erneut als normaler Benutzer zu verwenden, haben diese Anwendungen keine Berechtigung zum Lesen ihrer eigenen Konfigurationen.

Bearbeiten einer Datei als root

Siehe Wie bearbeite ich eine Datei als root?

Gilles
quelle
2
Es sollte beachtet werden, dass dies sudonur funktioniert, wenn (1) es installiert ist und (2) Sie es in der sudoers-Datei verwenden und die Operation ausführen dürfen.
Nr.
2
Dies muss aktualisiert werden. pkexecersetzt gksu/ gksudoin vielen Distributionen heutzutage.
Strugee
1
@strugee - Wolltest du versuchen, dies zu aktualisieren? Das Zeug unter Redhat ist auch nicht korrekt.
slm
8

Verwendung su:

$ su -c command

oder

$ su
# command
# exit

In beiden Fällen werden Sie zur Eingabe des rootPassworts aufgefordert . Weitere Informationen finden Sie auf der Handbuchseite .

Steven D
quelle
3

Da die Frage nicht Linux-spezifisch war, erfahren Sie hier, wie Sie dasselbe Ziel in Solaris 9+ (oder Trusted Solaris 8) erreichen:

Solaris enthält seit Version 9 eine Reihe von Tools, die liebevoll als RBAC (Role Based Access Control) bezeichnet werden.

Der Kern von RBAC besteht darin, dass Sie durch die Gewährung von Berechtigungen und Rechten an Benutzer und / oder Rollen oder durch die Gewährung von Rollen an Benutzer unglaublich fein abgestimmte Modelle erstellen können, die angeben, wer was mit welchen Berechtigungen ausführen darf.

Im Wesentlichen identifizieren Sie die Berechtigung in / etc / security / auth_attr und erteilen sie dann Benutzern oder Rollen in / etc / user_attr.

Sie definieren Profile in / etc / security / prof_attr. Anschließend ordnen Sie diesen Profilen Befehle in / etc / security / exec_attr zu und weisen diese Profile den Benutzern in der Datei / etc / user_attr zu.

Sobald diese Dinge erledigt sind, werden Sie tatsächlich ausgeführt pfexec <command>, um den Befehl mit Berechtigungen auszuführen, die diesem Benutzer für diesen Befehl gewährt wurden .

Das Schöne an RBAC ist, dass es keine zusätzlichen Berechtigungen für den Befehl selbst oder den Benutzer gibt, sondern nur für die Kombination aus Benutzer + Befehl. Es ist also sicherer, als binäre + s zu erstellen oder einfach sudo zu verwenden, damit ein Benutzer so ziemlich alles ausführen kann. (Ich weiß, dass Sie sudo sperren können, aber meiner Erfahrung nach tun die meisten Leute das nicht.)

Ein weiterer Vorteil von RBAC ist, dass Sie root zu einem Rollenkonto machen und diese Rolle Benutzern zuweisen können, die in der Lage sind, mit dem Befehl 'su' und dem root-Kennwort root zu werden. Der Root-Benutzer kann sich auch im Einzelbenutzermodus anmelden, was meiner Meinung nach besser ist als das Linux-Modell, bei dem Sie das Root-Passwort deaktivieren passwd -d rootoder das Root-Konto sperren passwd -l rootkönnen. Beide führen dazu, dass Sie sich als Root anmelden schwer, wenn etwas schief geht.

Ben Rockwood hat einen großartigen Blog-Beitrag über RBAC, der unter Using RBAC on (Open) Solaris zu lesen ist .

Tim Kennedy
quelle
3

Oder Sie können einigen Befehlen eine Superkraft geben. Ich spreche von speziellen Berechtigungen, bei denen Befehle mit der Erlaubnis des Eigentümers ausgeführt werden.

#which <command>Rufen Sie den Befehlspfad über ab und legen Sie die SUID oder SGID für diesen Pfad fest.

PS-SUID- und SGID-Bits sollten mit Vorsicht angegeben werden. Sie können Ihr System unsicher machen.

Ayush Goyal
quelle