Auf dem eigenen Laptop, Raspberry Pi oder Computer ist es verlockend mittels sudo -s als root zu arbeiten um nicht bei jedem aufruf eines Befehls der erhöhte Rechte benötigt das eigene Passwort eingeben zu müssen. Aus diesem Grund zeige ich in dieser einfachen Anleitung aufzuzeigen wie diese Verlockung abzuschwächt werden kann in dem das Passwort nicht immer oder wenigstens nicht bei jedem aufruf eines Befehls eingegeben werden muss.
Die Einstellungen zum Befehl sudo werden in der Datei /etc/sudoers hinterlegt. In dieser Datei kann festgelegt werden welche Benutzer sudo nutzen können, ob bei jedem Aufruf das eigene Passwort eingegeben werden muss und wie in dem Fall verfahren werden soll wenn wenn ein Benutzer ohne das recht zur nutzung versucht erhöhte Rechte zu erlangen.
Die Syntax der Konfiguration der Benutzerrechte erfolgt nach dem folgenden Schema:
user_list host_list=effective_user_list tag_list command_list
Die einzelnen Tele dieser Konfigurationszeile haben die folgenden Bedeutungen:
user_list – Liste der Benutzer oder einen Benutzer-Alisa der bereits zuvor angelegt wurde
host_list – eine Liste der Hostcomputer oder eine Host-Alias auf dem ein Benutzer sudo ausführen kann
effective_user_list – list of users they must be running as or a run as alias.
tag_list – Liste von Eigenschaften wie beispielsweise NOPASSWD.
command_list – Liste von Befehlen die mit sudo ausgeführt werden dürfen
Um einem Benutzer, in meinem Beispiel kuehnel, die Ausführung aller Befehle via sudo ohne die Eingabe eines Passworts zu erlauben öffne ich die „sudoers“ Konfigurationsdatei.:
$ sudo vi /etc/sudoers
Und füge die folgende Zeile ein.:
kuehnel ALL=(ALL) NOPASSWD: ALL
Alternativ kann mit der folgenden Zeile einer Gruppe, in meinem Beispiel der Gruppe sudo, mit dem Prozentzeichen (%) der Zugriff auch ohne die eingabe des Passworts ermöglicht werden.
%sudo ALL=(ALL) NOPASSWD: ALL
Um meinem Benutzer kuehnel ausschließlich die Nutzung eines einzelnen Befehls zu ermöglichen kann die Zeile durch den entsprechenden Befehl ergänzt werden, wie im folgenden Beispiel mit dem Befehl kill.
kuehnel ALL=(ALL) NOPASSWD: /bin/kill
Die folgende Zeile ermöglicht allen Benutzern der Gruppe sys die nutzung des Befehls sudo zu der Ausführung der Befehle kill und rm ohne dafür das Passwort des Benutzers eingeben zu müssen.
%sys ALL=(ALL) NOPASSWD: /bin/kill, /bin/rm
Ich hoffe diese Beispiele reichen aus um eine Vorstellung von den Konfigurations-Optionen zu erhalten. Wenn Du Fragen zu einem Bestimmten Beispiel hast oder Fragen wie Du eine bestimmte Konfiguration erreichen kannst freue ich mich über Deinen Kommentar.
logfile
sudo gibt die Log-Informationen an syslog. Es kann nach wunsch aber auch ein eigenes Logfile schreiben.
Defaults logfile="/var/log/sudo.log"
Die in der Logdatei gespeicherten Daten können den eigenen anforderungen angepasst werden, zum Beispiel so.:
Defaults log_host, log_year, logfile="/var/log/sudo.log"
lecture
Hinweis bei der Nutzung von sudo anzeigen.
Es gibt 3 mögliche Konfigurationen:
always – bei jedem Aufruf dem Benutzer den Hinweisen zeigen
once – nur bei der ersten Nutzung den Hinweis anzeigen
never – dem Hinweis niemals anzeigen
Defaults lecture="always"
Zusätzlich kann festgelegt werden in welcher Datei der Text für den Hinweis hinterlegt ist:
Defaults lecture_file="/path/to/file"
timeout
Zeitspanne in Minuten nach der das Passwort erneut abgefragt werden soll.
Defaults env_reset,timestamp_timeout=20