11#! /bin/bash
22# info: add ftp account for web domain.
3- # options: USER DOMAIN FTP_USER FTP_PASSWORD FTP_PATH
3+ # options: USER DOMAIN FTP_USER FTP_PASSWORD [ FTP_PATH]
44#
5- # The function creates addutional ftp account for web domain.
5+ # The function creates additional ftp account for web domain.
66
77
88# ----------------------------------------------------------#
@@ -38,23 +38,20 @@ is_object_valid 'user' 'USER' "$user"
3838is_object_unsuspended ' user' ' USER' " $user "
3939is_object_valid ' web' ' DOMAIN' " $domain "
4040is_object_unsuspended ' web' ' DOMAIN' " $domain "
41-
42-
43- # ----------------------------------------------------------#
44- # Action #
45- # ----------------------------------------------------------#
46-
47- get_domain_values ' web'
4841check_ftp_user=$( grep " ^$ftp_user :" /etc/passwd)
4942if [ ! -z " $check_ftp_user " ] && [ " $FTP_USER " != " $ftp_user " ]; then
5043 echo " Error: ftp user $ftp_user already exists"
5144 log_event " $E_EXISTS " " $EVENT "
5245 exit $E_EXISTS
5346fi
5447
55- if [ ! -z " $FTP_USER " ]; then
56- /usr/sbin/userdel -f $FTP_USER > /dev/null 2>&1
57- fi
48+
49+ # ----------------------------------------------------------#
50+ # Action #
51+ # ----------------------------------------------------------#
52+
53+ # Get domain values
54+ get_domain_values ' web'
5855
5956# Define ftp user shell
6057if [ -z " $FTP_SHELL " ]; then
7067if [ -z " $ftp_path " ]; then
7168 ftp_path=" $HOMEDIR /$user /web/$domain "
7269else
70+ # Validating path
7371 ftp_path=$( readlink -f " $HOMEDIR /$user /web/$domain /$ftp_path " )
7472 if [ -z " $( echo $ftp_path | grep $HOMEDIR /$user /web/$domain ) " ]; then
7573 echo " Error: path $ftp_path is invalid"
7674 log_event " $E_INVALID " " $EVENT "
7775 exit $E_INVALID
7876 fi
77+ # MKDIR if path doesn't exist
78+ if [ ! -e $ftp_path ]; then
79+ mkdir -p $ftp_path
80+ chown $user :$user $ftp_path
81+ chmod 751 $ftp_path
82+ fi
7983fi
8084
81- # Create ftp docroot
82- mkdir -p $ftp_path
83- chown $user :$user $ftp_path
84- chmod 751 $ftp_path
85-
86- # Adding user
85+ # Adding ftp user
8786/usr/sbin/useradd $ftp_user \
8887 -s $shell \
8988 -o -u $( id -u $user ) \
@@ -97,15 +96,23 @@ ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
9796# Vesta #
9897# ----------------------------------------------------------#
9998
99+ # Concatenating ftp variables
100+ if [ ! -z " $FTP_USER " ]; then
101+ ftp_user=" $FTP_USER :$ftp_user "
102+ ftp_md5=" $FTP_MD5 :$ftp_md5 "
103+ ftp_path=" $FTP_PATH :$ftp_path "
104+ fi
105+
106+ # Adding new key into web.conf
107+ add_object_key " web" ' DOMAIN' " $domain " ' FTP_PATH' ' PROXY'
108+
100109# Update config
101110update_object_value ' web' ' DOMAIN' " $domain " ' $FTP_USER' " $ftp_user "
102111update_object_value ' web' ' DOMAIN' " $domain " ' $FTP_MD5' " $ftp_md5 "
103-
104- add_object_key " web" ' DOMAIN' " $domain " ' FTP_PATH' ' PROXY'
105112update_object_value ' web' ' DOMAIN' " $domain " ' $FTP_PATH' " $ftp_path "
106113
107114# Logging
108- log_history " added ftp account $ftp_user for $domain "
115+ log_history " added ftp account ${1} _ ${3} for $domain "
109116log_event " $OK " " $EVENT "
110117
111118exit
0 commit comments