Author Topic: Smbstatus - als PHP Script auf dem WebServer  (Read 3932 times)

Mittelerde

  • Zen Warrior
  • ***
  • Posts: 153
  • Karma: +8/-0
    • View Profile
Smbstatus - als PHP Script auf dem WebServer
« on: February 18, 2012, 11:56:57 am »
Hallo,

Ein PHP Script das ich HIER abgekupfert habe.

Es zeigt auf einer Webseite auf dem Server die verbundenen Benutzer und welche Pfade/Dateien geöffnet sind.
Der einfachheit halber gebe ich der Gruppe www-data Lesezugriff

sudo
mv smbstatus.php /var/www
chown www-data\: /var/www/smbstatus.php
chmod ug+r-w-x /var/www/smbstatus.php

smbstatus.php
Code: [Select]
<meta http-equiv="Refresh" content="30;url=smbstatus.php">
<p>Diese Seite akualisiert sich alle 30 Sekunden automatisch</p>
<?

error_reporting(0);

     
    exec("smbstatus -S",$log);
    exec("smbstatus -L",$lock);
     
    $pid_us = array();
    for($i=3;$i<sizeof($log);$i++)
        if(!trim($log[$i])=="") {
            $users[] = split("[ ]+",$log[$i],4);
            $pid_us[$users[sizeof($users)-1][1]] = $users[sizeof($users)-1][2];
            }
    for($i=3;$i<sizeof($lock);$i++)
        if(!trim($lock[$i])=="") {         
                $line = split("[ ]+",$lock[$i],7);
                $usr = $pid_us[$line[0]];
                if(trim($usr)=="") $usr = $line[0];                               
                $locks[$line[0]][] = array($line[0],$usr,substr_replace($line[6],"",-25));  //Remove date (25 chars from the right
            }
         
    //die("");
     
    echo "<br />";
    echo "Verbundene Rechner/Benutzer :\n";
    echo "<br /><br />";
    echo "<table>\n";
    foreach($users as $user){
        list($service,$pid,$mach,$date) = $user;
        echo "<tr\n>";
        echo "<td class=\"user\">".$mach."</td>\n";
        echo "<td class=\"pid\">".$pid."</td>\n";
        echo "<td>".$service."</td>\n";
        echo "<td>".$date."</td>\n";
        echo "</tr>\n";
    }
    echo "</table>\n\n";
     
    echo "<br /><br />";
    echo "Gesperrte Dateien/Verzeichnisse :\n";
    echo "<br /><br />";
    echo "<table>\n";
     
    $cuser = "";
    $first = true;
    foreach($locks as $l){
        foreach($l as $lck){
            list($pid, $user,$file) = $lck;
            if($user != $cuser){       
                if(!$first){
                    echo "<tr>\n";
                    echo "<td>&nbsp;</td>\n";
                    echo "<td>&nbsp;</td>\n";
                    echo "<td>&nbsp;</td>\n";
                    echo "</tr>\n";             
                    }
                echo "<tr>\n";           
                echo "<td class=\"user\">".$user."</td>\n";
                echo "<td>".$file."</td>\n";
                echo "</tr>\n";
                $cuser = $user;
                }
            else {
                echo "<tr>\n";
                echo "<td>&nbsp;</td>\n";
                echo "<td>&nbsp;</td>\n";
                echo "<td>".$file."</td>\n";   
                echo "</tr>\n";             
                }
            $first = false;
            }
    }
    echo "</table>\n";
    ?>

Viel Spaß ;)
« Last Edit: February 18, 2012, 03:16:21 pm by Mittelerde »