diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-08-03 09:18:19 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-08-03 09:18:19 +0000 |
commit | 5f392fc3cf8e94112ed7b15b2038e51f1b2b3800 (patch) | |
tree | 05042f0fe25431266bb325a14f6904ab4d4d68f4 | |
parent | ce1f26c5f10d4a1a2c4c0de789371fedf2d4c88d (diff) | |
download | gsc-5f392fc3cf8e94112ed7b15b2038e51f1b2b3800.tar.gz gsc-5f392fc3cf8e94112ed7b15b2038e51f1b2b3800.tar.bz2 |
vpn/svpnsh: Fix concurrent login recognition
git-svn-id: file:///svnroot/gsc/trunk@338 d2de0444-eb31-0410-8365-af798a554d48
-rw-r--r-- | ChangeLog | 4 | ||||
-rwxr-xr-x | vpn/svpnsh | 10 |
2 files changed, 9 insertions, 5 deletions
@@ -1,8 +1,12 @@ +2009-08-03 Sergey Poznyakoff <gray@gnu.org.ua> + + * vpn/svpnsh: Fix concurrent login recognition. + 2009-03-19 Sergey Poznyakoff <gray@gnu.org.ua> Bugfix in sv_sync_www * cvs/sv_sync_www.c (do_sync): Do not sort the array. This causes malfunction on newly committed hierarchies. 2009-02-13 Sergey Poznyakoff <gray@gnu.org.ua> @@ -1,11 +1,11 @@ #! /bin/sh # svpnsh -- a simple vpn-only shell -# Copyright (C) 2007 Sergey Poznyakoff +# Copyright (C) 2007, 2009 Sergey Poznyakoff # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,29 +15,29 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. PAIR=`sed -n "s/^${USER%%+vpn}=\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}:[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p" /usr/local/etc/vpn.conf` logmsg() { prio=$1 shift - /usr/bin/logger -t vpnsh -p auth.$prio $* + /usr/bin/logger -t svpnsh -p auth.$prio $* } logmsg debug "USER=$USER, PAIR=$PAIR" if [ -z "$PAIR" ]; then logmsg notice "$USER: access denied" exit 1 fi -NLOGINS=`who -q | sed '2,$d' | tr ' ' '\n' | sort | sed '1d' | uniq -c | - awk "\\$2==\"$USER\" { print \\$1 }"` -if [ ${NLOGINS:-0} -gt 1 ] +sdup=`who -q | sed '/^#/d' | tr -s ' ' '\n' | sort | uniq -d | grep "$USER"` + +if [ -n "$sdup" ] then logmsg notice "$USER: too many concurrent logins" exit 1 fi logmsg notice "$USER: starting ppp" sudo /usr/sbin/pppd nodetach notty noauth $PAIR |