Synology DiskStation, Liste per Samba/smb angemeldeter Benutzer
Manchmal möchte man allen Nutzern im Netz die Möglichkeit geben zu sehen, wer im Haus gerade anwesend ist bzw. eine Samba/smb-Verbindung zur DiskStation aufgebaut hat.
Im Folgenden ein Weg, diese Information über einen Webserver auf der DiskStation unter einer Adresse wie http://diskstation.intern/benutzer.php bereitzustellen:
1. Voraussetzung ist die Installation der Pakete WebStation und PHP 7.0.
2. Im Aufgabenplaner ein benutzerdefiniertes Script, welches alle fünf Minuten als root ausgeführt wird, einrichten:
/bin/smbstatus -S |cut -f 3,4 | grep . | sort | uniq | tee /tmp/benutzer-list date | tee /tmp/benutzer-date
3. Unter /volume1/web/benutzer.php das Ausgabescript ablegen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="expires" content="0"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="refresh" content="600;url=/benutzer.php"> <title>Aktuell angemeldete Benutzer</title> </head> <body text="#00335B" bgcolor="#FFFFFF" link="#F49807" vlink="#F49807" alink="#FFCC33" style="width: 95%; margin-left:auto; margin-right:auto; font-family: Helvetica, Arial, Geneva, sans-serif;"> <table border="0"> <tr> <td width="90%"> <h3><b>Aktuell angemeldete Benutzer</b></h3> </td> <td align=right><img src="Logo.png"></td> </tr> </table> <?php echo "<table>"; echo "<tr><th width=\"130\" align=\"left\">User</th><th align=\"left\">Workstation</th></tr>"; $file = '/tmp/benutzer-list'; $file_handle = fopen($file, 'r'); while (!feof($file_handle)) { $line = fgets($file_handle); $spline = preg_split('/\s+/', $line); if (!empty($spline[0])) { echo "<tr><td>"; echo $spline[0]; echo "</td><td>"; echo gethostbyaddr($spline[1]); echo "</td></tr>"; } } fclose($file_handle); echo "</table><br>"; echo "Anzahl: "; echo shell_exec("wc -l < /tmp/benutzer-list"); echo "<br><br>"; echo shell_exec("cat /tmp/benutzer-date"); ?> </body> </html>
4. In /etc.defaults/samba/smb.conf und /etc/samba/smb.conf diese Zeilen ergänzen und samba neu starten (/usr/syno/etc/rc.sysv/S80samba.sh restart):
socket options=SO_KEEPALIVE TCP_KEEPCNT=4 TCP_KEEPIDLE=240 TCP_KEEPINTVL=15 deadtime=10 keepalive=150
Synology DiskStation, Liste per Samba/smb angemeldeter Benutzer Read More »