| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- is_sys_ip_free() {
- # Parsing system ips
- ip_list=$(/sbin/ifconfig|grep 'inet addr:'|cut -f 2 -d ':'|cut -f 1 -d " ")
- # Checking ip existance
- ip_check=$(echo "$ip_list"|grep -w "$ip")
- if [ -n "$ip_check" ] || [ -e "$V_IPS/$ip" ]; then
- echo "Error: IP exist"
- log_event 'debug' "$E_EXISTS $V_EVENT"
- exit $E_EXISTS
- fi
- }
- get_next_interface_number() {
- # Parsing ifconfig
- i=$(/sbin/ifconfig -a |grep -w "$interface"|cut -f1 -d ' '|\
- tail -n 1|cut -f 2 -d :)
- # Checking result
- if [ "$i" = "$interface" ]; then
- n=0
- else
- n=$((i + 1))
- fi
- echo ":$n"
- }
- is_sys_ip_valid() {
- # Parsing ifconfig
- check_ifc=$(/sbin/ifconfig |grep "inet addr:$ip")
- # Checking ip existance
- if [ ! -e "$V_IPS/$ip" ] || [ -z "$check_ifc" ]; then
- echo "Error: IP not exist"
- log_event 'debug' "$E_NOTEXIST $V_EVENT"
- exit $E_NOTEXIST
- fi
- }
- is_ip_key_empty() {
- key="$1"
- # Parsing ip
- string=$(cat $V_IPS/$ip )
- # Parsing key=value
- for keys in $string; do
- eval ${keys%%=*}=${keys#*=}
- done
- # Self reference
- eval value="$key"
- # Checkng key
- if [ ! -z "$value" ] && [ "$value" != '0' ]; then
- echo "Error: value is not empty = $value "
- log_event 'debug' "$E_EXISTS $V_EVENT"
- exit $E_EXISTS
- fi
- }
- update_sys_ip_value() {
- key="$1"
- value="$2"
- # Defining conf
- conf="$V_IPS/$ip"
- # Parsing conf
- str=$(cat $conf)
- # Reading key=values
- for keys in $str; do
- eval ${keys%%=*}=${keys#*=}
- done
- # Define clean key
- c_key=$(echo "${key//$/}")
- eval old="${key}"
- # Escaping slashes
- old=$(echo "$old" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g')
- new=$(echo "$value" | sed -e 's/\\/\\\\/g' -e 's/&/\\&/g' -e 's/\//\\\//g')
- # Updating conf
- sed -i "$str_number s/$c_key='${old//\*/\\*}'/$c_key='${new//\*/\\*}'/g"\
- $conf
- }
- is_ip_avalable() {
- # Checking ip existance
- if [ ! -e "$V_IPS/$ip" ]; then
- echo "Error: IP not exist"
- log_event 'debug' "$E_NOTEXIST $V_EVENT"
- exit $E_NOTEXIST
- fi
- # Parsing ip data
- ip_data=$(cat $V_IPS/$ip)
- ip_owner=$(echo "$ip_data" | grep 'OWNER=' | cut -f 2 -d \' )
- ip_status=$(echo "$ip_data" | grep 'STATUS=' | cut -f 2 -d \' )
- # Parsing user data
- if [ 'vesta' = "$ip_owner" ] && [ "$ip_status" = 'shared' ]; then
- ip_shared='yes'
- else
- ip_shared='no'
- fi
- if [ "$ip_owner" != "$user" ] && [ "$ip_shared" != 'yes' ]; then
- echo "Error: ip not owned by user"
- log_event 'debug' "$E_FORBIDEN $V_EVENT"
- exit $E_FORBIDEN
- fi
- }
- is_sys_ip_owner() {
- # Parsing ip
- ip="$IP"
- ip_owner=$(grep 'OWNER=' $V_IPS/$ip|cut -f 2 -d \')
- if [ "$ip_owner" != "$user" ]; then
- echo "Error: IP not owned"
- log_event 'debug' "$E_FORBIDEN $V_EVENT"
- exit $E_FORBIDEN
- fi
- }
- get_ip_name() {
- # Prinitng name
- grep "NAME=" $V_IPS/$ip |cut -f 2 -d \'
- }
- increase_ip_value() {
- sip=${1-ip}
- USER=$user
- web_key='U_WEB_DOMAINS'
- usr_key='U_SYS_USERS'
- # Parsing values
- current_web=$(grep "$web_key=" $V_IPS/$sip |cut -f 2 -d \')
- current_usr=$(grep "$usr_key=" $V_IPS/$sip |cut -f 2 -d \')
- # Checking result
- if [ -z "$current_web" ]; then
- echo "Error: Parsing error"
- log_event 'debug' "$E_PARSING $V_EVENT"
- exit $E_PARSING
- fi
- # +1 webdomain
- new_web=$((current_web + 1))
- # +1 user
- if [ -z "$current_usr" ]; then
- new_usr="$USER"
- else
- check_usr=$(echo -e "${current_usr//,/\n}" |grep -w $USER)
- if [ -z "$check_usr" ]; then
- new_usr="$current_usr,$USER"
- else
- new_usr="$current_usr"
- fi
- fi
- # Changing config
- sed -i "s/$web_key='$current_web'/$web_key='$new_web'/g" $V_IPS/$ip
- sed -i "s/$usr_key='$current_usr'/$usr_key='$new_usr'/g" $V_IPS/$ip
- }
- decrease_ip_value() {
- sip=${1-ip}
- USER=$user
- web_key='U_WEB_DOMAINS'
- usr_key='U_SYS_USERS'
- # Parsing values
- current_web=$(grep "$web_key=" $V_IPS/$sip |cut -f 2 -d \')
- current_usr=$(grep "$usr_key=" $V_IPS/$sip |cut -f 2 -d \')
- # Checking result
- if [ -z "$current_web" ]; then
- echo "Error: Parsing error"
- log_event 'debug' "$E_PARSING $V_EVENT"
- exit $E_PARSING
- fi
- # -1 webdomain
- new_web=$((current_web - 1))
- # -1 user
- check_ip=$(grep $sip $V_USERS/$user/web.conf |wc -l)
- if [ "$check_ip" -lt 2 ]; then
- new_usr=$(echo "$current_usr" |\
- sed -e "s/,/\n/g"|\
- sed -e "s/^$user$//g"|\
- sed -e "/^$/d"|\
- sed -e ':a;N;$!ba;s/\n/,/g')
- else
- new_usr="$current_usr"
- fi
- # Changing config
- sed -i "s/$web_key='$current_web'/$web_key='$new_web'/g" $V_IPS/$sip
- sed -i "s/$usr_key='$current_usr'/$usr_key='$new_usr'/g" $V_IPS/$sip
- }
- get_sys_ip_value() {
- key="$1"
- # Parsing domains
- string=$( cat $V_IPS/$ip )
- # Parsing key=value
- for keys in $string; do
- eval ${keys%%=*}=${keys#*=}
- done
- # Self reference
- eval value="$key"
- # Print value
- echo "$value"
- }
- get_current_interface() {
- # Parsing ifconfig
- i=$(/sbin/ifconfig |grep -B1 "addr:$ip "|head -n 1 |cut -f 1 -d ' ')
- # Checking result
- if [ -z "$i" ]; then
- echo "Error: IP not exist"
- log_event 'debug' "$E_NOTEXIST $V_EVENT"
- exit $E_NOTEXIST
- fi
- # Checking ip is alias
- check_alias=$(echo $i| cut -s -f 2 -d :)
- if [ -z "$check_alias" ]; then
- echo "Error: Main IP on interface"
- log_event 'debug' "$E_FORBIDEN $V_EVENT"
- exit $E_FORBIDEN
- fi
- echo "$i"
- }
- ip_add_vesta() {
- # Filling ip values
- ip_data="OWNER='$user'"
- ip_data="$ip_data\nSTATUS='$ip_status'"
- ip_data="$ip_data\nNAME='$ip_name'"
- ip_data="$ip_data\nU_SYS_USERS=''"
- ip_data="$ip_data\nU_WEB_DOMAINS='0'"
- ip_data="$ip_data\nINTERFACE='$interface'"
- ip_data="$ip_data\nNETMASK='$mask'"
- ip_data="$ip_data\nDATE='$V_DATE'"
- # Adding ip
- echo -e "$ip_data" >$V_IPS/$ip
- }
- ip_add_startup() {
- # Filling ip values
- ip_data="# Added by vesta $V_SCRIPT"
- ip_data="$ip_data\nDEVICE=$iface"
- ip_data="$ip_data\nBOOTPROTO=static\nONBOOT=yes"
- ip_data="$ip_data\nIPADDR=$ip"
- ip_data="$ip_data\nNETMASK=$mask"
- # Adding ip
- echo -e "$ip_data" >$iconf-$iface
- }
- ip_owner_search(){
- for ip in $(ls $V_IPS/); do
- check_owner=$(grep "OWNER='$user'" $V_IPS/$ip)
- if [ ! -z "$check_owner" ]; then
- echo "$ip"
- fi
- done
- }
|