Also entweder bin ich zu blöd, oder ich habn fehler eingebaut. Hab jetz der /etc/sudoers mit visudo den eintrag:
Code:
www-data localhost=NOPASSWD:/bin/su
gegeben. Allerdings funktioniert das nicht und ich hab auch das dumpfe Gefühl, dass mein System dadurch offen wie ein Scheunentor ist. Ich hab mich dann nach alternativen wie suPHP umgeschaut, bekomm die aber irgendwie nicht installiert. Bin wohl zu dumm für Linux
Hab das jetzt bei mir auch mal getestet, und bin ebenfalls am User "www-data" gescheitert.
Ich vermute, dass aufgrund der Tatsache, dass www-data nur eine kastrierte Shell besitzt, das Ganze nicht funktioniert.
Ein paar einfache Tests mit "whoami" haben zwar funktioniert, aber sobald es um das Wechseln von benutzern mittels "/bin/su
user" oder "/bin/sudo -u
user" ging, kam immer wieder ein Passwort-Prompt.
Bleibt die Überlegung, den Text per PHP in eine Textdatei zu schreiben, auf die sowohl "www-data" als auch "mcflash" volle Rechte haben.
Dazu am besten eine neue Gruppe anlegen:
Code:
addgroup minecraft
adduser mcflash minecraft
adduser www-data minecraft
touch /var/www/minecraft-text
chown :minecraft /var/www/minecraft-text
chmod 770 /var/www/minecraft-text
Die Datei sollte sich dann am besten innerhalb des Verzeichnisses deiner PHP-Oberfläche befinden.
Dann baust du dir ein Script, welches die screen-Session entsprechen vorbereitet (ggfs. 1x mit screen -x parallel öffnen), diese datei in eine variable einliest (CMD=`cat /var/www/minecraft-text`), dann die Datei leert (echo "" > /var/www/minecraft-text) und das dann wie vorher erfolgreich getestet an die screen-Session schickt.
Anschließend richtest du einen cron-job ein, der den Benutzer "mcflash" das eben erstellte Script jede Minute ausführen lässt:
/etc/crontab ergänzen um:
Code:
*/1 * * * * mcflash /home/mcflash/script.sh > /dev/null 2>&1
Abschließend cron mit:
Oder bei aktuellen Ubuntu und Debian (ab Squeeze) mit:
neustarten.
Das sollte eigentlich funktionieren und du umgehst die Problematik mit sudo und den Benutzern
mfg
foxxx