1
0
mirror of https://github.com/QSCTech/zjunet.git synced 2026-01-22 11:44:48 +08:00

user enable & user disable, fixes #12, fixes #13

This commit is contained in:
Zeno Zeng 2014-09-21 22:55:00 +08:00
parent 9d62c2019c
commit b5db28c519
4 changed files with 58 additions and 36 deletions

57
user.sh
View File

@ -19,53 +19,68 @@
# <http://www.gnu.org/licenses/>.
# 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

20
vpn.sh
View File

@ -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

View File

@ -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."

View File

@ -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