semy
31.08.06, 22:31
Hallo,
ich verwende Sudo damit ich per PHP-Script Systembefehle ausführen kann.
Allerdings gibt das Probleme, da ich meinen Server noch für Unteruser vermiete.
Meine Idee wäre den Aufruf von Sudo nur durch ein bestimmtes Passwort zuzulassen.
Hier erstmal meine momentane Sudo-Datei:
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
www-data ALL = NOPASSWD: ALL
So und hier noch ein Beispiel-PHP-Script:
<?php
// MySQL-Verbindung aufbauen
mysql_connect("localhost","root","********");
mysql_select_db("provider");
// soll die Systemzeit geupdatet werden (wenn nein, Script abbrechen)?
$r = mysql_query("SELECT value FROM settings WHERE name='update_systime';");
$row = mysql_fetch_array($r);
$do = $row['value'];
if (!$do)
{
mysql_close();
die();
}
// sonst Systemzeit updaten
else
{
$r = mysql_query("UPDATE settings SET value='0' WHERE name='update_systime';");
exec("sudo rdate time.fu-berlin.de");
}
// MySQL-Verbindung schließen
mysql_close();
?>
Das ganze funktioniert wunderbar, jedoch sollen keine anderen User solche Befehle ausführen dürfen.
Wenn das mit dem Passwort ginge, wäre mir das am liebsten. Es sollten jedoch weiterhin über PHP in Verbindung mit Sudo und Passwort Systembefehle ausführbar sein.
Ich könnte ja einfach für die ganzen anderen User über die PHP.INI die gefährlichen Funktionen sperren. Aber wie siehts dann bei Perl, CGI etc. aus? Muss ich da auch was beachten?
Oder soll ich ganz auf Sudo ******en und es gibt eine Möglichkeit anders über PHP Systembefehle auszuführen?
Ich würde mich freuen wenn mir jemand helfen kann.
Liebe Grüße
Semy!
ich verwende Sudo damit ich per PHP-Script Systembefehle ausführen kann.
Allerdings gibt das Probleme, da ich meinen Server noch für Unteruser vermiete.
Meine Idee wäre den Aufruf von Sudo nur durch ein bestimmtes Passwort zuzulassen.
Hier erstmal meine momentane Sudo-Datei:
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
www-data ALL = NOPASSWD: ALL
So und hier noch ein Beispiel-PHP-Script:
<?php
// MySQL-Verbindung aufbauen
mysql_connect("localhost","root","********");
mysql_select_db("provider");
// soll die Systemzeit geupdatet werden (wenn nein, Script abbrechen)?
$r = mysql_query("SELECT value FROM settings WHERE name='update_systime';");
$row = mysql_fetch_array($r);
$do = $row['value'];
if (!$do)
{
mysql_close();
die();
}
// sonst Systemzeit updaten
else
{
$r = mysql_query("UPDATE settings SET value='0' WHERE name='update_systime';");
exec("sudo rdate time.fu-berlin.de");
}
// MySQL-Verbindung schließen
mysql_close();
?>
Das ganze funktioniert wunderbar, jedoch sollen keine anderen User solche Befehle ausführen dürfen.
Wenn das mit dem Passwort ginge, wäre mir das am liebsten. Es sollten jedoch weiterhin über PHP in Verbindung mit Sudo und Passwort Systembefehle ausführbar sein.
Ich könnte ja einfach für die ganzen anderen User über die PHP.INI die gefährlichen Funktionen sperren. Aber wie siehts dann bei Perl, CGI etc. aus? Muss ich da auch was beachten?
Oder soll ich ganz auf Sudo ******en und es gibt eine Möglichkeit anders über PHP Systembefehle auszuführen?
Ich würde mich freuen wenn mir jemand helfen kann.
Liebe Grüße
Semy!