So steuern Sie sudo Zugriff unter Linux

Die sudo Mit Befehl können Sie Befehle unter Linux ausführen, als wären Sie jemand anderes, wie z root. sudo lässt Sie auch steuern, wer darauf zugreifen kann root's Fähigkeiten, mit Granularität. Geben Sie Benutzern vollen Zugriff oder lassen Sie sie eine kleine Teilmenge von Befehlen verwenden. Wir zeigen Ihnen wie.

sudo und Root-Berechtigungen

Wir haben alle gehört (die Vereinfachung), dass alles in Linux eine Datei ist. Tatsächlich kommuniziert praktisch alles im Betriebssystem von Prozessen, Dateien, Verzeichnissen, Sockets und Pipes über einen Dateideskriptor mit dem Kernel. Obwohl also nicht alles eine Datei ist, werden die meisten Betriebssystemobjekte so behandelt, als ob sie es wären. Das Design von Linux- und Unix-ähnlichen Betriebssystemen folgt nach Möglichkeit diesem Prinzip.

Das Konzept „Alles ist eine Datei“ ist in Linux weitreichend. Es ist dann leicht zu sehen, wie Dateiberechtigungen in Linux zu einer der tragenden Säulen von Benutzerrechten und -rechten wurden. Wenn Sie eine Datei oder ein Verzeichnis (eine besondere Art von Datei) besitzen, können Sie damit machen, was Sie wollen, einschließlich Bearbeiten, Umbenennen, Verschieben und Löschen. Sie können auch die Berechtigungen für die Datei festlegen, damit andere Benutzer oder Benutzergruppen die Datei lesen, ändern oder ausführen können. Jeder unterliegt diesen Berechtigungen.

Jeder, der außer dem Superuser bekannt ist als root. Die root Konto ist ein besonders privilegiertes Konto. Es ist nicht an die Berechtigungen für eines der Objekte im Betriebssystem gebunden. Der Root-Benutzer kann alles mit allem machen und so ziemlich zu jeder Zeit.


Natürlich jeder mit Zugriff auf root's Passwort kann das gleiche tun. Sie könnten böswillig oder versehentlich Schaden anrichten. Tatsächlich ist die root Der Benutzer kann auch durch einen Fehler verheerende Schäden anrichten. Niemand ist unfehlbar. Es ist gefährliches Zeug.

Aus diesem Grund gilt es jetzt als bewährte Methode, sich nicht als anzumelden root überhaupt. Melden Sie sich mit einem regulären Benutzerkonto an und verwenden Sie sudo zu Erhöhen Sie Ihre Privilegien für die kurze Dauer du brauchst sie. Das ist oft nur ein einziger Befehl.

Was bedeutet “Alles ist eine Datei” in Linux?

Die Sudoers-Liste

sudo wurde bereits auf Ubuntu 18.04.3, Manjaro 18.1.0 und Fedora 31 Computer verwendet, um diesen Artikel zu recherchieren. Dies ist keine Überraschung. sudo gibt es seit den frühen 1980er Jahren und ist für fast alle Distributionen zum Standard für den Superuser-Betrieb geworden.

Wenn Sie eine moderne Distribution installieren, wird der Benutzer, den Sie während der Installation erstellen, einer Liste von Benutzern hinzugefügt, die sudoers genannt werden. Dies sind die Benutzer, die die sudo Befehl. Weil du hast sudo Sie können diese Befugnisse verwenden, um andere Benutzer zur Liste der Sudoer hinzuzufügen.

Natürlich ist es rücksichtslos, den vollen Superuser-Status willentlich oder an jeden zu vergeben, der nur einen teilweisen oder spezifischen Bedarf hat. In der Sudoers-Liste können Sie festlegen, welche Befehle die verschiedenen Benutzer verwenden dürfen sudo mit. Auf diese Weise gibst du ihnen nicht die Schlüssel zum Königreich, aber sie können trotzdem tun, was sie tun müssen.

Ausführen eines Befehls als anderer Benutzer

Ursprünglich hieß es „Superuser do“, weil man als Superuser Dinge tun konnte. Sein Anwendungsbereich wurde jetzt erweitert, und Sie können verwenden sudo um einen Befehl auszuführen, als ob Sie ein beliebiger Benutzer wären. Es wurde umbenannt, um diese neue Funktionalität widerzuspiegeln. Es heißt jetzt “Ersatzbenutzer tun”.

Benutzen sudo Um einen Befehl als ein anderer Benutzer auszuführen, müssen wir die -u (Benutzer-)Option. Hier laufen wir die Wer bin ich Befehl als Benutzer mary. Wenn Sie das verwenden sudo Befehl ohne die -u Option, führen Sie den Befehl aus als root.


Und natürlich, weil Sie verwenden sudo Sie werden nach Ihrem Passwort gefragt.

sudo -u mary whoami

Die Antwort von whoami teilt uns mit, dass das Benutzerkonto, das den Befehl ausführt, mary.

Du kannst den … benutzen sudo Befehl, sich als ein anderer Benutzer anzumelden, ohne sein Passwort zu kennen. Sie werden nach Ihrem eigenen Passwort gefragt. Wir müssen die nutzen -i (Anmelde-) Option.

sudo -i -u mary
pwd
whoami
ls -hl
exit

Du bist eingeloggt als mary. Die Dateien „.bashrc“, „.bash_aliases“ und „.profile“ für das mary-Benutzerkonto werden genau so verarbeitet, als ob sich der Inhaber des mary-Benutzerkontos selbst eingeloggt hätte.

  • Die Eingabeaufforderung ändert sich, um anzuzeigen, dass es sich um eine Sitzung für das Benutzerkonto handelt mary.
  • Die pwdBefehlsberichte, in denen Sie sich gerade befinden mary's Home-Verzeichnis.
  • whoami teilt uns mit, dass Sie ein Benutzerkonto verwenden mary.
  • Die Dateien im Verzeichnis gehören zu den mary Benutzerkonto.
  • Die exit Befehl bringt dich zurück zu Ihre normale Benutzerkontositzung.

Bearbeiten der sudoers-Datei

So fügen Sie Benutzer zur Liste der Personen hinzu, die verwenden können sudo , müssen Sie die bearbeiten sudoers Datei. Es ist äußerst wichtig, dass Sie dies immer nur mit dem visudo Befehl. Die visudo -Befehl verhindert, dass mehrere Personen gleichzeitig versuchen, die sudoers-Datei zu bearbeiten. Es auch führt Syntaxprüfung und Parsing durch auf den Dateiinhalt, während Sie ihn speichern.


Wenn Ihre Änderungen die Tests nicht bestehen, wird die Datei nicht blind gespeichert. Sie erhalten Optionen. Sie können die Änderungen abbrechen und verwerfen, zurückgehen und die Änderungen erneut bearbeiten oder das Speichern der falschen Änderungen erzwingen. Die letzte Option ist eine ernsthaft schlechte Idee. Lassen Sie sich nicht dazu verleiten. Sie können sich in einer Situation wiederfinden, in der alle versehentlich von der Nutzung ausgeschlossen sind sudo.

Obwohl Sie den Bearbeitungsvorgang mit der visudo Befehl, visudo ist kein Redakteur. Es ruft einen Ihrer vorhandenen Editoren auf, um die Dateibearbeitungen durchzuführen. Auf Manjaro und Ubuntu ist die visudo Befehl gestartet der einfache Editor nano. Auf Fedora, visudo gestartet, desto leistungsfähiger—aber weniger intuitivvim.

Wie man Exit der Vi- oder Vim-Editor

Wenn Sie es lieber verwenden möchten nano An Fedora, können Sie dies problemlos tun. Zuerst installieren nano:

sudo dnf installieren nano

Und dann visudo musste mit diesem Befehl aufgerufen werden:

sudo EDITOR=nano visudo

Das sieht nach einem guten Kandidaten für einen Alias ​​aus. Die nano Der Editor wird mit der darin geladenen sudoers-Datei geöffnet.

Nano-Editor mit geladener sudoers-Datei

Hinzufügen von Benutzern zum sudo Gruppe

Verwenden visudo um die sudoers-Datei zu öffnen. Verwenden Sie entweder diesen Befehl oder den oben beschriebenen, um den Editor Ihrer Wahl anzugeben:

sudo visudo

Scrollen Sie durch die sudoers-Datei, bis Sie die Definition des sehen %sudo Eintrag.

Die sudoers-Datei mit dem %sudo Zeile hervorgehoben


Das Prozentzeichen zeigt an, dass es sich um eine Gruppendefinition und nicht um eine Benutzerdefinition handelt. Bei einigen Distributionen ist die %sudo Zeile hat einen Hash # am Anfang der Zeile. Dadurch wird die Zeile zu einem Kommentar. Entfernen Sie in diesem Fall den Hash und speichern Sie die Datei.

Die %sudo Zeile gliedert sich wie folgt:

  • %sudo: Der Name der Gruppe.
  • ALLE=: Diese Regel gilt für alle Hosts in diesem Netzwerk.
  • (ALLES ALLES): Mitglieder dieser Gruppe können Befehle wie alle Benutzer und alle Gruppen ausführen.
  • Alle: Mitglieder dieser Gruppe können alle Befehle ausführen.

Um das etwas anders zu formulieren: Mitglieder dieser Gruppe können jeden Befehl als jeder Benutzer oder jede Gruppe auf diesem Computer oder auf jedem anderen Host in diesem Netzwerk ausführen. Also eine einfache Möglichkeit, jemandem Root-Rechte und die Möglichkeit zu geben, zu verwenden sudo, ist, sie zu dem hinzuzufügen sudo Gruppe.

Wir haben zwei Benutzer, Tom und Mary, mit Benutzerkonten tom und mary bzw. Wir werden ein Benutzerkonto hinzufügen tom zum sudo Gruppe mit der usermod Befehl. Die -G (Gruppen) Option gibt die Gruppe an, die wir hinzufügen werden tom Konto zu. Die -a (Anhängen) Option fügt diese Gruppe der Liste der Gruppen des Benutzerkontos hinzu tom ist bereits in. Ohne diese Option wird das Benutzerkonto tom in die neue Gruppe eingefügt, aber aus allen anderen Gruppen entfernt.

sudo usermod -a -G sudo tom

Sehen wir uns an, zu welchen Gruppen Mary gehört:

groups

Das Benutzerkonto mary ist nur im mary Gruppe.

Schauen wir bei Tom nach:

groups

Die tom Benutzerkonto – und damit Tom – ist in den Gruppen tom und sudo.

Lass uns versuchen, Mary dazu zu bringen, etwas zu tun, was es erfordert sudo Privilegien.

sudo less /etc/shadow


Mary kann nicht in die eingeschränkte Datei „/etc/shadow“ schauen. Sie bekommt eine milde Anschuldigung, weil sie versucht, es zu benutzen sudo ohne Erlaubnis. So geht es Tom:

sudo less /etc/shadow

Sobald Tom sein Passwort eingibt, wird ihm die Datei /etc/shadow angezeigt.

Einfach indem du ihn zum hinzufügst sudo Gruppe, er wurde in die Elite derjenigen erhoben, die es gebrauchen können sudo. Völlig uneingeschränkt.

Eingeschränkte Benutzereinschränkung sudo Rechte

Tom wurde voll gegeben sudo Rechte. Er kann alles, was root– oder irgendjemand sonst in der sudo Gruppe – kann. Das könnte ihm mehr Macht verleihen, als Sie ihm gerne überlassen. Manchmal muss ein Benutzer eine Funktion ausführen, die erfordert root Privilegien, aber es gibt keinen gerechtfertigten Grund, sie voll zu haben sudo betreten. Sie können dieses Gleichgewicht erreichen, indem Sie sie der sudoers-Datei hinzufügen und die Befehle auflisten, die sie verwenden können.

Treffen wir Harry, den Besitzer des Benutzerkontos harry. Er ist nicht in der sudo Gruppe, und er hat keine sudo Privilegien.

groups

Es ist nützlich für Harry, Software installieren zu können, aber wir möchten nicht, dass er voll ist sudo Rechte. Ok, kein Problem. lass uns anfeuern visudo:

sudo visudo


Scrollen Sie nach unten durch die Datei, bis Sie an den Gruppendefinitionen vorbeikommen. Wir werden eine Zeile für Harry hinzufügen. Da dies eine Benutzerdefinition und keine Gruppendefinition ist, müssen wir die Zeile nicht mit einem Prozentzeichen beginnen.

sudoer Dateieintrag für Harry

Der Eintrag für das Benutzerkonto harry lautet:

harry    ALL=/usr/bin/apt-get

Beachten Sie, dass sich zwischen „harry“ und „ALL=“ ein Tabulator befindet.

Dies liest sich als Benutzerkonto harry kann die aufgelisteten Befehle auf allen mit diesem Netzwerk verbundenen Hosts verwenden. Es ist ein Befehl aufgeführt, der „/usr/bin/apt-get“ ist. Wir können Harry Zugriff auf mehr als einen Befehl gewähren, indem wir sie durch Kommas getrennt zur Befehlsliste hinzufügen.

Fügen Sie die Zeile der sudoers-Datei hinzu und speichern Sie die Datei. Wenn Sie überprüfen möchten, ob die Zeile syntaktisch korrekt ist, können wir fragen visudo um die Datei zu scannen und die Syntax für uns zu überprüfen, indem Sie die -c (nur ankreuzen) Option:

sudo visudo -c

Die Kontrollen finden statt und visudo berichtet, dass alles gut ist. Harry sollte jetzt in der Lage sein zu verwenden apt-get Software installieren sollte jedoch abgelehnt werden, wenn er versucht, einen anderen Befehl zu verwenden, der erfordert sudo.

sudo apt-get install finger

Der angemessene sudo Harry wurden Rechte eingeräumt und er kann die Software installieren.


Was passiert, wenn Harry versucht, einen anderen Befehl zu verwenden, der erfordert sudo?

sudo shutdown now

Harry wird daran gehindert, den Befehl auszuführen. Wir haben ihm erfolgreich einen spezifischen, eingeschränkten Zugang gewährt. Er kann den nominierten Befehl verwenden und sonst nichts.

Verwenden von sudoers-Benutzeraliasen

Wenn wir Mary die gleichen Privilegien geben möchten, könnten wir eine Zeile in der sudoers-Datei für das Benutzerkonto hinzufügen mary genau so wie wir es mit Harry gemacht haben. Eine andere, sauberere Möglichkeit, dasselbe zu erreichen, ist die Verwendung von a User_Alias.

in der sudoers-Datei, a User_Alias enthält eine Liste von Benutzerkontonamen. Der Name des User_Alias kann dann in einer Definition verwendet werden, um alle diese Benutzerkonten darzustellen. Wenn Sie die Berechtigungen für diese Benutzerkonten ändern möchten, müssen Sie nur eine Zeile bearbeiten.

Lass uns eine erstellen User_Alias und verwenden Sie es in unserer sudoers-Datei.

sudo visudo

Scroll down in the file until you come to the User_Alias specification line.

Ergänzen Sie die User_Alias durch Eingabe von:

User_Alias INSTALLERS = harry, mary

Jedes Element wird durch ein Leerzeichen getrennt, nicht durch einen Tabulator. Die Logik gliedert sich wie folgt:

  • User_Alias: Das sagt visudo das wird ein User_Alias.
  • INSTALLATEUR: Dies ist ein willkürlicher Name für diesen Alias.
  • = Harry, Maria: Die Liste der Benutzer, die in diesen Alias ​​aufgenommen werden sollen.


Jetzt bearbeiten wir die Zeile, die wir zuvor für das Benutzerkonto hinzugefügt haben harry:

harry    ALL=/usr/bin/apt-get

Ändern Sie es so, dass es lautet:

INSTALLERS    ALL=/usr/bin/apt-get

Dies besagt, dass alle Benutzerkonten, die in der Definition des „INSTALLERS“ enthalten sind, User_Alias kann das laufen lassen apt-get Befehl. Wir können dies mit Mary testen, die nun in der Lage sein sollte, Software zu installieren.

sudo apt-get install colordiff

Mary kann die Software installieren, da sie sich in den „INSTALLERS“ befindet. User_Alias, und das User_Alias wurden diese Rechte zuerkannt.

Drei schnell sudo Tricks

Wenn du vergessen hast hinzuzufügen sudo zu einem Befehl geben Sie ein

sudo !!

Und der letzte Befehl wird wiederholt mit sudo an den Zeilenanfang angehängt.

Sobald Sie verwendet haben sudo und mit Ihrem Passwort authentifiziert, müssen Sie Ihr Passwort nicht weiter verwenden sudo Befehle für 15 Minuten. Wenn Sie Ihre Authentifizierung gleich vergessen haben möchten, verwenden Sie:

sudo -k


Haben Sie sich jemals gefragt, wo Sie fehlgeschlagene sehen können sudo Befehlsversuche? Sie gehen in die Datei „/var/log/auth.log“. Sie können es anzeigen mit:

less /var/log/auth.log

Wir können den Eintrag für das Benutzerkonto Mary sehen, die bei TTY pts/1 angemeldet war, als sie versuchte, die shutdown Befehl als Benutzer „root“.

Mit großer Kraft…

…kommt die Fähigkeit, Teile davon an andere zu delegieren. Jetzt wissen Sie, wie Sie andere Benutzer gezielt befähigen können.

Related Posts