Bash-Skript von User www-data als root laufen lassen
Hallo zusammen,
kann mir jemand dabei helfen, den User www-data zu berechtigen ein Bashskript auszuführen, das im /var/www/ liegt?
Das Skript benötigt sudo.
Ich möchte eher nicht www-data berechtigen überall sudo zu sein, sondern eher, dass www-data nur das EINE Skript also /var/www/skript ausführen darf.
Kann jemand so nett sein und mir dabei helfen??
Danke für eure Unterstützung und schöne *Tage.
Jensen
kann mir jemand dabei helfen, den User www-data zu berechtigen ein Bashskript auszuführen, das im /var/www/ liegt?
Das Skript benötigt sudo.
Ich möchte eher nicht www-data berechtigen überall sudo zu sein, sondern eher, dass www-data nur das EINE Skript also /var/www/skript ausführen darf.
Kann jemand so nett sein und mir dabei helfen??
Danke für eure Unterstützung und schöne *Tage.
Jensen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 268401
Url: https://administrator.de/contentid/268401
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
6 Kommentare
Neuester Kommentar
Erst gestern:
Linux-Shell via PHP-Datei ausführen
Doku lesen, dann wäre die Frage obsolet gewesen:
http://www.cyberciti.biz/tips/allow-a-normal-user-to-run-commands-as-ro ...
Also nochmal zum nachlesen, Schritt für Schritt:
Den Befehl
(Hier können in Pfad auch Wildcards genutzt werden um mehrere Scripte zu umfassen, z.B.
Nun noch das Script
Jetzt kannst du in deinem PHP-Script dein Script mit
Feddich und läuft.
Eventuelle Fehler im Script werden hier vom Apache geloggt:
Gruß jodel32
Linux-Shell via PHP-Datei ausführen
Doku lesen, dann wäre die Frage obsolet gewesen:
http://www.cyberciti.biz/tips/allow-a-normal-user-to-run-commands-as-ro ...
Also nochmal zum nachlesen, Schritt für Schritt:
Den Befehl
sudo visudo
eingeben. Dann ganz unten eine weitere Zeile einfügen die so aussieht und das File dann speichern:www-data ALL=NOPASSWD: /var/www/script
/var/www/*.sh
, um alle *.sh scripte zu erlauben)Nun noch das Script
/var/www/script
für alle ausführbar machen, falls noch nicht geschehen:chmod +x /var/www/script
sudo
aufrufen:<?php
shell_exec('sudo /var/www/script');
?>
Eventuelle Fehler im Script werden hier vom Apache geloggt:
/var/log/apache2/error.log
Gruß jodel32
Zitat von @Bachti:
Darf ich ganz vorsichtig einwerfen, dass es nicht besonders sicher ist, ein unter /var/www liegendes Skript mit
Administratorrechten auszuführen?
Sicher, das ist natürlich klar ... meiner einer würde das Verzeichnis für die Scripte sowieso nicht in den öffentlichen html-Ordner legen sondern außerhalb des öffentlichen, oder zumindest den Zugriff via *.htaccess verbieten !Darf ich ganz vorsichtig einwerfen, dass es nicht besonders sicher ist, ein unter /var/www liegendes Skript mit
Administratorrechten auszuführen?
Wo kann es nun noch haken??
User www-data hat keine Schreibrechte im Ziel-Ordner /home/pi ?!!Wie gesagt das obige wurde hier einwandfrei getestet. Deine Berechtigungen im Dateisystem stimmen einfach zu 99% nicht.... sagen ja schon die Fehlermeldungen.
Also entweder in dem Verzeichnis jedem Schreib- und Ausführrechte geben oder www-data zu einer Gruppe hinzufügen und diese dem Verzeichnis des Scripts zuweisen.
Auch wenn www-data das Script mit erhöhten Rechten ausführt, braucht er immer noch passende Rechte in den jeweiligen Verzeichnissen in denen hantiert wird.
Sollen wir dir hier jetzt die Rechte-Grundlagen unter Linux verklickern ??!