Wie in Sudoern bestimmte Eingaben überprüft werden, die dem Skript hinzugefügt werden

260
cyprian

Ich habe ein Skript, das als Eingabe-IP-Adresse verwendet wird. Meine Frage ist, kann ich in Sudoers angeben, welche Eingabe zu meinem Skript hinzugefügt werden kann. Jetzt mache ich so:

 user ALL = !ALL, /bin/sh, /home/user/scripts/addIP.sh * 

Aber das erlaubt jede Eingabe. Kann ich das angeben? Ich versuche das:

 ussshnode ALL = !ALL, /bin/sh, /home/ussshnode/node_2fa_prod/scripts/addIP.sh [0-9]+.[0-9]+.[0-9]+.[0-9]+ 

aber es funktioniert nicht richtig. Einige Vorschläge?

0

1 Antwort auf die Frage

0
tonioc

1) Die Platzhalterzeichen für die Befehlsspezifikation enthalten nicht das "+" - Zeichen, aber die folgende Syntax wird Ihrer Erwartung entsprechen, denke ich:

addIP.sh [0-9]*.[0-9]*.[0-9]*.[0-9]* 

2) Es ist vorzuziehen, sudoed Binärdateien / Skripte zu verwenden, die nur von root beschreibbar sind.

3) Ich denke, das anfängliche "! ALL" in Ihrer Befehlsspezifikation ist unbrauchbar, und die Einfügung von / bin / sh in sudoable-Befehlen ermöglicht es Ihrem Benutzer, alles als root auszuführen, sobald er in ein Skript eingebettet ist ...

=> so würde ich es so schreiben (und das Skript in den angegebenen Pfad schreiben):

user ALL = /usr/local/scripts/addIP.sh [0-9]*.[0-9]*.[0-9]*.[0-9]*