Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Allgemeines

Die zur Zeit gängigste Methode anderen Benutzern Rechte an bestimmten Programmen zu gewähren ist das Kommando sudo.

Sicherheitsbedenken

Man sollte gewährleisten, dass der Benutzer tatsächlich nur das Programm ausführen kann, das man ihm auch gewährt hat.
Logisch, aber es gibt viele Hintertüren, durch die man dann weitere Rechte erlangen kann:

  • Sollte das Programm aus einem Shellscript bestehen, sollte man dem User das Recht nehmen, diese Datei zu ändern.
    Das bedeutet nicht nur die Schreibrechte entziehen, sondern auch das Eigentums- oder Gruppenrecht und die Datei sollte auch nicht in einem Verzeichnis stehen, worauf der Benutzer Eigentums- oder Gruppenrechte hat. In diesen Fällen könnte der User nämlich die vorhandene Datei löschen und einfach eine andere "unterschieben".
  • In dem gestarteten Programm werden die Rechte auch an weitere "kindprozesse" vererbt, also darf das Programm keine weiteren Prozesse öffnen dürfen.
    Beispiele:
    Der Editor vi kann über das Kommando
    Code Block
    :!<Befehl>
    




    weitere Programme oder eine neue Shell starten.
    Gleiches gilt auch für die gängigsten Befehle zum seitenweisen Anzeigen von Textausgaben ("more", "less", "pg").
    Diese haben auch nicht alle eine Option um das abzustellen.
    Hinweis: sudo hat für diesen Fall einige Sicherheitsoption (siehe NOEXEC: Ausführungsverhinderung für weitere Kommandos)
  • Ähnlich funktioniert das auch mit Programmen in einer grafischen Oberfläche, die einen Dateiexplorer oder einen "Mini-Explorer" in Form eines "Datei öffnen"- Dialogs verwenden.
    In diesem Explorer kann man dann mit root-Rechten Dateioperationen wie löschen, editieren etc. ausführen.

Einstellen der Zugriffrechte

Verschiedene Linux-Distributionen bieten grafische Oberflächen, Beispiel "SuSE => Yast", "Sicherheit"
Eine weitere Möglichkeit ist die manuelle Bearbeitung der Datei /etc/sudoers, aus der die Einstellungen des sudo gelesen werden.
Diese Datei kann man z.B. mit dem Kommando "visudo" ändern. Nach der Änderung wird die neue Einstellung direkt aktiviert und ggf. erfolgt eine Fehlermeldung.

...

  • Benutzeralias (Ein oder mehrere User erhalten einen neuen Namen oder werden in einer Gruppe zusammengefasst)
    Syntax:
    Code Block
    User_Alias ALIASNAME = User1, User2
    


  • Runas-Alias (Liste von Usern, deren Identität angenommen werden soll)
    Nicht immer muss es der User "root" sein, unter dem die Programme laufen sollen, oft sind es auch besondere User, die Anwendungsprogramme administrieren.
    z.B.: mysql, informix, oracle (Datenbanksysteme)
    Syntax:
    Code Block
    Runas_Alias ALIASNAME = User1, User2
    


  •  Hostalias (Liste von Servern, auf denen die Rechte gesetzt werden sollen)
    Syntax:
    Code Block
    Host_Alias ALIASNAME = HOSTNAME1, HOSTNAME2
    



    Hostnamen können in folgenden Formen angegeben werden:
    128.138.0.0/255.255.0.0 #IP-Adressbereich mit Netmask
    128.138.243.0                 #einzelne IP-Adresse
    128.138.204.0/24            #IP-Adressbereich mit Netmask in alternativer Schreibweise
    Auch können Hostnamen aus der Datei /etc/hosts verwendet werden
  • Befehlsalias (Liste von Befehlen, für die die Rechte gesetzt werden sollen)
    Syntax:
    Code Block
    CmdCmnd_Alias ALIASNAME = Befehl1, Befehl2
    

  • Nach der Definition der Aliasnamen erfolgt die Definition der Rechte in der Anweisung:
    Benutzeralias Hostalias = (Runas_Alias) OPTIONEN: Befehlsalias