22Aug

8 Möglichkeiten, Sudo unter Ubuntu zu optimieren und zu konfigurieren

Wie die meisten Dinge unter Linux ist der Befehl sudo sehr konfigurierbar. Sie können sudo bestimmte Befehle ausführen lassen, ohne nach einem Passwort zu fragen, bestimmte Benutzer nur auf genehmigte Befehle einzuschränken, Protokollbefehle, die mit sudo ausgeführt werden, und mehr.

Das Verhalten des Befehls sudo wird von der /etc/ sudoers-Datei auf Ihrem System gesteuert. Dieser Befehl muss mit dem Befehl visudo bearbeitet werden, der eine Syntaxprüfung durchführt, um sicherzustellen, dass Sie die Datei nicht versehentlich beschädigen.

Benutzer mit Sudo-Berechtigungen angeben

Das Benutzerkonto, das Sie bei der Installation von Ubuntu erstellt haben, ist als Administratorkonto gekennzeichnet, dh es kann sudo verwenden. Alle zusätzlichen Benutzerkonten, die Sie nach der Installation erstellen, können entweder Administrator- oder Standardbenutzerkonten sein. Standardbenutzerkonten haben keine sudo-Berechtigungen.

Sie können Benutzerkontotypen grafisch über das Benutzerkonten-Tool von Ubuntu steuern. Um es zu öffnen, klicken Sie im Panel auf Ihren Benutzernamen und wählen Sie Benutzerkonten oder suchen Sie nach Benutzerkonten im Bindestrich.

Machen Sie Sudo vergessen Sie Ihr Passwort

Standardmäßig merkt sich sudo Ihr Passwort für 15 Minuten, nachdem Sie es eingegeben haben. Aus diesem Grund müssen Sie Ihr Passwort nur einmal eingeben, wenn Sie mehrere Befehle mit sudo in schneller Folge ausführen. Wenn Sie jemand anderen Ihren Computer benutzen lassen wollen und Sie wollen, dass sudo nach dem Passwort fragt, wenn es als nächstes ausgeführt wird, führen Sie den folgenden Befehl aus und sudo wird Ihr Passwort vergessen:

sudo -k

Immer nach einem Passwort fragen

Wenn SieWenn Sie jedoch jedes Mal, wenn Sie sudo verwenden, aufgefordert werden, beispielsweise wenn andere Benutzer regelmäßig Zugriff auf Ihren Computer haben, können Sie das Verhalten zum Erinnern von Kennwörtern vollständig deaktivieren.

Diese Einstellung ist wie andere sudo-Einstellungen in der sudoers-Datei /etc/ enthalten. Führen Sie den Befehl visudo in einem Terminal aus, um die Datei zur Bearbeitung zu öffnen:

sudo visudo

Dieser Befehl verwendet trotz seines Namens den neuen benutzerfreundlichen Nano-Editor anstelle des traditionellen vi-Editors unter Ubuntu.

Fügen Sie die folgende Zeile unter den anderen Standardzeilen in der Datei hinzu:

Standardwerte timestamp_timeout = 0

Drücken Sie Strg + O, um die Datei zu speichern, und drücken Sie dann Strg + X, um Nano zu schließen. Sudo wird Sie jetzt immer nach einem Passwort fragen.

Ändern des Passwort-Timeouts

Um ein anderes Passwort-Timeout zu setzen - entweder ein längeres wie 30 Minuten oder ein kürzeres wie 5 Minuten - folgen Sie den obigen Schritten, verwenden Sie jedoch einen anderen Wert für timestamp_timeout. Die Nummer entspricht der Anzahl der Minuten, für die sudo Ihr Passwort gespeichert hat. Damit sudo sich 5 Minuten lang an Ihr Passwort erinnert, fügen Sie die folgende Zeile hinzu:

Default timezeit_timeout = 5

Fragen Sie nie nach einem Passwort

Sie können sudo auch nie nach einem Passwort fragen - solange Sie eingeloggt sind, jeden BefehlPräfix mit Sudo wird mit root-Berechtigungen ausgeführt. Fügen Sie dazu Ihrer sudoers Datei die folgende Zeile hinzu, wobei Benutzername Ihr Benutzername ist:

Benutzername ALL =( ALL) NOPASSWD: ALL

Sie können auch die% sudo Zeile ändern - also die Zeile, die allen Benutzern erlaubtSudo-Gruppe( auch bekannt als Administrator-Benutzer), um sudo zu verwenden - damit alle Administrator-Benutzer keine Kennwörter benötigen:

% sudo ALL =( ALLE: ALLE) NOPASSWD: ALL

Ausführen bestimmter Befehle ohne Kennwort

Sie können auch bestimmte Befehle angebenwird niemals ein Passwort erfordern, wenn es mit sudo ausgeführt wird. Anstatt "ALL" nach NOPASSWD oben zu verwenden, geben Sie den Speicherort der Befehle an. Beispielsweise ermöglicht die folgende Zeile Ihrem Benutzerkonto, die Befehle apt-get und shutdown ohne ein Kennwort auszuführen.

Benutzername ALL =( ALL) NOPASSWD: /usr/bin/ apt-get, /sbin/ heruntergefahren

Dies kann besonders nützlich sein, wenn bestimmte Befehle mit sudo in einem Skript ausgeführt werden.

Einem Benutzer erlauben, nur bestimmte Befehle auszuführen

Während Sie bestimmte Befehle in die Blacklist aufnehmen und verhindern können, dass Benutzer sie mit sudo ausführen, ist dies nicht sehr effektiv. Sie können beispielsweise angeben, dass ein Benutzerkonto den Befehl zum Herunterfahren nicht mit sudo ausführen kann. Aber dieses Benutzerkonto könnte den Befehl cp mit sudo ausführen, eine Kopie des Befehls shutdown erstellen und das System mit der Kopie herunterfahren.

Eine effektivere Möglichkeit besteht darin, bestimmte Befehle auf die Whitelist zu setzen. Sie könnten beispielsweise einem Standardbenutzerkonto die Berechtigung erteilen, die Befehle apt-get und shutdown zu verwenden, aber nicht mehr. Fügen Sie dazu die folgende Zeile hinzu, wobei Standardbenutzer der Benutzername des Benutzers ist:

Standardbenutzer ALL = /usr/bin/ apt-get, /sbin/ Herunterfahren

Der folgende Befehl zeigt an, welche Befehle der Benutzer mit sudo ausführen kann:

sudo -U standarduser -l

Protokollieren von Sudo Access

Sie können alle sudo-Zugriffe durch Hinzufügen der folgenden Zeile protokollieren. /var/log/ sudo ist nur ein Beispiel;Sie können einen beliebigen Speicherort für die Protokolldatei verwenden.

Standardwerte logfile = /var/log/ sudo

Zeigen Sie den Inhalt der Protokolldatei mit einem Befehl wie dem folgenden an:

sudo cat /var/log/ sudo

Beachten Sie, dass dieser Benutzer die Möglichkeit hat, den sudo-Zugriff zu löschen oder zu ändernInhalt dieser Datei. Ein Benutzer kann auch mit sudo auf eine Root-Eingabeaufforderung zugreifen und Befehle ausführen, die nicht protokolliert werden. Die Protokollierungsfunktion ist am nützlichsten, wenn sie mit Benutzerkonten gekoppelt ist, die eingeschränkten Zugriff auf eine Teilmenge von Systembefehlen haben.