Antworten:
Die beiden wichtigsten Befehlszeilenoptionen sind:
su
das root-Passwort und geben Sie es ein, wenn Sie dazu aufgefordert werden.sudo
den Befehl vor und geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden.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 sudo
Befehle 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 -i
können Sie verwenden sudo -s
. Der Unterschied besteht darin , dass -i
re i die Umwelt vernünftige Default nitializes, während -s
verwendet Ihre Konfigurationsdateien für Gedeih und Verderb.
Weitere Informationen finden Sie auf der sudo-Website oder geben Sie man sudo
in 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 sudoers
Manpage . Verwenden Sie sudo visudo
diese Option, um die sudoers-Datei zu bearbeiten.
Der su
Befehl 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 su
wird standardmäßig das Root-Konto verwendet.
Beispiel:
su -c 'service apache restart'
Der auszuführende Befehl muss mit der -c
Option ü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.)
Wenn ein Root-Passwort festgelegt ist und Sie es besitzen, können Sie es einfach root
an 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.
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 single
oder 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 systemd
werden Sie bei -basierten Systemen zur Eingabe des Root-Kennworts aufgefordert, wenn Sie auf diese Weise starten.
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.
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, op
gefolgt von einer Mnemonik , die vom Systemadministrator zum Ausführen eines bestimmten Befehls konfiguriert wurde.
Mit Super können Sie Befehle als ein anderer Benutzer ausführen, einschließlich root. Der Befehl muss vom Systemadministrator zugelassen worden sein.
Siehe auch Wikipedia .
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 pkexec
für weitere Informationen.
kdesu
und kdesudo
sind grafische Frontends an su
und sudo
verbunden. 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.
Ktsuss ist eine grafische Version von su.
BeesuBeesu 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.
gksu
und gksudo
gksu
und gksudo
sind grafische Frontends an su
und sudo
verbunden. 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
).
gksu
und gksudo
sind 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.
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 DISPLAY
Umgebungsvariable noch die XAUTHORITY
Umgebung 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.
sudo
nur funktioniert, wenn (1) es installiert ist und (2) Sie es in der sudoers-Datei verwenden und die Operation ausführen dürfen.
pkexec
ersetzt gksu
/ gksudo
in vielen Distributionen heutzutage.
Verwendung su
:
$ su -c command
oder
$ su
# command
# exit
In beiden Fällen werden Sie zur Eingabe des root
Passworts aufgefordert . Weitere Informationen finden Sie auf der Handbuchseite .
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 root
oder das Root-Konto sperren passwd -l root
kö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 .
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.