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