Sie sind Administrator, aber nicht root
. Der root
Benutzer kann alles tun. Administratoren können Aktionen wieroot
folgt ausführen , aber normalerweise wird das, was Administratoren tun, nicht von ausgeführt root
. Auf diese Weise haben Sie die volle Kontrolle über Ihr eigenes System, aber nur , wenn Sie wählen , es zu benutzen.
Ubuntu fragt nach deinem Passwort, wenn du versuchst Sachen wie root
zu machen, um sicherzugehen, dass du es wirklich bist.
Benutzerkonten: Mensch und sonst
Echte Benutzer haben Benutzerkonten, um sie darzustellen. Sie haben ein solches Konto bei der Installation von Ubuntu erstellt. Aber nicht alle Benutzerkonten repräsentieren echte menschliche Benutzer .
Echte menschliche Benutzer erhalten über ihre Benutzerkonten bestimmte (und verweigerte) Berechtigungen. Sie müssen ihre Benutzerkonten verwenden, um das System zu verwenden. Daher gelten für sie die Fähigkeiten und Einschränkungen ihrer Benutzerkonten.
Benutzerkonten werden auch verwendet, um eine Reihe von Fähigkeiten und Einschränkungen zu kodifizieren. Einige Benutzerkonten - die meisten, es sei denn, Sie haben viele menschliche Benutzer der Maschine - existieren, damit bestimmte Programme oder Befehle mit ihrer Identität ausgeführt werden können, eine Identität mit den richtigen Fähigkeiten und Einschränkungen für den Job.
Der www-data
Benutzer ist beispielsweise so vorhanden, dass er, wenn Sie einen Webserver ausführen, die Daten besitzt, auf die der Server zugreifen kann. Kein echter menschlicher Benutzer muss befugt sein, ungeprüfte Änderungen an diesen Daten vorzunehmen, und der Webserver muss nicht befugt sein, Aktionen auszuführen, die für die Bereitstellung des Webs nicht erforderlich sind. Folglich sind sowohl die Webdaten als auch der Rest des Systems sicherer gegen versehentliche oder vorsätzliche Beschädigung, als wenn der Webserver von einem menschlichen Benutzer betrieben würde, der alle Befugnisse des Webservers hätte (und dessen Befugnisse der Webserver hätte) besitzen).
Das wichtigste nichtmenschliche Benutzerkonto
Der Superuser mit dem Benutzernamen ist root
ein nicht-menschliches Benutzerkonto mit einer ganz bestimmten Kombination von Fähigkeiten und Einschränkungen: alle Fähigkeiten und keine Einschränkungen .
root
‚s erlaubt , etwas zu tun. Es gibt immer noch Dinge, root
die nicht möglich sind, weil das System selbst keine Leistung erbringen kann oder keinen Sinn daraus ergibt. Sie root
können also keinen Prozess beenden, der sich im ununterbrochenen Schlaf befindet , oder einen Stein zu schwer machen, um sich zu bewegen, und ihn dann bewegen .
Viele wichtige Systemprozesse werden beispielsweise init
als ausgeführt root
und root
werden zur Ausführung von Verwaltungsaufgaben verwendet.
Kann ich mich als einloggen root
?
Es ist möglich, das root
Konto so zu konfigurieren , dass Sie sich mit einem Kennwort anmelden können, dies ist jedoch in Ubuntu standardmäßig nicht aktiviert. Stattdessen kann man sich vorstellen root
als wie sein www-data
, lp
, nobody
und andere nichtmenschliche Konten. (Lauf cat /etc/passwd
oder getent passwd
um sie alle zu sehen.)
Menschliche Benutzer melden sich mit ihren eigenen Benutzerkonten an, und wenn dann eine Aufgabe mit einem anderen Benutzerkonto ausgeführt werden soll, veranlassen sie, dass diese Aufgabe mit dieser Identität ausgeführt wird , ohne sich tatsächlich als dieser Benutzer angemeldet zu haben .
Es ist möglich, die anderen nicht-menschlichen Benutzer wie zu konfigurieren www-data
, so dass man sich auch als diese anmelden kann. Dies ist jedoch ziemlich selten, wohingegen es in einigen anderen Unix-ähnlichen Betriebssystemen üblich ist, sich wie root
in einem Terminal anzumelden . Das Risiko, eine vollständige grafische Benutzeroberfläche root
auszuführen, root
sowie die root
Anzahl der grafischen Programme, die möglicherweise nicht ordnungsgemäß ausgeführt werden können, führen dazu, dass Sie niemals versuchen sollten, eine eigene Desktopsitzung zu erstellen .
Bitte beachten Sie, dass während der Aufzeichnung in als root
standardmäßig in Ubuntu deaktiviert ist, es Möglichkeiten gibt , einen zu bekommen root
als Shell ohne Authentifizierung root
, die eine ähnliche Wirkung erzeugen: die häufigsten sind sudo -s
oder-i
, Recovery - Modus und ähnliche Techniken . (Machen Sie sich keine Sorgen, wenn Sie nicht wissen, was diese Dinge sind.) Dies ist eigentlich keine Anmeldung: Im Wiederherstellungsmodus werden Sie, root
bevor eine Anmeldung erfolgen würde; Mit den sudo
-basierten Methoden führen Sie lediglich eine Shell als root aus.
Administratoren
In Ubuntu sind Administratoren die Benutzer, die das tun können, was sie wollen root
, wenn sie dies möchten .
Systemeinstellungen> Benutzerkonten. "Eliah Kagan" ist ein Administrator, also kann er Sachen wie machen root
, aber er ist es nichtroot
.
Ich bin Administrator auf meinem Ubuntu-System. Wenn ich Programme starte, werden sie normalerweise ausgeführt als ek
("Eliah Kagan" ist der vollständige Name, der dem ek
Benutzernamen entspricht.)
Wenn ich AbiWord oder LibreOffice ausführe, wird es als ausgeführt ek
. Wenn ich Firefox, Chromium, Empathy oder Pidgin starte, läuft es als ek
. Die Programme, die zur Bereitstellung der Desktop-Oberfläche ausgeführt werden, werden als ausgeführt ek
.
Ich bin jedoch ein Administrator. Wenn ich eine Verwaltungsaufgabe ausführen muss, kann ich dies tun.
sudo
In der Befehlszeile würde ich normalerweise sudo
einen Befehl ausführen als root
:
sudo command...
Dadurch werde ich nach meinem Passwort gefragt. (Not root
's Passwort; root
hat noch keines.)
- Da ich Administrator bin, kann ich Aktionen ausführen als
root
. In der Standardkonfiguration muss ich dazu mein Passwort eingeben.
- Benutzer, die keine Administratoren sind, können keine Aktionen ausführen
root
, selbst wenn sie ihr Kennwort eingeben. sudo
Befehle schlagen fehl, wenn der Benutzer, der sie ausführt, kein Administrator ist.
Da Administratoren mit Ausnahme der Möglichkeit, Aktionen auszuführen root
, normale Benutzer sind, schlägt die Ausführung eines Befehls, für den root
Berechtigungen erforderlich sind, immer noch fehl, es sei denn, der Befehl wird ausgeführt alsroot
.
Screenshot, der die Notwendigkeit sudo
zur Ausführung von Verwaltungsaufgaben veranschaulicht . (Basierend auf "Sandwich" von Randall Munroe .)
sudo, grafisch
Grafische Programme können als laufen root
durch grafische Frontends fürsudo
, wie gksu
/gksudo
und kdesudo
. Zum Beispiel, um GParted so auszuführen, wie root
ich es könnte gksudo gparted
. Dann würde ich grafisch nach meinem Passwort gefragt.
Da ich grafisch dazu aufgefordert werde, muss es kein Terminal geben. Dies ist eine der Methoden, unter denen Verwaltungstools ausgeführt werden root
.
Polkit
Polkit (früher als PolicyKit bezeichnet) ist eine weitere Möglichkeit für Administratoren, Dinge wie folgt zu tun root
. Ein Programm greift auf einen Dienst zu, der die Aktion ausführt. Manchmal führt die Aktion ein ganzes Programm aus. manchmal ist die Aktion etwas eingeschränkter.
Heutzutage sind viele Dienstprogramme für die grafische Systemverwaltung so eingerichtet, dass sie standardmäßig Polkit anstatt Polkit verwenden sudo
.
Ein Beispiel für ein solches Dienstprogramm ist das Software Center. Es nutzt die Vorteile von Polkit voll aus und erfordert, dass der Benutzer sein Kennwort nur eingibt , wenn er etwas tun möchte, das root
Berechtigungen erfordert . (Dies ist auch mit sudo
-basierter Authentifizierung möglich , aber schwieriger und hässlicher durchzuführen.)
Im Software-Center kann ich nach einer Anwendung suchen und diese lesen. dann werde ich nach meinem Passwort gefragt, wenn ich es installieren möchte.
Wie Polkit anders ist
Jedes grafisches Programm kann ausgeführt werden root
mit gksudo
und anderen grafischen sudo
Frontends. (Das Programm funktioniert möglicherweise nicht sehr gut, je nachdem, ob es als verwendet wird oder nicht root
. Der Befehl zum Starten des Programms wird jedoch als ausgeführt root
.)
Während polkit heutzutage häufiger als sudo
GUI-Frontends eingesetzt wird, da Anwendungen unter Ubuntu Aktionen wie root
im Hintergrund ausführen, führt polki eine grafische Anwendung nur so aus, als root
gäbe es eine Konfigurationsdatei , die dies zulässt und angibt, welche Aktionen ausgeführt werden können .
Polkit, nicht grafisch
pkexec
ist der Befehl zum Ausführen eines Programms mit Polkit.
Gefällt mir sudo
, pkexec
kann nicht grafische Befehle ausführen. (Und es ist keine Konfigurationsdatei erforderlich, die die Funktionen des Befehls definiert. Der Befehl wird einfach ausgeführt als root
.)
pkexec command...
pkexec
fordert Sie grafisch zur Eingabe eines Kennworts auf, auch wenn es von einem Terminal aus ausgeführt wird (dies ist eine der Methoden, mit denen sich das Verhalten ähnlicher verhält gksudo
als wenn es direkt ausgeführt wird sudo
).
(Wenn keine grafische Benutzeroberfläche vorhanden ist, z. B. wenn Sie über eine virtuelle Konsole oder eine reine Text- SSH-Sitzung angemeldet sind oder die grafische Benutzeroberfläche nicht ordnungsgemäß funktioniert, pkexec
wird die Leistung beeinträchtigt und Sie werden in der Befehlszeile zur Eingabe Ihres Kennworts aufgefordert .)
Nach erfolgreicher Authentifizierung wird der Befehl im Terminal ausgeführt.
Ausführen von Befehlen als andere Benutzer root
root
ist etwas Besonderes, weil es alles kann, was getan werden kann. Es ist jedoch ein Benutzerkonto wie jedes andere Konto, und die Art und Weise, wie Befehle wie root
mit sudo
(direkt oder mit einem grafischen Frontend) oder Polkit ausgeführt werden, kann leicht geändert werden, um einen Befehl wie jeder andere Benutzer auszuführen:
sudo -u username command...
gksudo -u username command...
pkexec --user username command...
Was? Sie tippen nur sudo
zuerst? Wie ist diese Sicherheit ?!
Das Ausführen von Befehlen mit sudo
ähnelt der Herbeiführung päpstlicher Unfehlbarkeit .
Wenn Sie einen Befehl mit laufensudo
[invoke päpstlicher Unfehlbarkeit] , Ubuntu [katholisch Leute] versucht sicher schwer zu machen sind Sie wirklich Sie [wirklich der Papst].
Ja, ich weiß, dass die päpstliche Unfehlbarkeit (auch wenn sie normativ ist) deklarativ ist. Die Parallele ist nicht perfekt.
Der Versuch, etwas wie root
mit sudo
(oder einem Polkit) zu tun, ist eine große Sache - Ubuntu lässt dies nicht einfach wie jedes andere Mal, wenn Sie ein Programm ausführen, vorbeiziehen.
Sie werden aufgefordert, Ihr Passwort einzugeben. (Dann wird für kurze Zeit daran erinnert, dass Sie dies getan haben, sodass Sie bei der Verwaltung Ihres Systems nicht ständig Ihr Kennwort eingeben müssen.)
Außerdem Sie daran erinnert , vorsichtig zu sein , diese Schutzmaßnahmen gegen zwei Szenarien:
- Jemand verwendet Ihren Computer (oder Ihr Mobilgerät), möglicherweise unter dem Deckmantel, dass er seine E-Mails abruft, oder aus einem ähnlichen harmlosen Grund. Hier können sie noch Schaden anrichten - zum Beispiel könnten sie Ihre Dokumente ändern oder löschen. Sie können das System jedoch nicht verwalten, da sie Ihr Kennwort nicht eingeben können.
- Programme, die das System nicht verwalten sollen, können dies nur, wenn Sie Ihr Kennwort eingeben. Wenn Ihr Webbrowser beispielsweise von einer Sicherheitslücke befallen ist und schädlichen Code ausführt, kann er weiterhin keine administrativen Aufgaben ausführen. Es kann keine Benutzer erstellen und löschen, keine Programme ändern, die als installiert sind
root
(einschließlich der vom Paketmanager installierten Elemente, z. B. LibreOffice), und keine tiefgreifenden Änderungen am System vornehmen.
Ich habe davon gehört su
. Was ist das? Kann ich das benutzen?
su
Authentifiziert sich als ein anderer Benutzer und führt einen Befehl aus (oder startet eine interaktive Shell). Es ist möglich zu begrenzen, wer verwendet werden darf su
, su
authentifiziert sich jedoch mit dem Kennwort des Zielkontos und nicht mit dem Kennwort des ausgeführten Benutzers.
Zum Beispiel läuft als Benutzername , genau wie .su username -c 'command...'
command...
sudo -u username command...
Wenn Sie jedoch einen Befehl wie username
mit ausführen sudo
, geben Sie Ihr Kennwort ein . Wenn Sie einen Befehl wie username
mit ausführen su
, geben Sie das username
Kennwort ein .
Da su
die Authentifizierung für den Zielbenutzer ausgeführt wird , su
können Sie Befehle nur als Benutzer ausführen, deren Konten aktiviert sind .
Das root
Konto (wie www-data
und nobody
) ist standardmäßig deaktiviert. Es gibt kein Passwort, mit dem Sie sich anmelden können root
. Sie können also keine su
Befehle ausführen als root
.
Sie können verwenden su
Befehle als ein anderer Benutzer auszuführen, anmelden können (die in der Regel alle Benutzerkonten auf Ihrem System , die Menschen darstellen einschließt).
Wenn Sie als Gast angemeldet sind, können Sie überhaupt nicht verwenden su
.
Kombinieren su
undsudo
Jemand, der kein Administrator ist , kann auch verwenden , su
laufen sudo
als Administrator an . (Dies ist jedoch in Ordnung, da das Administratorkennwort zum Ausführen von Befehlen als Administrator erforderlich ist.) Das heißt, ein begrenzter Benutzer kann einen Befehl su
ausführen sudo
, indem er verwendet root
. Das kann so aussehen:
su username -c 'sudo command...'
(Das Ausführen von Grafikprogrammen auf diese Weise erfordert besondere Sorgfalt .)
Wäre es nicht su
sicherer, Befehle auszuführen als root
?
Wahrscheinlich nicht.
Was ist, wenn ein Benutzer nicht als agieren darf root
?
Machen Sie sie zu einem eingeschränkten Benutzer anstelle eines Administrators.
Was passiert , wenn ein Programm läuft als Administrator versucht, sudo
zu root
?
Wenn Sie keine Neukonfiguration vorgenommen haben sudo
, damit der Vorgang ohne Kennwort erfolgreich ist, schlägt der Vorgang fehl.
Kann ein Programm, das nicht als root
Huckepack ausgeführt werden soll, bei einem aktuellen sudo
Befehl nicht ausgeführt werden, sodass kein Kennwort erforderlich ist?
Es ist sehr unwahrscheinlich, dass dies gelingt. Heutzutage sind die meisten Betriebssysteme (einschließlich Ubuntu) sudo
standardmäßig so konfiguriert, dass ihre Zeitstempel nur in einem bestimmten Kontext gelten.
Wenn ich beispielsweise sudo ...
auf einer Registerkarte des Terminals ausgeführt und mich erfolgreich authentifiziert habe, wird sudo
auf einer anderen Registerkarte (oder von einem nicht verwandten GUI-Programm ausgeführt oder von einer virtuellen Konsole oder einer SSH-Sitzung aus) weiterhin ein Kennwort abgefragt. Auch wenn es unmittelbar danach ausgeführt wird.
Hat ein Programm, das als Benutzer X ausgeführt wird, keinen Zugriff auf das Kennwort von Benutzer X?
Nein.
Wenn ein bösartiges Programm als Administrator ausgeführt werden kann, kann es dann nicht mithören, was eingegeben wird, wenn sich der Administrator bei sudo
oder mit polkit authentifiziert ?
Möglicherweise ja. Aber dann könnte es sich ein Passwort "anhören", für das es eingegeben wurde su
.
Wenn ich jemandem mein Passwort sage -
Teilen Sie den Leuten nicht Ihr Passwort mit.
Was ist, wenn jemand mein Passwort kennen muss, um etwas in meinem Namen zu tun, aber ich möchte nicht, dass er das System verwaltet?
Idealerweise sollten sie über ein separates Benutzerkonto verfügen, mit dem sie das tun können, was sie tun müssen. Kann beispielsweise Dateien für Konten freigeben, sodass mehrere Benutzer darauf schreiben können, während anderen Benutzern der Zugriff verweigert wird.
In Situationen, in denen es einer weniger vertrauenswürdigen Person gestattet ist, Ihr Konto freizugeben, sollte es sich jedoch um ein eingeschränktes Benutzerkonto handeln. Zu diesem Zweck können Sie ein separates Konto einrichten (was sinnvoll ist - wenn es sich um ein Konto für Sie und eine andere Person handelt, für die Sie unterschiedliche Funktionen wünschen, sollte es sich um ein anderes Konto handeln).
So wäre die sicherste Sache sein , sowohl zu verbieten sudo
und su
und die Leute melden Sie sich als root
manuell?
Nein, da es schwerwiegende Nachteile gibt, wenn sich Personen überhaupt einloggen root
. Wann immer möglich, sollte so wenig wie möglich vorgegangen werden root
. Selbst die meisten Vorgänge, die sich direkt auf die Verwaltung eines Systems beziehen (z. B. die Anzeige der konfigurierten Benutzer und das Lesen von Protokollen), erfordern normalerweise keine root
Berechtigungen.
Ebenso, wie potenziell ein bösartiges Programm beobachten könnte, was jemand eingibt, wenn er ausgeführt wird, sudo
oder su
oder eine falsche sudo
/ su
Passwort-Eingabeaufforderung erstellen könnte, könnte potenziell ein bösartiges Programm auch einen falschen Anmeldebildschirm erstellen.
Was macht einen Benutzer zum Administrator?
Gruppenmitgliedschaft.
In Ubuntu 12.04 und höher sind Administratoren Mitglieder der aufgerufenen Gruppe sudo
.
In Ubuntu 11.10 und früheren Versionen sind Administratoren Mitglieder der aufgerufenen Gruppe admin
.
Wenn ein Ubuntu-System vor 12.04 auf 12.04 oder höher aktualisiert wird, bleibt die admin
Gruppe aus Gründen der Abwärtskompatibilität erhalten (und erteilt den Benutzern weiterhin Administratorrechte), die sudo
Gruppe wird jedoch auch verwendet.
Begrenzte Benutzerkonten
Kann ich ein eingeschränktes Benutzerkonto anstelle eines Administratorkontos verwenden?
Wenn Sie möchten, sicher. Erstellen Sie unter Systemeinstellungen > Benutzerkonten ein eingeschränktes Benutzerkonto und melden Sie sich als dieser Benutzer an.
Kann ich mein Administratorkonto zu einem eingeschränkten Benutzerkonto machen?
Ja, entfernen Sie es einfach aus den Gruppen sudo
und admin
(siehe oben).
Sie sollten jedoch sicherstellen, dass mindestens ein weiteres Administratorkonto vorhanden ist, damit Sie Ihr System verwalten können. Wenn dies nicht der Fall ist, müssen Sie in den Wiederherstellungsmodus oder auf eine Live-CD booten und einen Benutzer erneut zum Administrator machen . (Dies ähnelt dem Zurücksetzen eines verlorenen Administratorkennworts .)
Mit grafischen Tools zur Verwaltung von Benutzern und Gruppen können Sie in der Regel kein System ohne Administratoren erstellen oder Sie zumindest warnen. Befehlszeilentools sind normalerweise nicht in der Lage (vertrauen Sie darauf, dass Sie wissen, was Sie tun).