mirror of
https://github.com/serghey-rodin/vesta.git
synced 2026-02-25 15:51:07 +01:00
136 lines
3.1 KiB
Bash
Executable File
136 lines
3.1 KiB
Bash
Executable File
#!/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
|