sudoers-Einträge

sudoers-Einträge

Gibt es eine Möglichkeit, einen Sudoers-Eintrag zu haben, der nur die Ausführung eines bestimmten Befehls ohne zusätzliche Argumente zulässt? Ich kann anscheinend keine Ressource finden, die beschreibt, wie die Befehlsübereinstimmung mit Sudoers funktioniert.

Angenommen, ich möchte sudo für erteilen /path/to/executable arg.

Ergibt einen Eintrag wie den folgenden:

user ALL=(ALL) /path/to/executable arg

Sudo-Zugriff auf einen Befehl, der genau dem entspricht, strikt zulassen? Das heißt, es erteilt dem Benutzer keine Sudo-Berechtigungen für /path/to/executable arg arg2?

Antwort1

man sudoersUnten in der Nähe der Cmnd_List-Definition finde ich Folgendes :

 A simple filename allows the user to run the command with any arguments
 he/she wishes.  However, you may also specify command line arguments
 (including wildcards).  Alternately, you can specify "" to indicate
 that the command may only be run without command line arguments.

Dies würde bedeuten, dass das ausdrückliche Zulassen von „arg“ „arg arg2“ verbieten würde. Andererseits habe ich einige Inkonsistenzen bei der Verarbeitung der sudoers-Datei auf verschiedenen Betriebssystemen (z. B. Linux vs. Solaris) festgestellt. Sie sollten es also für Ihre eigene Umgebung testen.

Ein etwas hässlicher Workaround: Erstellen Sie ein separates ausführbares Skript, das den angegebenen Befehl nur mit dem gewünschten Argument ausführt, und gewähren Sie diesem Skript anstelle des ursprünglichen Befehls Sudo-Zugriff.

 #!/bin/bash
 /path/to/executable arg

verwandte Informationen