Ich möchte meinen Suodern einen Eintrag hinzufügen, damit ein Benutzer einen Befehl mit genau einem Argument ohne Option ausführen kann.
# tail -1 /etc/sudoers
ALL ALL = (:tool) NOPASSWD: /bin/echo [a-z]*
$ sudo -g tool /bin/echo abc def
abc def
$ sudo -g tool /bin/echo -abc def
[sudo] password for user:
Kann ich das mit dem sudoers sytnax machen? Oder muss ich ein Hilfsskript erstellen?
[a-z]*
ist schon das Argument, das ich will. Es ist also ein variables Argument. (Ich benutze / bin / echo nur zum Testen.)Antworten:
Meines Wissens können Sie keine Nicht-Befehlsargumente an sudo übergeben, wenn dieses Argument variiert.
Sie können Folgendes angeben:
Dies würde es dem Benutzer ermöglichen, eine Datei zu verfolgen, aber keine anderen Dateien.
Wenn Sie eine Variable übergeben müssen, empfehle ich ein Wrapper-Skript.
Hier ist ein Beispiel für einen rsync-Wrapper:
https://sites.google.com/site/beingroot/articles/useful-scripts/wrapper-script-to-use-rsync-via-sudo
Wenn Sie Google nach Sudo-Wrappern durchsuchen, finden Sie viele weitere Beispiele.
Stellen Sie sicher, dass Sie alle Pfade fest codieren und die Eingabe auf Richtigkeit prüfen, wenn dem Benutzer nicht vertraut werden kann.
quelle