ubuntuusers.de

Von PHP aus Shell-Script ausführen

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6488

Wohnort: Hamburg

Also bei mir läuft sowas schon seit Ewigkeiten sowohl mit Apache als auch mit Lighttpd. Das Codestück sieht bei mir auch fast genauso aus.

$cmd = "sudo /usr/sbin/hddtemp /dev/sdb";
$res = shell_exec( $cmd );

Dabei muss mann aber wissen, das alles was über PHP aufgerfen wird, mit den Rechten des Webservers (User: www-data) ausgeführt wird. Die dazugehörige Änderung in der /etc/sudoers sieht dann bei mir so aus:

# User privilege specification
root    ALL=(ALL) ALL
www-data ALL=NOPASSWD: /usr/sbin/hddtemp, /usr/bin/sensors

Feuerfux

(Themenstarter)
Avatar von Feuerfux

Anmeldungsdatum:
26. Februar 2009

Beiträge: Zähle...

Danke für den Tipp mit dem www-data benutzer, das wusste ich noch nicht.

Aber wenn ich das richtig sehe, dass übergibst du auch keine variablen, oder? ...aber immerhin funktioniert in diesem fall das mit dem sudo bei dir. 😉

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6488

Wohnort: Hamburg

Aber wenn ich das richtig sehe, dass übergibst du auch keine variablen, oder?

Doch. Schau nochmal genau hin. Das Programm hddtemp will schon wissen welche Platte es abfragen soll (hier /dev/sdb). Bei sda macht das bei mir keinen Sinn, da das ein Flashmodul ist.

Feuerfux

(Themenstarter)
Avatar von Feuerfux

Anmeldungsdatum:
26. Februar 2009

Beiträge: 20

Das höhrt sich sehr plausiebel an, vorallem wenn ich sehe, dass mein webserver bzw., dass ein script welches von einem PHP-Script ausgeführt wird wirklich unter diesem www-data-Benutzer läuft.

Dakuan, vielen Dank für deine Hilfe. Auch Danke an alle anderen, die mir mit ihren Tipps weiter geholfen haben. Das war jetzt wirklich ein bisschen tricky... (für mich...:-S)

Antworten |