Systemverwaltungsaufgaben mit sudo ausführen
Wie man Aufgaben ausführt, die Root-Rechte erfordern, ohne sich als Root anzumelden.
Was ist sudo?
Der Befehl sudo ermöglicht Benutzern den Zugriff auf Administratorrechte (Root-Zugriff). Vertrauenswürdige Benutzer werden zur Eingabe ihres Passworts aufgefordert, wenn sie einem solchen Befehl sudo voranstellen. Nach erfolgreicher Authentifizierung und der Annahme, dass der Befehl zulässig ist, wird er so ausgeführt, als wären sie der Root-Benutzer.
Nur Benutzer, die in der Konfigurationsdatei /etc/sudoers aufgeführt sind, dürfen den Befehl sudo verwenden. Der Befehl wird in der Benutzer-Shell ausgeführt, nicht in der Root-Shell.
Die Syntax für den sudo-Befehl lautet wie folgt:
$ sudo <BEFEHL>
Ersetzen Sie <BEFEHL> durch den Befehl, der als Root-Benutzer ausgeführt werden soll.
Verwendung von sudo
Verwendung von sudo zur Zuweisung von Administratorrechten
Fügen Sie Benutzer zur Konfigurationsdatei /etc/sudoers hinzu, um ihnen die Verwendung des Befehls sudo zu ermöglichen. Für diese Benutzer wird der Befehl sudo in ihrer Benutzer-Shell anstatt in der Root-Shell ausgeführt. Dadurch kann die Root-Shell aus Sicherheitsgründen deaktiviert werden.
Der Administrator kann verschiedenen Benutzern über die sudo-Konfiguration Zugriff auf bestimmte Befehle gewähren. Administratoren müssen dazu den Befehl visudo verwenden, um die Konfigurationsdatei /etc/sudoers zu bearbeiten.
Um einem Benutzer vollständige Administratorrechte zuzuweisen, geben Sie visudo ein und fügen Sie die folgende Zeile zum Abschnitt für Benutzerrechte hinzu, nachdem Sie <BENUTZERNAME> durch den Namen des Zielbenutzers ersetzt haben:
<BENUTZERNAME> ALL=(ALL) ALL
Diese Zeile erlaubt es dem angegebenen Benutzer, von jedem Rechner aus den Befehl sudo zu verwenden und jeden beliebigen Befehl auszuführen.
Um einem Benutzer Zugriff auf bestimmte Befehle zu gewähren, verwenden Sie das folgende Beispiel, nachdem Sie <GRUPPE> durch die gewünschte Systemgruppe ersetzt haben:
%<GRUPPE> localhost=/usr/sbin/shutdown -h now
Dieser Befehl erlaubt es allen Mitgliedern der Systemgruppe GRUPPE, den Befehl /sbin/shutdown -h auszuführen, sofern der Befehl von der Konsole aus ausgeführt wird.
Die Handbuchseite für sudoers enthält eine detaillierte Auflistung der Optionen für diese Datei.
Das gleiche Passwort für root wie für das Benutzerkonto verwenden
Wenn Sie einen Desktop-PC für einen einzelnen Benutzer verwenden, kann es hilfreich sein, den Befehl sudo so zu konfigurieren, dass Sie für den Zugriff auf root dasselbe Passwort verwenden wie für Ihr reguläres Benutzerkonto. Wählen Sie dazu während der Installation die Option aus, zur Administratorgruppe hinzugefügt zu werden. Um dies zu einem späteren Zeitpunkt nachzuholen oder einen anderen Benutzer hinzuzufügen, gehen Sie wie folgt vor:
-
Werden Sie zum Root-Benutzer:
$ su - -
Geben Sie bei Aufforderung das Passwort für das Root-Konto ein.
-
Um Ihr reguläres Passwort für den Root-Zugriff zu verwenden, führen Sie Folgendes aus:
$ sudo usermod <BENUTZERNAME> -a -G groupnameErsetzen Sie
<BENUTZERNAME>durch Ihren Benutzerkontonamen -
Um Zugriff auf die Gruppe zu erhalten, müssen Sie sich ab- und wieder anmelden.
Wenn Sie von sudo zur Eingabe eines Passworts aufgefordert werden, wird Ihr Benutzerpasswort und nicht das root-Passwort erwartet.
|
Protokollierung von sudo-Befehlen
Jede erfolgreiche Authentifizierung mit dem Befehl sudo wird in der Datei /var/log/messages protokolliert. Die Datei /var/log/secure listet für jede Authentifizierung den Benutzernamen und den ausgeführten Befehl auf.
Für zusätzliche Protokollierung verwenden Sie das Modul pam_tty_audit, um die TTY-Überwachung für bestimmte Benutzer zu aktivieren. Die TTY-Überwachung gibt den Dateinamen des Terminals aus, das mit der Standard-E/A verbunden ist. Um die TTY-Überwachung zu aktivieren, fügen Sie die folgende Zeile zu Ihrer Datei /etc/pam.d/system-auth hinzu:
session required pam_tty_audit.so disable=pattern enable=<MUSTER>
Ersetzen Sie <MUSTER> durch eine durch Kommata getrennte Liste von Benutzern (und gegebenenfalls Glob-Mustern).
Beispielsweise aktiviert der folgende Befehl die TTY-Überwachung für den Root-Benutzer und deaktiviert sie für alle anderen Benutzer:
session required pam_tty_audit.so disable=* enable=root
Das PAM-Modul pam_tty_audit zeichnet für die Überwachung ausschließlich TTY-Eingaben auf. Meldet sich der überwachte Benutzer an, protokolliert pam_tty_audit daher dessen exakte Tastatureingaben und speichert sie in der Datei /var/log/audit/audit.log. Weitere Informationen finden Sie in der Handbuchseitee zu pam_tty_audit(8).
Warnhinweise und Vorbehalte
Verwenden Sie beim ersten Systemstart und für den täglichen Gebrauch das Benutzerkonto, das Sie während der Installation erstellt haben, und das root-Konto ausschließlich für die Systemadministration. Vermeiden Sie die Verwendung des root-Kontos für alle anderen Zwecke, da dieses Konto leicht Sicherheits- oder Datenrisiken birgt.
Bei der Verwendung des Befehls sudo sind einige potenzielle Risiken zu beachten. Diese lassen sich vermeiden, indem Sie die Konfigurationsdatei /etc/sudoers mit dem Befehl visudo bearbeiten.
sudo timeout
Standardmäßig speichert der Befehl sudo das Passwort für einen Zeitraum von fünf Minuten. Bei jeder weiteren Verwendung des Befehls während dieses Zeitraums werden Sie nicht zur Eingabe eines Passworts aufgefordert. Dies könnte von Angreifern ausgenutzt werden, wenn Sie Ihren Computer unbeaufsichtigt und entsperrt lassen, während Sie noch angemeldet sind. Sie können dieses Verhalten ändern, indem Sie die folgende Zeile zur Konfigurationsdatei /etc/sudoers hinzufügen:
Defaults timestamp_timeout=<WERT>
Hierbei ist <WERT> die gewünschte Zeitüberschreitung in Minuten. Wenn der Wert auf 0 gesetzt wird, fordert sudo jedes Mal ein Passwort an.
Wenn ein Konto kompromittiert wird, kann ein Angreifer mit sudo eine neue Shell mit Administratorrechten öffnen.
Durch das Öffnen einer neuen Shell als Root-Benutzer erhält ein Angreifer auf diese Weise theoretisch unbegrenzt administrativen Zugriff und umgeht das in der Datei /etc/sudoers festgelegte Zeitlimit. Mit dieser Methode muss der Angreifer bis zum Ende der Sitzung kein Passwort für sudo erneut eingeben.
Mit sudo auf Docker zugreifen
Docker bietet die Möglichkeit, die Gruppenzugehörigkeit des Docker-Sockets zu ändern, sodass Benutzer, die der Docker-Gruppe hinzugefügt wurden, Docker-Container ausführen können, ohne den Befehl sudo oder su ausführen zu müssen, um Root-Rechte zu erlangen.
Der Zugriff auf den Docker-Daemon durch Benutzer ohne Root-Rechte stellt aus Sicherheitsgründen ein Problem dar. Dies ist insbesondere für Fedora problematisch, da ein Benutzer, der mit dem Docker-Socket kommunizieren kann, einen Befehl ausführen kann, der ihm vollständige Root-Rechte auf das Hostsystem verleiht. Docker verfügt über keine integrierten Funktionen zur Protokollierung oder Überwachung, sudo hingegen schon.
Es wird empfohlen, sudo-Regeln zu implementieren, um den Zugriff auf den Docker-Daemon zu ermöglichen. Dadurch kann sudo Protokollierungs- und Überwachungsfunktionen bereitstellen.
Docker mit sudo ausführen
-
Richten Sie
sudowie in Verwendung von sudo zur Zuweisung von Administratorrechten gezeigt ein. -
Erstellen Sie einen Alias zum Ausführen des Docker-Befehls, indem Sie die folgende Zeile zu Ihrer
~/.bashrc-Datei hinzufügen:alias docker="sudo /usr/bin/docker"Wenn der Benutzer den
docker-Befehl als Nicht-Root ausführt, wirdsudoverwendet, um den Zugriff zu verwalten und Protokollierung bereitzustellen.
Verwendung von sudo ohne Passwort
Sie können den root-Zugriff ohne Angabe eines Passworts aktivieren, so dass jeder Prozess auf Ihrem System die Rechte für den Root-Zugriff erhält. Fügen Sie dazu die folgende Zeile zu Ihrer /etc/sudoers-Datei hinzu:
<Benutzer> ALL=(ALL) NOPASSWD: /usr/bin/docker
Dies ermöglicht es <user>, ohne Passwort auf Docker zuzugreifen.
Aus Sicherheitsgründen wird empfohlen, sudo immer mit einem Passwort zu verwenden.
|
Want to help? Learn how to contribute to Fedora Docs ›