#!/bin/bash # info: delete user # options: user # # This function deletes a certain user and all his resourses such as domains, # databases, cron jobs, etc. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 # Importing variables source $VESTA/conf/vars.conf source $V_CONF/vesta.conf source $V_FUNC/shared.func source $V_FUNC/domain.func source $V_FUNC/db.func source $V_FUNC/ip.func #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# # Checking arg number check_args '1' "$#" 'user' # Checking argument format format_validation 'user' # Checking user is_user_valid # Checking user is active is_user_suspended # Checking user vesta if [ "$user" = 'vesta' ]; then exit fi #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Checking web system is enabled if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then $V_BIN/v_unsuspend_web_domains $user $V_BIN/v_delete_web_domains $user rv="$?" if [ "$rv" -ne '0' ]; then exit $rv fi fi # Checking dns system is enabled if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then $V_BIN/v_unsuspend_dns_domains $user $V_BIN/v_delete_dns_domains $user rv="$?" if [ "$rv" -ne '0' ]; then exit $rv fi fi # Checking mail system is enabled if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then $V_BIN/v_unsuspend_mail_domains $user $V_BIN/v_del_mail_domains $user rv="$?" if [ "$rv" -ne '0' ]; then exit $rv fi fi # Checking db system is enabled if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then $V_BIN/v_unsuspend_db_bases $user $V_BIN/v_delete_db_dbases $user rv="$?" if [ "$rv" -ne '0' ]; then exit $rv fi fi # Checking ip $V_BIN/v_delete_user_ips "$user" rv="$?" if [ "$rv" -ne '0' ]; then exit $rv fi # Deleteing user pipes diskp=$(grep -n " $user$" $V_QUEUE/disk.pipe|cut -d : -f 1|sort -n -r) trafp=$(grep -n " $user$" $V_QUEUE/traffic.pipe|cut -d : -f 1|sort -n -r) statp=$(grep -n "/$user/" $V_QUEUE/stats.pipe|cut -d : -f 1|sort -n -r) if [ ! -z "$diskp" ]; then for str in $diskp; do sed -i "$str d" $V_QUEUE/disk.pipe done fi if [ ! -z "$trafp" ]; then for str in $trafp; do sed -i "$str d" $V_QUEUE/traffic.pipe done fi if [ ! -z "$statp" ]; then for str in $statp; do sed -i "$str d" $V_QUEUE/stats.pipe done fi # Removing system user /usr/sbin/userdel -f $user rm -rf $V_HOME/$user rm -f /var/spool/mail/$user rm -f /var/spool/cron/$user rm -rf $V_USERS/$user #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Logging log_event 'system' "$V_EVENT" exit