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
<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> </td>\n";
echo "<td> </td>\n";
echo "<td> </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> </td>\n";
echo "<td> </td>\n";
echo "<td>".$file."</td>\n";
echo "</tr>\n";
}
$first = false;
}
}
echo "</table>\n";
?>
Viel Spaß