OK!
Hier Version 1.0 beta .... funktioniert und macht genau das, was es
soll! Ich konnte allerdings noch keinen Massentest durchführen sondern
habe immer nur meinen eigenen Login und die Mac des Unifi-Controllers
abwechselnd benutzt ... anders ging es nicht (remote + Wochenende)
-----------------------------------------------------------------------------
Scriptname: disconnect-user.sh
Cronjob: in jeder großen Pause und am Ende des Tages!
#!/bin/bash
# Radiussecret wird automatisch ausgelesen:
secret=$(cat /etc/chilli/hs.conf |grep ^radiussecret | cut -d "\"" -f 2)
# Liste aller angemeldeten WLAN-User, die in den Pausen disconnected
# werden sollen.
# User die nur als "MAC-Adresse" auftauchen duerfen ohne Auth ins WLAN.
# Diese sollen beim disconnect natürlich unberücksichtigt lassen.
echo
echo
echo "Folgende User sind angemeldet:"
echo "=============================="
LIST=$(chilli_query list | grep pass | awk '{print $6}' )
echo $LIST
echo
echo "Die User werden abgemeldet:"
echo "==========================="
for i in $LIST
do
# Wenn Username eine MAC-Adr ist, ist er 18 Zeichen (incl CR) lang --
# sonst nur 6 (bzw 7); geprüft wird daher auf 12 Zeichen:
userlength=$(echo $i | wc -c)
if [ $userlength -gt 12 ]
then
echo "$i bleibt angemeldet!"
else
#echo $LIST
echo "User-Name=$i" | radclient -x 127.0.0.1:3779 disconnect
"$secret" | grep User-Name
fi
done
echo
echo
echo "Nach 'disconnect' sind noch angemeldet:"
echo "======================================="
chilli_query list | grep pass | awk '{print $6}'
echo
echo
exit 0
-----------------------------------------------------------------------------
Zusätzlich habe ich einen Code-Schnipsel von Jesko (?) benutzt, der alle
angemeldeten User übersichtlich und mit allen notwendigen Angaben anzeigt:
Scriptname: user-online.sh (für root!)
#!/bin/bash
echo
echo "Folgende User sind angemeldet:"
echo "=============================="
echo
chilli_query list | grep pass | awk 'BEGIN {printf("%10s %18s %30s %45s
\n" ,"USER", "IP", "MAC", "Initial-URL")} {printf("%10s %18s %30s %45s
\n", $6, $2, $1, $15)}'
echo
echo
-----------------------------------------------------------------------------
Damit läßt sich doch jetzt was anfangen!
Tip-Top!
Michael
--
Systemdaten:
============
- virtualisiert mit Proxmox 2.3
- linuxmuster.net 6.0.46
- IPFire 2.15
- Linbo 2.1.10-0
- Ubuntu 14.04 Clients (trusty714-Vorlage)
- leoclient1 mit WinXP im offline-Modus
- Moodle 2.7.8 (extern mit LDAPS und openLML-Modul)
- WLAN: Unifi-APs (UAP-AC) am CoovaChilli
- Info-Boards: tabula.info Server + RasPi-Clients
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user