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

Antwort per Email an