ja dein Einwand ist sicher berechtigt aber ich möchte eben lernen wie das ganze mit exec + Parametern funktioniert. Ich weiß viele Wege führen nach Rom, aber meiner ist über PHP
Kannst du trotzdem bitte helfen?
ja dein Einwand ist sicher berechtigt aber ich möchte eben lernen wie das ganze mit exec + Parametern funktioniert. Ich weiß viele Wege führen nach Rom, aber meiner ist über PHP
Kannst du trotzdem bitte helfen?
Zeichkette in Variable übergeben? Schau mal ob du hier fündig wirst!
Da werden jetzt die meisten mit einem klaren NEIN antworten. Sorry, aber der Weg den du unbedingt gehen willst sollte man nicht unterstützen, das ist alles andere als guter Stil.
Aua. Wo hast du das denn gelesen?
In visudo brauchst du nur die Befehle eintragen, keine Parameter.
meigrafd das habe ich hier gelesen:
http://little-docus.de/python-skripte-ueber-php-ausfuehren/
was spricht dagegen? lass mich nicht dumm sterben *g*
Was dagegen spricht sagte ich schon: Man trägt da nur den über sudo auszuführenden Befehl ein, ohne mögliche Parameter für den Befehl.
www-data Ist der Benutzer dem dies erlaubt wird.
ALL=NOPASSWD legt fest dass der Benutzer die nachfolgenden Befehle ohne Password-Abfrage ausführen darf.
/usr/bin/python ist der Befehl den du über sudo ausführen möchtest.
Ob oder wie viel Parameter du dem Befehl übergibst ist völlig nebensächlich.
Nicht jeder Blog sollte blind befolgt werden - vergleiche das am besten mit noch einem anderen oder lese offizielle Dokumentationen wie zum Beispiel https://wiki.ubuntuusers.de/sudo/Konfiguration/
Zu guter letzt kannst du dir auch noch das durchlesen:
FAQ => Nützliche Links / Linksammlung => Befehle über PHP mit root Rechten ausführen (sudo webscript)
FAQ => Nützliche Links / Linksammlung => PHP: Anleitung zum schalten von GPIO
Es bleibt aber weiterhin so dass du lieber auf Python wechseln solltest. GPIO's über PHP zu steuern ist nicht wirklich toll und man bricht sich dabei ziemlich ein ab.
meigrafd ich habe jetzt mal www-data neue Rechte gegeben
Meine Theorie dahinter war den www-data erstmal zum root zu machen (von den Rechten her).
Jedoch bekomme ich wieder meinen bekannten Fehler:
GPIO.setup(int(sys.argv[1]), GPIO.OUT)
RuntimeError: No Access to /dev/mem. Try running as root!
müsste nun www-data nach der Umstellung nicht auf /dev/mem zugreifen können?
Das ist wieder kein gültiger Eintrag für dein Vorgaben. Es fehlt die NOPASSWD direktive.
Meine Theorie dahinter war den www-data erstmal zum root zu machen (von den Rechten her).
Über sudo machst du niemandem zum root. Aber dein sudoers Eintrag ist wie gesagt nicht für PHP verwendbar. Wo soll der www-data denn das Password eingeben/übergeben sobald dieser einen Befehl über sudo ausführen möchte? => geht nicht.
Ließ dir bitte den ersten Link aus der Linksammlung den ich in Beitrag#46 genannt habe, durch.
habe es gerade vor 2 min selber rausgefunden. Dank dieser Webseite:
https://pi-buch.info/gpio-steuerung-in-php-scripts/
ich habe nun www-data in die Gruppe gpio aufgenommen. Somit kann ich /dev/mem auslesen! und siehe da es funzt! SAUSTARK!
meigrafd deine Ausführung ist natürlich richtig und es steht auf meiner Agenda mich noch mehr mit Rechten unter Linux zu beschäftigen. *g* Trotzdem danke ich dir!
Was da auf dem Blog steht ist teilweise wieder mal Quatsch....wieso liest du irgendwelche Webseiten obwohl ich dir das doch bereits alles hier im Forum verlinkt habe Fühle mich grad ein wenig veräppelt
Ich bin verwirrt. Erstens ist mir neu, daß man dort eine Befehlszeile angeben kann wie bspw.:
... oder Wildcards.
Du erlaubst hier also das Programm /usr/bin/python, sowie dein Programm /home/pi/Desktop/gpio/relayschaltung.py ... die Wildcards werden vermutlich ignoriert.
Und zweitens verstehe ich nicht ganz wozu man pauschal dem Benutzer www-data das Recht gibt alle besagten Programm, im speziellen Python, als jeder beliebige andere Benutzer (statt bspw. nur root) auszuführen. Abgesehen davon kann man auch eine Gruppe und nicht nur einen Benutzer zuweisen. Also könntest du auf einem Raspbian dem Benutzer www-data erlauben als www-data und mit der Gruppe gpio eine bestimmte Datei auszuführen.
Bemüh doch mal "man sudoers", da steht es sehr detailliert drin. Und Dank EBNF ist es auch alles sehr eindeutig.
Bemüh doch mal "man sudoers"
Assarbad wo soll mich der Link denn hinführen?
Assarbad das wurde quasi bereits geklärt dass der Eintrag Quatsch war.
Um mehrere Befehle zu erlauben nutzt man als Trennzeichen , nicht . Ein durch getrennter Eintrag entspricht einer weiteren Direktive / Parameter.
Wie gesagt, Beitrag#46 beinhaltet einige Links wo alles nötige drin steht - und zwar korrekt und Langzeiterprobt.
Es gilt zu unterscheiden: Über PHP... GPIO's schalten .... oder .... Befehle mit root-Rechten auzsführen.
Für ersteres bedarf es kein sudo.
Und warum sollte man ständig und überall alles wiederholen wenn es denn schon ausführliche Anleitungen hier im Forum gibt? Klick da doch nur mal drauf verdammte axt. Wie gesagt, so langsam fühl ich mich veräppelt, obwohl ich ein sehr geduldiger Mensch bin.
Assarbad wo soll mich der Link denn hinführen?
Grausam manchmal, diese Forensoftware Hab's korrigiert.
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!