sudo (substitute user do) ist ein Befehl unter Unix-Systemen, also auch FreeBSD, um Prozesse mit den Rechten eines anderen Benutzers auszuführen. Mit Hilfe dieses Befehls kann man Befehle mit root-Rechten ausführen, ohne dauerhaft als root angemeldet zu sein. Die Konfiguration wird in der Datei /usr/local/etc/sudoers gespeichert.

In der Datei /usr/local/etc/sudoers wird festgelegt, welche Benutzer und welche Gruppen bestimmte Programme mit welchen Rechten ausführen dürfen.

Da die Syntax relativ kompliziert ist, beschränke ich mich lediglich auf die Anpassung unseres Users (bei mir sz_benedikt) und ändere die Einstellungen so ab, dass wir beliebige Befehle mit root-Rechten ausführen können.

  1. Zunächst installieren wir sudo (noch als root), da es nicht Teil der Grundinstallation von FreeBSD ist.

    # cd /usr/ports/security/sudo/ && make install clean

  2. Jetzt öffnen wir den Editor visudo, der, wie der Name ja schon verrät, genauso bedient wird wie der Editor vi, um unseren Benutzer oder ein Gruppe hinzuzufügen.

    # visudo -f /usr/local/etc/sudoers

  3. Um unserem Benutzer das Ausführen von Befehlen mit root-Rechten zu ermöglichen, fügen wir nun folgende Zeile in diese Datei ein:
    HINWEIS: ersetze <USER> durch deinen Benutzernamen

    <USER>     ALL = (ALL) NOPASSWD: ALL

    Um einem Benutzer nur einen bestimmten Befehl zu erlauben, der mit root-Rechten ausgeführt werden darf, gibt man folgende Zeile ein:

    <USER>     ALL = NOPASSWD: /absoluter/Pfad/zum/Programm

    Beispiel: foo     ALL = NOPASSD: /sbin/pfctl

    Um einer ganzen Gruppe einen bestimmten Befehl oder allgemein root-Rechte zu vergeben, verwendest du die gleiche Syntax, allerdings kommt vor den Namen der Gruppe ein '%'-Zeichen.

    %<GROUP>    ALL = (ALL) NOPASSWD: ALL

    Hinweis: Um einen bestimmten Befehl nur von einem bestimmten Host ausführbar zu machen, kannst du das erste 'ALL' durch eine IP oder einen Hostnamen ersetzen.

  4. Um nun einen Befehl mit root-Rechten auszuführen, verwendest du folgende Syntax:

    # sudo <BEFEHL>

    Tipp: Wen das 'sudo' nervt, der kann auch über den Befehl sudo -s temporäre root-Shell öffnen (ähnlich su)

files/serverzeit_v2/uploads/sandwich.png