CentOS 7 Apache führt Webanforderungen als Root-Benutzer aus

CentOS 7 Apache führt Webanforderungen als Root-Benutzer aus

Ich habe ein PHP-Dienstprogramm, das Post-Anfragen mit Datei als Parameter akzeptiert. Wenn diese Anfrage nun eingeht, möchte ich sie als Root-Benutzer ausführen. Wenn der Benutzer beispielsweise www.mydomain.com/sendtextfiletoftp.php von Postman oder einem anderen Tool aus aufruft, sollte dies als Root-Benutzer ausgeführt werden.

Ich habe versucht sudo visudo, die folgenden Zeilen zur Sudoers-Datei hinzuzufügen, aber die Anfrage wird immer noch mit dem Apache-Benutzer ausgeführt.

www-data ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

apache ALL=NOPASSWD: /var/www/html/sendtextfiletoftp.php

sudo php72 /path/to/file/sendtextfiletoftp.phpDie gleiche Datei funktioniert einwandfrei, wenn sie als Sudo-Benutzer über die Befehlszeile () ausgeführt wird .

Danke für die Hilfe.

Antwort1

Sie müssen dem Apache-Benutzer nicht nur erlauben, Root für einen Befehl zu werden, sondern auch einen Aufruf in Ihrem Code durchführen, der „sudo“ enthält. Normalerweise:

In visudo würde ich so etwas schreiben wie

apache ALL=NOPASSWD: /Pfad/mein_Root_Befehl

In meinem Code /var/www/html/sendtextfiletoftp.php würde ich für den speziellen Teil, der Root-Zugriff benötigt, etwas wie Folgendes einfügen:

exec("sudo /Pfad/mein_Stammbefehl");

verwandte Informationen