Hinzufügen erweiterter Berechtigungen zu Skripts in einem Verzeichnis

327
Sam Hastings

Ich habe ein Verzeichnis mit einigen Skripts, die ich von einer Webanforderung aus aufrufen muss. Die Skripts benötigen zum Ausführen erhöhte Berechtigungen.

Mein derzeitiger Gedanke ist, folgende Zeilen hinzuzufügen /etc/sudoers:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS 

Ist dies der richtige Ansatz für dieses Problem? Oder verursache ich eine potenzielle Sicherheitslücke?

Verwenden Sie CentOS 7, wenn dies einen Unterschied macht.

2

1 Antwort auf die Frage

0
Duncan X Simpson

Alles ist eine potenzielle Sicherheitslücke. Zwei Dinge:

Sind Sie sicher, dass es root braucht? Warum? Können Sie das stattdessen mit Fähigkeiten tun? (Sie können wahrscheinlich.)

Davon abgesehen ist Ihr Beispiel fast genau richtig. Fügen Sie hinter dem Pfad ein Sternchen hinzu:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts/* 

Und jetzt wird es funktionieren. Aber Achtung, falls eines dieser Skripte von einem Angreifer geändert werden kann, erhält der Angreifer vollen Zugriff auf die Root-Berechtigung . Sie können einfach exec('/bin/bash')und haben eine Schale. Definieren Sie auf jeden Fall die Funktionen per Skript, wenn möglich, und sperren Sie das Skriptverzeichnis DEFINITEL auf die eine oder andere Weise. In dieser Antwort von unix.se finden Sie Informationen zum Verwalten von Funktionen mit Skripts.

Danke für deinen Rat. Die Bibliothek, mit der diese Skripts kommunizieren müssen, ist unbestritten, dass erhöhte Berechtigungen erforderlich sind. Ich werde jedoch die Informationen zu den Fähigkeiten überprüfen, falls sich herausstellt, dass dies funktioniert. Wenn nicht, reicht es aus, den Eigentümer der Skripts auf root und die Berechtigungen auf 755 festzulegen, um zu verhindern, dass jemand sie ändert. Sam Hastings vor 6 Jahren 0
Ich habe versucht, Ihre Antwort zu bestätigen, kann dies aber mit weniger als 15 Reputation nicht tun :-) Sam Hastings vor 6 Jahren 0
@SamHastings Ich würde sagen, 755 ist zu offen. Betrachten Sie alles, was diese Skripts tun. Könnte es problematisch sein, wenn es ausgeführt würde, als dies nicht der Fall war? Ich würde sagen, wenn Sie nicht wissen, dass Sie mehr offenen Zugang benötigen, 0700. Normalerweise mache ich 0775 oder 0770, aber wenn ich es mit passwortlosem Sudo zu tun habe, neige ich dazu, besonders paranoid zu sein. Duncan X Simpson vor 6 Jahren 0