Sudo und Superuser (Debian): Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:


== Nutzung ==
== Nutzung ==
$ su                # Zum Root-User wechseln
  $ sudo xxx          # Befehl xxx als Superuser ausführen
  $ sudo xxx          # Befehl xxx als Superuser ausführen
  $ sudo bash        # Bash-Konsole als Superuser ausführen
  $ sudo bash        # Bash-Konsole als Superuser ausführen
$ sudo -i          # Zum Root-User wechseln
$ su                # Zum Root-User wechseln
$ su -              # Root-shell als Login-shell starten. Damit werden z.B. Pfade richtig gesetzt
== Sudo ==
=== Zuordnung User unter Debian ===
Bei Debian gibt es die Benutzergruppe sudo, zu der ein User nur zugeordnet werden muss:
$ su -                # (Durch das "-" werden die Pfade in der Root-Shell richtig gesetzt)
# addgroup <username> sudo


== Einrichtung Sudo ==
 
[[Kategorie:Linux]]
 
[[Category:Debian]]
=== Einrichtung ===
[[Kategorie:Terminal]]
 
Konfiguration in Datei <code>/etc/sudoers</code> bearbeiten.
Die Konfiguration von sudo wird in <code>/etc/sudoers</code> und in <code>/etc/sudoers.d/</code> gespeichert.
 
Die Dateien müssen ein bestimmtes Format haben und Zugriffsrechte -r--r----- (440) haben.
 
Für die Bearbeitung der Konfiguration wird das Programm '''visudo''' verwendet:
* '''visudo''' bearbeitet <code>/etc/sudoers</code>
* '''visudo -f <filename>''' bearbeitet andere Dateien, z. B. die individuellen dateien unter <code>/etc/sudoers.d/</code>


'''Beispiele:'''
'''Beispiele:'''


  root           ALL = (ALL) ALL
  root           ALL = (ALL) ALL


Das heißt '''root''' darf alle Befehle mit sudo ausführen.
Das heißt '''root''' darf alle Befehle mit sudo ausführen.


   %administrator         ALL = (ALL) ALL
  %administrator  ALL = (ALL) ALL


Die Gruppe '''administrator''' darf alle Befehle mittels sudo als root ausführen.
Die Gruppe '''administrator''' darf alle Befehle mittels sudo als root ausführen.


   admin      ALL = NOPASSWD: ALL
  admin           ALL = NOPASSWD: ALL
   %users     ALL = NOPASSWD: /usr/sbin/IRGENDEINSKRIPT
  %users         ALL = NOPASSWD: /usr/sbin/IRGENDEINSKRIPT


Der Benutzer '''admin''' darf ''ohne Passwortabfrage'' alle Programme ausführen. Die Gruppe '''users''' darf ''ohne Passwortabfrage'' den Befehl '''/usr/sbin/IRGENDEINSKRIPT''' ausführen.
Der Benutzer '''admin''' darf ''ohne Passwortabfrage'' alle Programme ausführen. Die Gruppe '''users''' darf ''ohne Passwortabfrage'' den Befehl '''/usr/sbin/IRGENDEINSKRIPT''' ausführen.
Zeile 30: Zeile 48:


'''Grund:''' Ist die Passwortabfrage beispielsweise für das Skript ~/bin/mein-skript deaktiviert, dann kann es ein Angreifer mit Benutzerrechten einfach löschen und durch ein beliebiges Skript oder Programm ersetzen und dann mit Root-Rechten ausführen. Auf diese Weise wäre das gesamte System kompromittiert. Erst wenn das Skript root gehört und nur von root geändert werden kann und auch in einem Verzeichnis liegt, in dem nur root Schreibrechte hat, ist dieser Angriff nicht mehr möglich.
'''Grund:''' Ist die Passwortabfrage beispielsweise für das Skript ~/bin/mein-skript deaktiviert, dann kann es ein Angreifer mit Benutzerrechten einfach löschen und durch ein beliebiges Skript oder Programm ersetzen und dann mit Root-Rechten ausführen. Auf diese Weise wäre das gesamte System kompromittiert. Erst wenn das Skript root gehört und nur von root geändert werden kann und auch in einem Verzeichnis liegt, in dem nur root Schreibrechte hat, ist dieser Angriff nicht mehr möglich.
[[Category:Linux]]
[[Kategorie:Terminal]]

Aktuelle Version vom 30. November 2019, 21:51 Uhr

Nutzung

$ sudo xxx          # Befehl xxx als Superuser ausführen
$ sudo bash         # Bash-Konsole als Superuser ausführen
$ sudo -i           # Zum Root-User wechseln
$ su                # Zum Root-User wechseln
$ su -              # Root-shell als Login-shell starten. Damit werden z.B. Pfade richtig gesetzt

Sudo

Zuordnung User unter Debian

Bei Debian gibt es die Benutzergruppe sudo, zu der ein User nur zugeordnet werden muss:

$ su -                 # (Durch das "-" werden die Pfade in der Root-Shell richtig gesetzt)
# addgroup <username> sudo


Einrichtung

Die Konfiguration von sudo wird in /etc/sudoers und in /etc/sudoers.d/ gespeichert.

Die Dateien müssen ein bestimmtes Format haben und Zugriffsrechte -r--r----- (440) haben.

Für die Bearbeitung der Konfiguration wird das Programm visudo verwendet:

  • visudo bearbeitet /etc/sudoers
  • visudo -f <filename> bearbeitet andere Dateien, z. B. die individuellen dateien unter /etc/sudoers.d/

Beispiele:

root            ALL = (ALL) ALL

Das heißt root darf alle Befehle mit sudo ausführen.

%administrator  ALL = (ALL) ALL

Die Gruppe administrator darf alle Befehle mittels sudo als root ausführen.

admin           ALL = NOPASSWD: ALL
%users          ALL = NOPASSWD: /usr/sbin/IRGENDEINSKRIPT

Der Benutzer admin darf ohne Passwortabfrage alle Programme ausführen. Die Gruppe users darf ohne Passwortabfrage den Befehl /usr/sbin/IRGENDEINSKRIPT ausführen.

Sicherheitshinweis

Man sollte die Passwortabfrage nur für Skripte oder Programme deaktivieren, die in einem Systemverzeichnis (/bin, /sbin, /usr/bin, /usr/sbin, ...) liegen und root gehören.

Grund: Ist die Passwortabfrage beispielsweise für das Skript ~/bin/mein-skript deaktiviert, dann kann es ein Angreifer mit Benutzerrechten einfach löschen und durch ein beliebiges Skript oder Programm ersetzen und dann mit Root-Rechten ausführen. Auf diese Weise wäre das gesamte System kompromittiert. Erst wenn das Skript root gehört und nur von root geändert werden kann und auch in einem Verzeichnis liegt, in dem nur root Schreibrechte hat, ist dieser Angriff nicht mehr möglich.