Subversion Repositories ALCASAR

Rev

Rev 789 | Rev 840 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 789 Rev 790
1
#/bin/bash
1
#/bin/bash
2
# $Id: alcasar-logout.sh 789 2012-01-10 22:05:05Z richard $
2
# $Id: alcasar-logout.sh 790 2012-01-12 23:23:59Z richard $
3
 
3
 
4
# alcasar-logout.sh
4
# alcasar-logout.sh
5
# by Richard REY
5
# by Rexy
6
# This script is distributed under the Gnu General Public License (GPL)
6
# This script is distributed under the Gnu General Public License (GPL)
7
 
7
 
8
# Déconnexion d'un ou de tous les usagers
8
# Déconnexion d'un ou de tous les usagers
9
# One user (or all users) disconnect
9
# One user (or all users) disconnect
10
 
10
 
11
macallowed_file="/usr/local/etc/alcasar-macallowed"
11
macallowed_file="/usr/local/etc/alcasar-macallowed"
12
radiussecret="ci0wkfI9"
12
radiussecret=""
13
OLDIFS=$IFS
13
OLDIFS=$IFS
14
IFS=$'\n'
14
IFS=$'\n'
15
 
15
 
16
usage="Usage: alcasar-logout.sh {user_name} | {all}"
16
usage="Usage: alcasar-logout.sh {user_name} | {all}"
17
nb_args=$#
17
nb_args=$#
18
args=$1
18
args=$1
19
if [ $nb_args -eq 0 ]
19
if [ $nb_args -eq 0 ]
20
then
20
then
21
	nb_args=1
21
	nb_args=1
22
	args="-h"
22
	args="-h"
23
fi
23
fi
24
case $args in
24
case $args in
25
	-\? | -h* | --h*)
25
	-\? | -h* | --h*)
26
		echo "$usage"
26
		echo "$usage"
27
		exit 0
27
		exit 0
28
		;;
28
		;;
29
	all)
29
	all)
30
# on traite chaque équipements connus de chilli
30
# on traite chaque équipements connus de chilli
31
		for system in `/usr/sbin/chilli_query list |grep -v "\.0\.0\.0"`
31
		for system in `/usr/sbin/chilli_query list |grep -v "\.0\.0\.0"`
32
		do
32
		do
33
			active_session=`echo $system |cut -d" " -f5`
33
			active_session=`echo $system |cut -d" " -f5`
34
			active_mac=`echo $system | cut -d" " -f1`
34
			active_mac=`echo $system | cut -d" " -f1`
35
# on ne traite que les équipements exploitées par un usager authentifié 
35
# on ne traite que les équipements exploitées par un usager authentifié 
36
			if [[ $(expr $active_session) -eq 1 ]]
36
			if [[ $(expr $active_session) -eq 1 ]]
37
			then
37
			then
38
# on ne traite pas les équipements en macallowed 
38
# on ne traite pas les équipements en macallowed 
39
				mac_allowed=`cat $macallowed_file |grep $active_mac | wc -l`
39
				mac_allowed=`cat $macallowed_file |grep $active_mac | wc -l`
40
				if [ $mac_allowed -eq 0 ]
40
				if [ $mac_allowed -eq 0 ]
41
				then
41
				then
42
					/usr/sbin/chilli_query logout $active_mac
42
					/usr/sbin/chilli_query logout $active_mac
43
				fi
43
				fi
44
			fi
44
			fi
45
		done
45
		done
46
		;;
46
		;;
47
	*)
47
	*)
48
		echo "User-Name = $args" | /usr/bin/radclient 127.0.0.1:3799 40 $radiussecret
48
		echo "User-Name = $args" | /usr/bin/radclient 127.0.0.1:3799 40 $radiussecret
49
		;;
49
		;;
50
esac
50
esac
51
IFS=$OLDIFS
51
IFS=$OLDIFS
52
 
52
 
53
 
53