it-swarm.com.de

Die Sudo-Direktive in /etc/sudoers.d funktioniert nicht (aber es ist in Ordnung, wenn sie in / etc / sudoers ist)

Ich möchte dem Ordner /etc/sudoers.d Eine Datei hinzufügen, die eine Anweisung enthält, mit der www-data Ein bestimmtes Skript ohne Root-Passwort ausführen kann.

Die Richtlinie ist

www-data ALL=(ALL) NOPASSWD: /path/to/script.sh

Wenn ich visudo und es zu /etc/sudoers Füge, gibt es kein Problem.

Wenn ich diese Zeile in eine Datei einfüge und nach /etc/sudoers.d Kopiere, dann visudo, wird mir mitgeteilt, dass die Datei einen 'Syntaxfehler in der Nähe von Zeile 1' aufweist.

Gibt es noch etwas, das ich in die Datei einfügen muss, oder etwas anderes, das ich tun muss, damit es funktioniert?

Ich verwende Ubuntu 18.

Vielen Dank!

15
Ben Holness

Ich habe das Problem herausgefunden - für Dateien in /etc/sudoers.d darf die Datei nicht bei der Direktive enden, sondern in einer neuen Zeile. Dies lässt sich am einfachsten mit cat -A.

Ungültige Datei:

[email protected]:/etc/sudoers.d# cat -A /etc/sudoers.d/testfile
www-data ALL=(ALL) NOPASSWD: /path/to/[email protected]:/etc/sudoers.d#

Gültige Datei:

[email protected]:/etc/sudoers.d# cat -A /etc/sudoers.d/testfile
www-data ALL=(ALL) NOPASSWD: /path/to/script.sh$
[email protected]:/etc/sudoers.d#
19
Ben Holness