diff --git a/user.sh b/user.sh index 1e3cdea..58135a8 100755 --- a/user.sh +++ b/user.sh @@ -19,53 +19,68 @@ # . # init -DIR="$HOME/.zjunet" -mkdir -p $DIR +users_enabled="$HOME/.zjunet/users-enabled" +users_disabled="$HOME/.zjunet/users-disabled" +mkdir -p $users_enabled +mkdir -p $users_disabled getall() { - ls -1A $DIR | xargs | tr "\n" " " + ls -1A $users_enabled | xargs | tr "\n" " " } # dispatch case "$1" in + enable) + users=$(ls -1A $users_disabled | xargs | tr "\n" " ") + read -p "Enable User [ ${users}]: " username + mv "${users_disabled}/${username}" "${users_enabled}/${username}" + ;; + + disable) + users=$(getall) + read -p "Disable User [ ${users}]: " username + mv "${users_enabled}/${username}" "${users_disabled}/${username}" + ;; + add) - read -p "USERNAME: " USERNAME - read -p "PASSWORD: " PASSWORD - echo $PASSWORD > "$DIR/${USERNAME}" + read -p "username: " username + read -p "password: " password + echo $password > "$users_enabled/${username}" ;; edit) - read -p "USERNAME: " USERNAME - read -p "PASSWORD: " PASSWORD - echo $PASSWORD > "$DIR/${USERNAME}" + users=$(getall) + read -p "username [ ${users}]: " username + read -p "password: " password + echo $password > "$users_enabled/${username}" ;; delete) - USERS=$(getall) - read -p "Delete User [ ${USERS}]: " USERNAME - rm -i "$DIR/${USERNAME}" + users=$(getall) + read -p "Delete User [ ${users}]: " username + rm -i "$users_enabled/${username}" ;; list) - ls -1A $DIR + ls -1A $users_enabled ;; # Get a user # @private get) - COUNT=$(ls -1A $DIR | wc -l) + count=$(ls -1A $users_enabled | wc -l) if [ "${COUNT}" -eq "0" ]; then echo "No user found. Use 'zjunet user add' to add a user." exit 1 else - if [ "${COUNT}" -gt "1" ]; then - USERS=$(getall) - read -p "Choose User [ ${USERS}]: " USERNAME + if [ "${count}" -gt "1" ]; then + users=$(getall) + read -p "Choose User [ ${users}]: " username else - USERNAME=$(ls -1 $DIR | head -n1) + username=$(ls -1 $users_enabled | head -n1) fi - echo $USERNAME + echo $username fi ;; @@ -77,8 +92,8 @@ case "$1" in # @private getpwd) - USERNAME=$2 - cat "$DIR/${USERNAME}" + username=$2 + cat "${users_enabled}/${username}" ;; *) ${BASEDIR}/zjunet.sh usage diff --git a/vpn.sh b/vpn.sh index 2e33867..5d382ea 100755 --- a/vpn.sh +++ b/vpn.sh @@ -26,16 +26,18 @@ disconnect() { } set_up_routes() { - # IP=$(ip route show 0/0 | cut -d " " -f 3) - # case "$IP" in - # 10.189.*) - # return - # ;; - # 10.171.*) - # return - # ;; - # esac + IP=$(ip route show 0/0 | cut -d " " -f 3) + + case "$IP" in + 10.189.*) + ;; + 10.171.*) + ;; + *) + # 内网静态路由 TODO + ;; + esac # # set up routes here diff --git a/xl2tpd.sh b/xl2tpd.sh index 48e29d0..6f31111 100755 --- a/xl2tpd.sh +++ b/xl2tpd.sh @@ -41,12 +41,15 @@ xl2tpd_restart() { } # wait until ready - for i in $(seq 0 120); do + for i in $(seq 0 10); do if [ -e "/var/run/xl2tpd/l2tp-control" ]; then return 0 fi sleep 1 done + + echo "Fail to start xl2tpd" + exit 1 } xl2tpd_create_lac() { @@ -92,6 +95,8 @@ connect() { tail $PPP_LOG_FILE echo -n > $PPP_LOG_FILE + echo "Try to bring up ppp." + count=$(ip addr show | grep 'inet.*ppp' | grep ' 10.5.' | wc -l) if [ ${count} -gt ${prev_count} ]; then echo "Bring up ppp, done." diff --git a/zjunet.sh b/zjunet.sh index d0c8ccf..8d0787f 100755 --- a/zjunet.sh +++ b/zjunet.sh @@ -43,11 +43,11 @@ zjunet: CLI Tool (VPN/WLAN/DNS) for Zjuer Usage: zjunet [ACTION] Actions: - user add/edit/delete/list User Manager - vpn connect(-c)/disconnect(-d) Connect VPN - wlan login/logout ZJUWLAN - ip Show IP - dns Test and set up DNS Server + user add/edit/delete/list/enable/disable User Manager + vpn connect(-c)/disconnect(-d) Connect VPN + wlan login/logout ZJUWLAN + ip Show IP + dns Test and set up DNS Server EOF ;; esac