GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie Sudo und die Sudoers-Datei

Der sudo-Befehl ermöglicht es Nicht-Root-Benutzern, andere Linux-Befehle auszuführen, die normalerweise Superuser-Rechte erfordern würden, während die sudoers-Datei das System anweist, wie der sudo-Befehl zu handhaben ist. In diesem Tutorial zeigen wir Ihnen alle Grundlagen des sudo-Befehls und wie Sie die sudoers-Datei bearbeiten.

Sudo verstehen

Um zu zeigen, wie sudo funktioniert, greifen Sie zuerst über SSH auf Ihren VPS zu. Wenn Sie Probleme haben, sehen Sie sich das PuTTY-Tutorial an.

Standardmäßig muss der Root-Benutzer das Präfix sudo nicht verwenden. Sie haben bereits alle möglichen Privilegien. Wenn hingegen ein Nicht-Root-Benutzer einen anderen Benutzer hinzufügen möchte, müsste er das sudo-Präfix wie folgt zum useradd-Befehl hinzufügen:

sudo useradd edward

Wenn der Benutzer das sudo-Präfix nicht verwendet, erhält er eine Berechtigung verweigert Ausgabe.

Die Sudoers-Datei

Der sudo-Befehl wird über eine Datei konfiguriert, die sich in /etc/ befindet Sudoers genannt .

Über den Befehl sudo erteilen Sie regulären Benutzern Administratorrechte. Normalerweise hat der erste Benutzer, den Sie bei der Installation von Ubuntu erstellen, sudo-Rechte. In einer VPS-Umgebung ist dies der Standard-Root-Benutzer. Sie können andere Benutzer so konfigurieren, dass sie den Befehl sudo ebenfalls ausführen können. Das kann durch Bearbeiten von sudoers erfolgen.

Sudoers-Dateisyntax

Sie können die Datei mit Ihrem bevorzugten Texteditor öffnen. Wir verwenden vi :

vi /etc/sudoers

Die Datei unseres VPS sieht so aus:

Schauen wir uns einige der Formate und Regeln an, die beim Bearbeiten von Sudoern zu befolgen sind:

  • Alle Zeilen beginnend mit # sind Kommentare
  • root ALL=(ALL:ALL) ALL – diese Zeile bedeutet, dass der Root-Benutzer unbegrenzte Rechte hat und jeden Befehl auf dem System ausführen kann
  • %admin ALLE=(ALLE) ALLE – das %-Zeichen gibt eine Gruppe an. Jeder in der Admin-Gruppe hat die gleichen Rechte wie der Root-Benutzer
  • %sudo ALL=(ALLE:ALLE ) ALLE – alle Benutzer in der sudo-Gruppe haben die Berechtigung, jeden Befehl auszuführen

Eine weitere interessante Zeile ist #includedir /etc/sudoers.d, das bedeutet, dass wir Konfigurationen zur Datei sudoers.d hinzufügen und hier verlinken können.

Bearbeiten der Sudoers-Datei

Zum Bearbeiten von /etc/sudoers verwenden Sie folgenden Befehl:

sudo visudo -f /etc/sudoers

Es wird empfohlen, visudo zu verwenden, um die sudoers-Datei zu bearbeiten. Visudo stellt sicher, dass sudoers jeweils von einem Benutzer bearbeitet wird, und bietet die erforderlichen Syntaxprüfungen.

Um zu sehen, welche Benutzer in der sudo-Gruppe sind, können wir einen grep-Befehl verwenden:

grep ‘sudo’ /etc/group

Dies gibt eine Liste mit Benutzernamen aus.

Um einen Benutzer namens bill zur sudo-Gruppe hinzuzufügen, verwenden wir den adduser Befehl in der Befehlszeile, etwa so:

adduser bill sudo

Wenn wir den grep-Befehl verwenden, um zu überprüfen, wer in der Gruppe ist, sehen wir die Rechnung des Benutzernamens.

Wenn Sie jemandem Root-Rechte geben möchten, fügen Sie ihn einfach zu sudo hinzu.

So entfernen Sie einen Benutzer aus sudo:

deluser bill sudo

Der deluser-Befehl entfernt bill aus der sudo-Gruppe.

Jetzt kann der Benutzer bill keine Aktionen mehr ausführen, die sudo-Berechtigungen erfordern.

Verwenden Sie die Sudoers-Datei, um bestimmte Berechtigungen zu gewähren

Was ist, wenn wir möchten, dass Bill nur bestimmte Arten von Befehlen mit sudo-Berechtigungen ausführen kann, wie z. B. Netzwerke?

Dazu erstellen wir eine Konfigurationsdatei in /etc/sudoers.d/ Netzwerk genannt.

Verwenden Sie den folgenden Befehl, um die Datei zu erstellen:

sudo visudo -f /etc/sudoers.d/networking

Fügen Sie folgenden Text in die Datei ein:

Cmnd_Alias     CAPTURE = /usr/sbin/tcpdump
Cmnd_Alias     SERVERS = /usr/sbin apache2ctl, /usr/bin/htpasswd
Cmnd_Alias     NETALL = CAPTURE, SERVERS
%netadmin ALL=NETALL

In der obigen Datei haben wir eine netadmin-Gruppe erstellt. Benutzer in der netadmin-Gruppe können in NETALL angegebene Befehle ausführen. NETALL enthalten wiederum alle Befehle unter den Aliasnamen CAPTURE und SERVER. Der Befehl tcpdump befindet sich unter dem Alias ​​CAPTURE, d. h. /usr/sbin/tcpdump.

Als nächstes fügen wir den Benutzer bill zur netadmin-Gruppe hinzu:

sudo adduser bill netadmin

Jetzt kann der Benutzer bill den Befehl tcpdump zusammen mit anderen netzwerkbezogenen Befehlen ausführen.

Fazit

Wenn Sie mit mehreren Benutzern arbeiten, ist das Verständnis des sudo-Befehls und der sudoers-Datei ein absolutes Muss. In diesem Tutorial haben Sie alle Grundlagen gelernt, um die Kontrolle über die Privilegien Ihres Systems zu übernehmen!


Linux
  1. So verwenden Sie den Tar-Befehl unter Linux

  2. So erstellen Sie einen Alias ​​und verwenden den Alias-Befehl in Linux

  3. Wie verwende ich den basename-Befehl?

  4. So installieren und verwenden Sie den Ping-Befehl unter Linux

  5. Wie verwende ich die Zeilen einer Datei als Argumente eines Befehls?

Wie man den Befehl fuser unter Linux verwendet und optimal nutzt

So verwenden Sie den Linux-Befehl ftp zum Hoch- und Herunterladen von Dateien auf der Shell

Wie verwende ich den Gzip-Befehl unter Linux?

So installieren und verwenden Sie den Bildschirmbefehl Ubuntu 20.04

So installieren und verwenden Sie den Ack-Befehl unter Linux

Linux perf:So verwenden Sie den Befehl und den Profiler