Zugriff auf `uptime` aktivieren
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Zugriff auf `uptime` aktivieren
Hallo,
ich würde den webs gerne PHP-Zugriff auf `uptime` erlauben.
Deswegen hab ich einen Symlink in /home/www/empty (das ja safe_mode_exec_dir ist) erstellt.
Aber weder echo exec('uptime'); noch echo exec('/home/www/empty/uptime'); geben etwas aus :(
Ganz zur Not werde ich halt für die webs den safe_mode deaktivieren, aber das will ich wenn möglich vermeiden ;)
ich würde den webs gerne PHP-Zugriff auf `uptime` erlauben.
Deswegen hab ich einen Symlink in /home/www/empty (das ja safe_mode_exec_dir ist) erstellt.
Aber weder echo exec('uptime'); noch echo exec('/home/www/empty/uptime'); geben etwas aus :(
Ganz zur Not werde ich halt für die webs den safe_mode deaktivieren, aber das will ich wenn möglich vermeiden ;)
Re: Zugriff auf `uptime` aktivieren
Hm, geht's evtl. übers /proc ? Da gibt's was ähnlcihes... cat /proc/uptime oder so...
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
Auf /proc kann doch wegen dem safe_mode von confixx auch nicht zugegriffen werden, oder?
Re: Zugriff auf `uptime` aktivieren
Probier's aus :PThiefMaster wrote:Auf /proc kann doch wegen dem safe_mode von confixx auch nicht zugegriffen werden, oder?
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
Mit cat /proc/uptime kann ich leider nichts anfangen, weil das wBB2 die Ausgabe vom noramlen `uptime` parst.
Re: Zugriff auf `uptime` aktivieren
Du weisst aber schon, dass du den safe_mode auch für einzelne VHosts deaktivieren kannst? Und dann mit open_basedir auch Sicherheit herstellen kannst... evtl. noch disable_functions in der php.ini entsprechend setzen
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
Ja...
open_basedir ist bei Confixx ja eh standardmäßig an (und ich hab ja keinen Grund, meinen eigenen Server zu hacken :D).ThiefMaster wrote:Ganz zur Not werde ich halt für diese webs den safe_mode deaktivieren, aber das will ich wenn möglich vermeiden
Re: Zugriff auf `uptime` aktivieren
Wenn das funktionieren würde wäre der safemode ja Sinnfrei. Da ist nix mit FollowSymlinks. Wenn safe_mode bzw basedir restriction an ist, gehts nunmal nicht.ThiefMaster wrote:Hallo,
ich würde den webs gerne PHP-Zugriff auf `uptime` erlauben.
Deswegen hab ich einen Symlink in /home/www/empty (das ja safe_mode_exec_dir ist) erstellt.
Aber weder echo exec('uptime'); noch echo exec('/home/www/empty/uptime'); geben etwas aus :(
Ganz zur Not werde ich halt für die webs den safe_mode deaktivieren, aber das will ich wenn möglich vermeiden ;)
Re: Zugriff auf `uptime` aktivieren
Probier mal die uptime binary in das /home/www/empty zu kopieren....
Ich hatte mal ein ähnliches Problem mit ImageMagick und nach dem reinkopieren, ging es auch im safemode. (Ohne Pfadangabe, glaube ich).
Gruß
mark
Ich hatte mal ein ähnliches Problem mit ImageMagick und nach dem reinkopieren, ging es auch im safemode. (Ohne Pfadangabe, glaube ich).
Gruß
mark
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: Zugriff auf `uptime` aktivieren
Und wenn's das "normale" Binary nicht tut, bau dir ein statisch kompiliertes. uptime benutzt im Normalfall nämlich noch ein paar dynamisch gelinkte Bibliotheken :Probier mal die uptime binary in das /home/www/empty zu kopieren....
Code: Select all
ldd /usr/bin/uptime
libproc.so.2.0.7 => /lib/libproc.so.2.0.7 (0x4001f000)
libc.so.6 => /lib/libc.so.6 (0x4002d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
Also nur kopieren funktioniert nicht. :(
Wie compiliere ich mir denn ein statisches Binary?
Wie compiliere ich mir denn ein statisches Binary?
Code: Select all
p********:/home/www/empty # ldd uptime
libc.so.6 => /lib/libc.so.6 (0x40019000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)Re: Zugriff auf `uptime` aktivieren
Wenn Du per Cron /proc/uptime kopierst müsste das doch gehen, oder?
Ich habe eine Uptime-Statistik per PHP - aber als Shell-Script laufen:
Dann müsstest Du doch Dein Forum hinbekommen, oder?
Grüße,
flo.
Ich habe eine Uptime-Statistik per PHP - aber als Shell-Script laufen:
Code: Select all
#!/usr/bin/php -q
<?
// Proc-FS auslesen
$fd = fopen('/proc/uptime', 'r');
$ar_buf = split(' ', fgets($fd, 4096));
fclose($fd);
$sys_ticks = trim($ar_buf[0]);
$uptime_mins = $sys_ticks / 60;
$uptime_hours = $uptime_mins / 60;
//
// Datenbankzugangsdaten
//
$db_host = "xxxx";
$db_user = "xxxx";
$db_pass = "xxxx";
$db_db = "xxxx";
$uptime_date = (date ("Y-m-d H:i:s"));
//
// Hostangaben
//
$uptime_ip = "xxxx";
$uptime_descr = "Mail- und DB-Server";
$uptime_days = floor($uptime_hours / 24);
$uptime_hours = floor($uptime_hours - ($uptime_days * 24));
$uptime_mins = floor($uptime_mins - ($uptime_days * 60 * 24) - ($uptime_hours * 60));
...
?>
Grüße,
flo.
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
Das Forum benötigt nur die 3 Load-Averages.
Deswegen nützt mit /proc/uptime leider ziemlich wenig :(
Deswegen nützt mit /proc/uptime leider ziemlich wenig :(
Code: Select all
if($uptime = @exec("uptime"))
{
if(preg_match("/averages?: ([0-9.]+),[s]+([0-9.]+),[s]+([0-9.]+)/",$uptime,$match))
{
$match[1]*=100;
$match[2]*=100;
$match[3]*=100;
$serverinfo = 1;
}
}Re: Zugriff auf `uptime` aktivieren
Ich glaub das hilft ihm aber nicht. Er möchte, dass das Woltlab Burning Board im ACP die Serverauslastung anzeigt. Das passiert mit folgendem Code:
Naja ich finde die Anzeige ziemlich sinnfrei, weshalb ich sie bei mir umgebaut habe. Den Hack gibts bei mywbb oder wbb-help.
EDIT: 2 .... ein Gedanke 8)
Code: Select all
if($uptime = @exec("uptime")) {
if(preg_match("/averages?: ([0-9.]+),[s]+([0-9.]+),[s]+([0-9.]+)/",$uptime,$match)) {
$match[1]*=100;
$match[2]*=100;
$match[3]*=100;
EDIT: 2 .... ein Gedanke 8)
Re: Zugriff auf `uptime` aktivieren
Oh sorry ... man kann ja nicht alles kennen. ;-)
Zur Not mach halt den Uptime in eine Textdatei und lies die mit fopen ein, das wäre noch, was mir einfallen würde.
Grüße,
flo.
Zur Not mach halt den Uptime in eine Textdatei und lies die mit fopen ein, das wäre noch, was mir einfallen würde.
Grüße,
flo.
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
Stimmt, so könnte ich es machen:
Ein PHP-Cronjob schreibt `uptime` jede Minute in eine Textdatei (eigentlich könnte ich dafür doch auch den SHM nehmen, oder?).
Ein PHP-Cronjob schreibt `uptime` jede Minute in eine Textdatei (eigentlich könnte ich dafür doch auch den SHM nehmen, oder?).
Re: Zugriff auf `uptime` aktivieren
safe_mode_exec_dir verhindert Symlinknutzung..ThiefMaster wrote:Hallo,
ich würde den webs gerne PHP-Zugriff auf `uptime` erlauben.
Deswegen hab ich einen Symlink in /home/www/empty (das ja safe_mode_exec_dir ist) erstellt.
kopiere die Binary (und strippe sie eventl.)..
Re: Zugriff auf `uptime` aktivieren
Mir ist da noch was eingefallen.
Hat dein Safe_exec_dir auch die Rechte 445 oder so ? der Webserver "muss" da drin lesen können...
Bei dem /home/www/empty Verzeichnis sind die Rechte zu anfang:
dr--r--r-- 2 root root 4096 Okt 8 2002 empty
Mach darauf chmod +x empty und es sollte mit den binaries da drin gehen.
Das habe ich auf meinem Server damals auch gemacht und das hat funktioniert. In meinem Fall waren das aber die binaries von imagemagick.
Und das die binaries mit dyn. Bibliotheken verlinkt sind, ist egal.
Man schaue mein animate binary an:
Hat dein Safe_exec_dir auch die Rechte 445 oder so ? der Webserver "muss" da drin lesen können...
Bei dem /home/www/empty Verzeichnis sind die Rechte zu anfang:
dr--r--r-- 2 root root 4096 Okt 8 2002 empty
Mach darauf chmod +x empty und es sollte mit den binaries da drin gehen.
Das habe ich auf meinem Server damals auch gemacht und das hat funktioniert. In meinem Fall waren das aber die binaries von imagemagick.
Code: Select all
/home/www/empty # dir
total 124
dr--r--r-x 2 root root 4096 Feb 25 16:17 .
drwxr-xr-x 17 root root 4096 Mar 26 12:56 ..
-rwxr-xr-x 1 root root 20252 Feb 25 16:17 animate
-rwxr-xr-x 1 root root 34159 Feb 25 14:18 convert
-rwxr-xr-x 1 root root 30928 Feb 25 14:00 mogrify
-rwxr-xr-x 1 root root 24644 Feb 25 16:17 montage
Man schaue mein animate binary an:
Code: Select all
/usr/local/httpd/htdocs/kunden/empty # ldd animate
libMagick.so.5 => /usr/lib/libMagick.so.5 (0x40025000)
liblcms.so.1 => /usr/lib/liblcms.so.1 (0x40111000)
libtiff.so.3 => /usr/lib/libtiff.so.3 (0x40124000)
libfreetype.so.6 => /usr/local/php_files/lib/libfreetype.so.6 (0x40168000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x401b8000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x401d7000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x401e5000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40233000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4023d000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40255000)
libz.so.1 => /lib/libz.so.1 (0x40339000)
libpthread.so.0 => /lib/libpthread.so.0 (0x40348000)
libm.so.6 => /lib/libm.so.6 (0x4035e000)
libdl.so.2 => /lib/libdl.so.2 (0x4037d000)
libc.so.6 => /lib/libc.so.6 (0x40381000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
-
thiefmaster
- Posts: 59
- Joined: 2002-08-31 19:15
- Contact:
Re: Zugriff auf `uptime` aktivieren
JUHU, das war es.
CHMOD 755 funktioniert einwandfrei.
445 müsste aber auch gehen ;)
CHMOD 755 funktioniert einwandfrei.
445 müsste aber auch gehen ;)
Re: Zugriff auf `uptime` aktivieren
Und alles löst sich in Wohlgefallen auf :)
Hätte ich aber auch eher dran denken können, weil an dem Problem hab ich auch eine ganze Weile geknabbert. Allerdings war das schon wieder lange her... Ich sollte sowas mal irgendwo aufschreiben...
Wie wäre es, dass das obige in die FAQ kommt ?
Gruß
Mark
Hätte ich aber auch eher dran denken können, weil an dem Problem hab ich auch eine ganze Weile geknabbert. Allerdings war das schon wieder lange her... Ich sollte sowas mal irgendwo aufschreiben...
Wie wäre es, dass das obige in die FAQ kommt ?
Gruß
Mark