Das Festlegen von www-data (lighttpd) als sudoer funktioniert nicht

Das Festlegen von www-data (lighttpd) als sudoer funktioniert nicht

Ich habe lighttpd mit fast-cgi auf dem Raspberry Pi installiert. Beim Ausführen eines Python-Skripts, das Root-Rechte erfordert, erhalte ich die folgende Fehlermeldung:

RuntimeError: Kein Zugriff auf /dev/mem. Versuchen Sie, es als Root auszuführen! Traceback (letzter Aufruf zuletzt): Datei „/var/www/index.py“, Zeile 134, in GPIO.setup(17, GPIO.OUT);#enable A RuntimeError: Kein Zugriff auf /dev/mem. Versuchen Sie, es als Root auszuführen!

Ich habe www-data als Sudoer mit visudo und „sudo usermod -a -G sudo www-data“ hinzugefügt, aber es hat nicht funktioniert. Wie kann ich lighttpd Root-Rechte erteilen? Sicherheit ist NICHT wichtig, da dies ein persönliches Projekt ist.

Antwort1

lighttpd verwendet kein sudo. Daher hilft es nicht, www-data zur sudoers-Gruppe hinzuzufügen.

Sie müssen den Webbenutzer in Ihrer Konfigurationsdatei von www-data in root ändern:

server.username = "root"

Sie können die Gruppe bei Bedarf bei www-data belassen, aber wenn Sie möchten, können Sie dies auch in root ändern.

Sie können stattdessen jedoch auch sudo als www-Daten aus Ihrem Python-Skript verwenden. Stellen Sie sicher, dass Sie NOPASSWD festlegen.

In jedem Fall ist das Ausführen eines Webservers als solches root(oder mit der Möglichkeit, für sjeden beliebigen Befehl zu einem beliebigen Server zu wechseln u) eine sehr schlechte Praxis, da jede Sicherheitslücke im Webserver oder in einer der von ihm bereitgestellten Webanwendungen bedeuten kann, dass das gesamte System vollständig kompromittiert wird.

Hier möchten Sie höchstwahrscheinlich, dass die mit auszuführende Operation /dev/memvon einem dedizierten Dienstprogramm mit Setuid-Root-Berechtigung (oder über ausgeführt sudo) oder von einem separaten Dienst ausgeführt wird, der von Ihrem Webserver aufgerufen wird.

verwandte Informationen