diff --git a/bin/v-add-mail-domain b/bin/v-add-mail-domain index 2676e750..6681035f 100755 --- a/bin/v-add-mail-domain +++ b/bin/v-add-mail-domain @@ -45,6 +45,7 @@ is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_domain_new 'mail' "$domain" is_package_full 'MAIL_DOMAINS' +is_dir_symlink $HOMEDIR/$user/mail #----------------------------------------------------------# diff --git a/bin/v-add-web-domain b/bin/v-add-web-domain index 018adcb4..b937330c 100755 --- a/bin/v-add-web-domain +++ b/bin/v-add-web-domain @@ -47,6 +47,7 @@ is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_package_full 'WEB_DOMAINS' 'WEB_ALIASES' is_domain_new 'web' "$domain,$aliases" +is_dir_symlink $HOMEDIR/$user/web if [ ! -z "$ip" ]; then is_ip_valid "$ip" "$user" else diff --git a/func/main.sh b/func/main.sh index a79cb2a0..e11ba6b3 100644 --- a/func/main.sh +++ b/func/main.sh @@ -287,6 +287,13 @@ is_hash_valid() { fi } +# Check if directory is a symlink +is_dir_symlink() { + if [[ -L "$1" ]]; then + check_result $E_FORBIDEN "$1 directory is a symlink" + fi +} + # Get object value get_object_value() { object=$(grep "$2='$3'" $USER_DATA/$1.conf) diff --git a/func/rebuild.sh b/func/rebuild.sh index a6025928..9a1c0f47 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -71,6 +71,9 @@ rebuild_user_conf() { echo "$BIN/v-update-web-domains-disk $user" \ >> $VESTA/data/queue/disk.pipe + if [[ -L "$HOMEDIR/$user/web" ]]; then + rm $HOMEDIR/$user/web + fi mkdir -p $HOMEDIR/$user/conf/web mkdir -p $HOMEDIR/$user/web mkdir -p $HOMEDIR/$user/tmp @@ -105,6 +108,9 @@ rebuild_user_conf() { echo "$BIN/v-update-mail-domains-disk $user" \ >> $VESTA/data/queue/disk.pipe + if [[ -L "$HOMEDIR/$user/mail" ]]; then + rm $HOMEDIR/$user/mail + fi mkdir -p $HOMEDIR/$user/conf/mail mkdir -p $HOMEDIR/$user/mail chmod 751 $HOMEDIR/$user/mail