| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- #!/bin/bash
- # info: change domain owner
- # options: DOMAIN USER
- #
- # The function of changing domain ownership.
- #----------------------------------------------------------#
- # Variable&Function #
- #----------------------------------------------------------#
- # Argument definition
- domain=$1
- user=$2
- # Includes
- source $VESTA/func/ip.sh
- source $VESTA/func/main.sh
- source $VESTA/conf/vesta.conf
- #----------------------------------------------------------#
- # Verifications #
- #----------------------------------------------------------#
- check_args '2' "$#" 'DOMAIN USER'
- is_format_valid 'domain' 'user'
- is_object_valid 'user' 'USER' "$user"
- is_object_unsuspended 'user' 'USER' "$user"
- owner=$(v-search-domain-owner $domain)
- if [ -z "$owner" ]; then
- check_result $E_NOTEXIST "domain $domain doesn't exist"
- fi
- if [ "$owner" = "$user" ]; then
- exit
- fi
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- # WEB domain
- web_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/web.conf)
- if [ ! -z "$web_data" ]; then
- $BIN/v-suspend-web-domain $owner $domain >> /dev/null 2>&1
- eval $web_data
- # Change IP
- if [ ! -z "$ip" ]; then
- web_data=$(echo "$web_data" | sed "s/IP='$IP'/IP='$ip'/")
- fi
- # Check SSL
- if [ "$SSL" = 'yes' ]; then
- ssl_crt=$VESTA/data/users/$owner/ssl/$domain.crt
- ssl_key=$VESTA/data/users/$owner/ssl/$domain.key
- ssl_ca=$VESTA/data/users/$owner/ssl/$domain.ca
- ssl_pem=$VESTA/data/users/$owner/ssl/$domain.pem
- mv $ssl_crt $VESTA/data/users/$user/ssl/
- mv $ssl_key $VESTA/data/users/$user/ssl/
- mv $ssl_ca $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
- mv $ssl_pem $VESTA/data/users/$user/ssl/ >> /dev/null 2>&1
- rm -f $HOMEDIR/$owner/conf/web/ssl.$domain.*
- fi
- # Check ftp user account
- if [ ! -z "$FTP_USER" ]; then
- /usr/sbin/userdel -f $FTP_USER >> /dev/null 2>&1
- old_str="FTP_USER='$FTP_USER'"
- new_str=$(echo "$old_str" | sed "s/${owner}_/${user}_/")
- web_data=$(echo "$web_data" | sed "s/$old_str/$new_str/")
- fi
- # Move config
- sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/web.conf
- echo "$web_data" >> $VESTA/data/users/$user/web.conf
- # Move data
- mv $HOMEDIR/$owner/web/$domain $HOMEDIR/$user/web/
- # Change ownership
- find $HOMEDIR/$user/web/$domain -user $owner \
- -exec chown -h $user:$user {} \;
- # Rebuild config
- $BIN/v-unsuspend-web-domain $user $domain no >> /dev/null 2>&1
- $BIN/v-rebuild-web-domains $owner no
- $BIN/v-rebuild-web-domains $user
- fi
- # DNS domain
- dns_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/dns.conf)
- if [ ! -z "$dns_data" ]; then
- eval $dns_data
- # Change IP
- if [ ! -z "$ip" ]; then
- dns_data=$(echo "$dns_data" | sed "s/IP='$IP'/IP='$ip'/")
- sed -i "s/$IP/$ip/g" $VESTA/data/users/$owner/dns/$domain.conf
- fi
- # Move config
- sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/dns.conf
- echo "$dns_data" >> $VESTA/data/users/$user/dns.conf
- # Move dns records
- mv $VESTA/data/users/$owner/dns/$domain.conf \
- $VESTA/data/users/$user/dns/
- # Rebuild config
- $BIN/v-unsuspend-dns-domain $user $domain no >> /dev/null 2>&1
- $BIN/v-rebuild-dns-domains $owner no
- $BIN/v-rebuild-dns-domains $user
- # Resync dns cluster
- if [ ! -z "$DNS_CLUSTER" ]; then
- v-sync-dns-cluster
- fi
- fi
- # MAIL domain
- mail_data=$(grep "DOMAIN='$domain'" $VESTA/data/users/$owner/mail.conf)
- if [ ! -z "$mail_data" ]; then
- # Move config
- sed -i "/DOMAIN='$domain'/d" $VESTA/data/users/$owner/mail.conf
- echo "$mail_data" >> $VESTA/data/users/$user/mail.conf
- mv -f $VESTA/data/users/$owner/mail/$domain.conf \
- $VESTA/data/users/$user/mail/
- # Move DKIM
- if [ -e "$VESTA/data/users/$owner/mail/$domain.pem" ]; then
- mv -f $VESTA/data/users/$owner/mail/$domain.pem \
- $VESTA/data/users/$user/mail/
- mv -f $VESTA/data/users/$owner/mail/$domain.pub \
- $VESTA/data/users/$user/mail/
- fi
- # Move data
- mv $HOMEDIR/$owner/mail/$domain $HOMEDIR/$user/mail/
- # Change ownership
- find $HOMEDIR/$user/mail/$domain -user $owner \
- -exec chown -h $user {} \;
- # Rebuild config
- $BIN/v-unsuspend-mail-domain $user $domain no >> /dev/null 2>&1
- $BIN/v-rebuild-mail-domains $owner no
- $BIN/v-rebuild-mail-domains $user
- fi
- # Update counters
- $BIN/v-update-user-counters $owner
- $BIN/v-update-user-counters $user
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- # Logging
- log_event "$OK" "$ARGUMENTS"
- exit
|