Die umfassende Anleitung zum Master Sudoers Datei.
Was ist die Sudoers-Datei?
Die Sudoers-Datei ist genau wie jede andere Datei auf dem Linux-Betriebssystem., Es spielt jedoch eine wichtige Rolle bei der Verwaltung, was ein „Benutzer“ oder „Benutzer in einer Gruppe“ auf dem System tun kann.
Warum der name Sudoers?
Das Wort Sudo ist die Abkürzung für den Begriff „Super User Do“. Wie es deutlich andeutet-es ist genau wie dem Kernel/OS zu sagen: „Sie haben keine andere Wahl, tun Sie es einfach!”. Die Benutzer mit Sudo-Berechtigung werden also als Sudo-Benutzer aufgerufen. Die Verwaltung all dieser Sudo-Benutzer erfolgt über eine Datei namens as Sudoers File. Diese Datei befindet sich ebenso wie jede andere Konfigurationsdatei im Verzeichnis /etc.,
Warum Sudoers-Datei?
Ein normaler Benutzer unter Linux hat viele Einschränkungen im System. Beispielsweise kann der Benutzer keinen Dienst starten, keine Konfigurationsdatei ändern oder standardmäßig ein Skript auf dem System ausführen. Aus Sicherheitsgründen sieht das perfekt aus.,
Aber nehmen wir ein Beispiel von-Sie als Systemadministrator müssen alle Benutzer und ihre Steuerelemente verwalten. Sie haben eine Website, die auf Apache auf einem Ihrer Server gehostet wird. Sie haben bereits einen Web-Admin, um es zu verwalten. Ein Benutzer sollte für ihn auf dem Webserver erstellt werden. Dieser Benutzer erlaubt sein sollte, zwei Dinge zu tun, die ein normaler Benutzer nicht kann :
- Start/Restart Apache Service in Fall, dass es aufhört.
- Bearbeiten Sie die Konfigurationsdatei von Apache.
Sie haben standardmäßig zwei Benutzeroptionen:
- Root-Benutzer, der alle Berechtigungen für das System einschließlich Apache hat.,
- Ein normaler Benutzer, der standardmäßig keinen Dienst starten oder Konfigurationsdateien auf dem System bearbeiten kann.
In diesem Fall ist eine Sudoers-Datei für Sie nützlich. In Sudoers Datei können wir genau definieren:
- Web-Admin-Benutzer kann nur Apache-Dienst starten &
- Er kann nur Apache-Konfigurationsdatei bearbeiten.
Spielen Sie mit der Sudoers-Datei
Genug Theorie, wir werden jetzt anfangen, das echte Zeug zu machen. Ich werde jeden Abschnitt in der Sudoers-Datei mit einigen Beispielen erklären., Standardmäßig sieht eine Sudoers-Datei so aus –
Host ALIAS Syntax —
Usage: systemadmin HOSTS = (root) /usr/bin/cat /etc/shadow
Wenn ich einen Satz von Hostnamen, IP-Adressen oder IP-Adressbereich definieren muss, für den ein Benutzer die privilegierten/Sudo-Befehle ausgeben darf, kann ich dies mithilfe des Host Alias erreichen. Auch dieser Teil gehört zum Feld “ Wo “ in der Masterphrase.
Cmnd_Alias <ALIAS Name> = <cmd1>,<cmd2>, <cmd3>…
Example: Cmnd_Alias SYSADMIN = /usr/sbin/apache2, /usr/bin/cat
Usage: systemadmin ALL = (root) SYSADMIN
If i need to permit a user to execute a set of commands as SUDO, i can define them under a Cmnd_Alias Section and use this ALIAS name while delegating the access., Dieser Teil gehört zum Feld „Was“ in der Masterphrase.
NOPASSWD Mode:
Dies ist eine weitere Besonderheit in Sudoers, mit der ein Benutzer in der Sudoers-Datei einen privilegierten Befehl ausführen kann, ohne das Kennwort einzugeben., Dies ist sehr nützlich, wenn automatisierte Skripte im System als normaler Benutzer ausgeführt wird, muss das Skript möglicherweise einen privilegierten Befehl ausführen. Aber wir wissen bereits, was passiert, wenn ein Benutzer SUDO verwendet, er muss sein Passwort eingeben!
Denken Sie daran, dass selbst wenn es sich um ein Skript oder einen Prozess handelt, es ALS BENUTZER ausgeführt werden sollte und nicht alleine ausgeführt werden kann.
Alle automatisierten Skripte sind nicht intelligent genug, um das Kennwort einzugeben, wenn Sie dazu aufgefordert werden. Es ist jedoch möglich, das Passwort automatisch einzugeben. Lassen Sie uns vorerst nicht an intelligente Skripte denken., Abschließend kann ein privilegierter Befehl von einem Benutzer verwendet werden, ohne das Kennwort einzugeben.
Beispiel für ein Skript, das NOPASSWD: Supervisor unter Linux benötigt.Wir werden darüber in einem anderen Artikel diskutieren.
Syntax : sysadmin ALL = (root) NOPASSWD : /usr/sbin/apache2
Parameter Ausschluss-ALIASE
Wir können auch Parameter hinzufügen, die ausgeschlossen werden sollten, in die ALIASNAMEN. Zum Beispiel
Benutzeralias EXCEPT_ROOT = ALL, !,root
sysadmin ALL = (EXCEPT_ROOT) /usr/sbin/apache2
Mit dieser User_Alias kann sichergestellt werden, dass ein BENUTZER den angegebenen Befehl als „alle Benutzer außer ROOT“ausführen kann.
Diese Art des Ausschlusses kann in allen ALIASNAMEN erfolgen, nicht nur in User_Alias. In jedem ALIAS bleibt die Syntax gleich.
Umgang mit Sudoers-Datei mit Sorgfalt
Inzwischen müssen Sie verstanden haben, was eine Sudoers-Datei kann und wie wichtig es ist, die Datei mit Sorgfalt zu behandeln. Linux implementiert bereits einen Mechanismus, um sicherzustellen, dass die Sudoers-Datei ordnungsgemäß behandelt wird.,
Es wird immer empfohlen, die Datei/etc / sudoers NICHT DIREKT ZU bearbeiten. Es gibt ein Tool namens „Visudo“. Dies wird verwendet, um sicher Änderungen an einer Sudoers-Datei vorzunehmen. Wenn Sie sudoers Datei mit visudo bearbeiten, hat visudo eine eingebaute Funktionalität, um die Syntax vor dem Speichern der Datei zu überprüfen, wenn Sie einen Fehler machen, wird es sofort die Zeile zeigen, wo Syntax nicht richtig ist. Diese Funktionalität von visudo verhindert, dass versehentliche Schäden an Datei und System entstehen.
Schlussfolgerung:
Sudoers-Datei spielt immer eine wichtige Rolle in der Benutzersteuerungsverwaltung., Es gibt zwar viele Möglichkeiten zu verwalten und zu steuern, was ein Benutzer auf dem System tun kann und was nicht, aber die Sudoers-Methode ist immer effizient und robust genug, um alle Vorgänge zu verwalten und zu steuern. von Benutzern. Eine weitere Methode ähnlich dieser, die erwähnenswert ist, ist SUID und SGID. Wir werden in einem anderen Artikel über SUID und SGID sprechen.