Zugriff über Internetseite

  • Hallo zusammen,

    ich habe auf einem PI5 (Bookworm) apache2 laufen (Standardinstallation - also nichts in irgendeiner conf geändert) und mir eine html-Seite gebastelt, die auf dem Raspi Scripts starten soll (über php). Wenn ich meine Scripts dahinter mit dem user "pi" aufrufe funktionieren sie. Wenn ich aber über den Browser das Script anstosse passiert gar nichts. Das liegt wohl daran, daß hier nicht der User "pi" sondern der User "www-data" genommen wird. Nun wollte ich die Scripts mal in einer Shell unter www-data starten, das misslingt aber ebenfalls, das System will für www-data ein Passwort haben, das ich aber nicht kenne. Zudem sollte ja bei Ausführen über die html-Seite kein Passwort eingegeben werden. Ich bin mir nicht im Klaren darüber, wo ich was mit dem User www-data machen muss, damit das geht. Kann mir jemand dazu was sagen?

  • Habe www-data in die Gruppe von pi, und pi auch in die Gruppe von www-data genommen, zudem

    sudo usermod -aG sudo www-data

    ausgeführt. Das bringt aber nicht das erhoffte ergebnis. Die Scripts können vom Broswer aus nach wie vor nicht gestartaet werden.

    usermod -aG alleine reicht nicht, habe in der /etc/sudoers.d die Datei 010_pi..... nach 010_www-data kopiert und entsprechend bearbeitet, jetzt geht es.

    Edited once, last by gschoen57 (April 6, 2025 at 10:26 AM).

  • Die Scripts können vom Broswer aus nach wie vor nicht gestartaet werden.

    Funktioniert das:

    Quote

    Nun wollte ich die Scripts mal in einer Shell unter www-data starten, das misslingt aber ebenfalls, ...

    jetzt?
    Machst Du den Zugriff mit dem Browser, aus dem Internet oder aus dem W/LAN? Könnte z. Zt. aus dem Internet, jeder die lasuchenden Ports des apache2 erreichen?

    EDIT:

    BTW: Als Alternative zum Browser/apache zwecks Ausführung von Scripten via W/LAN, VPN, Internet, empfehle ich dir socat. Siehe z. B.:

    Code
    apt show socat

    Wi-Fi_Signal_Strength  txpower
    iptables chains order scheme iptables-diagram
    nftables-diagram

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.6 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p10 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., Mumble-Serv., ddclient

    PI4B/8GB Bookworm-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, Mumble-Server, botamusique, ample

    Edited 2 times, last by rpi444 (April 6, 2025 at 10:25 AM).

  • Kann mir jemand dazu was sagen?

    Naja, man sollte sich vorher schon etwas kundig machen.
    Du hast geschrieben, das Du die Standardinstallation von Bookworm verwendest und an den Configs nichts geändert hast.
    Allerdings mußt Du auf Dateisystemebene geändert haben (oder sudo unterschlagen haben), weil sonst hättest Du unter /var/www/html als User pi keine Dateien abgelegen können (nur root hat da Schreibrechte, alle anderen Leserechte).
    Hast Du nach der Installation den Webserver mit Aufruf http://localhost/ oder http://%24dein-ip-adresse/ getestet? Kam da eine schöne aufklärende Webseite?

    Aber jetzt zu ein paar Sachen, die Dir helfen werden:
    - Deine Dateien, die Du unter der DocumentRoot des Webservers ablegst, müssen vom Webserver (www-data) lesbar sein.
    - Wenn etwas nicht funktioniert, schau in die Logfiles des Webservers. Bei Bookworm ohne Änderung der Config liegen diese in /var/log/apache2 und zwar die access.log und die error.log, wobei ich anmerken muß, das alle HTTP-Meldungen in der access.log zu finden sind und 500er oder Skriptfehler in der error.log. Am besten beim Enwickelns beide im Auge behalten.

    Ich würde Dir ja gerne noch andere nützliche Hinweise geben, aber Deine Beschreibung wirft zuviele Fragen auf, die beantwortet werden müßten. Wo ich z.B. vollkommen im dunklen tappe:

    Wenn ich meine Scripts dahinter mit dem user "pi" aufrufe funktionieren sie. Wenn ich aber über den Browser das Script anstosse passiert gar nichts.

    Da der User pi keine Schreibrechte in der DocumentRoot des Webservers hat, wo liegen die Skripte? Und auch hier fehlt eine wichtige Information. Was meinst Du mit: "Wenn ich aber über den Browser das Script anstosse passiert gar nichts." Zeige mal die URL, die Du im Browser hast, wenn Du das Skript mit ihm anstößt.

    Nun wollte ich die Scripts mal in einer Shell unter www-data starten, das misslingt aber ebenfalls, das System will für www-data ein Passwort haben, das ich aber nicht kenne.

    Logisch. Willkommen bei Unix/Linux.

    Eine Frage noch, was meinst Du mit: "Zugriff über Internetseite"?

    Du kannst aber auch mal hier im Forum unter Tutorials schauen, da gibt es eine (noch unvollständige) Anleitung zum konfigurieren und testen eines Apaches 2.4 unter Bookworm. Die ist zwar für Multiuserbetrieb ausgelegt, aber zum Verständnis und wo und warum man wo drehen muß, sollte sie genügen.

  • Du kannst auch mit einem ACL ein Script, das dem User www-data gehört, vom User pi so starten, alsob er der User www-data wäre.

    Oder Du startest testweise Dein Script als User pi mit "sudo -u www-data /Pfad/zum/script".

    Gehört Dein Script überhaupt dem User www-data ["ls -al /Pfad/zum/Script"] ?


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Wenn ich meine Scripts dahinter mit dem user "pi" aufrufe funktionieren sie. Wenn ich aber über den Browser das Script anstosse passiert gar nichts.

    Das kann auch daran liegen, als das Script auf Gerätedateien zugreift, die üblicherweise durch Gruppenrechte beschreibbar sind. Wenn der User pi z.B-.Mitglied der Gruppe gpio ist, kann er auch auf /dev/gpio* schreiben/ausgeben. www-data kann das (vorinstalliert) nicht.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Schau mal hier :
    Alt, aber funktioniert.

    meigrafd
    October 17, 2013 at 3:13 PM

    Offizieller Schmier und Schmutzfink des Forum.
    Meine PI:

    Display Spoiler

    #1 : Pi1 - Packet Radio Digi mit TNC-PI
    #2 : Pi2 - ADSB Feeder
    #3 : Pi3 - DHCP/DNS Server für 4 VLAN
    #4 : Pi3 - Wireguard Gateway
    #5 : Pi3 - FM Funknetz Gateway mit Shari SA818
    #6 : PI Zero W mit DMR Hotspot
    #7 : Pi4 4GB - Kiosk Browser
    #8 : Pi4 4GB - Kiosk Browser
    #9 : Pi4 8GB - Test Pi

    Dazu noch ein paar Zero und Pi1/2 die noch auf einen sinnvollen Einsatz warten.

  • Wenn man definierte Skripte hat, die man ausführen will, ohne etwas an der Rechtesituation des Systems zu ändern, kann man das 'über die Bande' machen.

    Man trägt, zum Beispiel über einen Link, den man anklickt, einen Befehl in eine Datenbank (SQLite) ein, die alle x Minuten von einem zweiten Skript eines anderen Nutzers ausgelesen wird und welches dann dieses ausgewählte Skript aufruft.

    Man hat also eine Reihe von Skripten, die aufgerufen werden sollen, die fest definiert sind. Bei einigen gibt es definierte Parameter, die mit zu dem Aufruf gehören, also wird die Datenbank mit einer Zeile gefüllt, die den definierten Alias des Skriptes in der einen Spalte enthält, und die Aliase der Parameter in den weiteren Spalten.

    Alias A: li -la

    Parameter: Verzeichenis : /var/log/apache/

    Alias B: ps -ef

    Parameter: Liste der möglichen Programmnamen


    Und das Skript, welches die Datenbank ausliest, führt den Befehl aus, gibt das Ergebnis irgendwo hin und setzt diesen DB-Eintrag auf "erledigt"

    Hierzu muss man, bis auf die Datenbank, nicht weiter einrichten, man wählt also die möglichen Ausrufe auf und kann sich dann, bald, das jeweilige Ergebnis ansehen.

    Computer ..... grrrrrr

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!