@@ -318,37 +318,51 @@ rebuild_web_domain_conf() {
318318 $WEBTPL /$PROXY_SYSTEM /$PROXY .sh $user $domain $ip $HOMEDIR $docroot
319319 fi
320320
321- # Checking ftp
322- if [ ! -z " $FTP_USER " ]; then
323- if [ -z " $( grep ^$FTP_USER : /etc/passwd) " ]; then
324- shell=' /sbin/nologin'
325- if [ -e " /usr/bin/rssh" ]; then
326- shell=' /usr/bin/rssh'
327- fi
328- /usr/sbin/useradd $FTP_USER \
321+ # Defining ftp user shell
322+ if [ -z " $FTP_SHELL " ]; then
323+ shell=' /sbin/nologin'
324+ if [ -e " /usr/bin/rssh" ]; then
325+ shell=' /usr/bin/rssh'
326+ fi
327+ else
328+ shell=$FTP_SHELL
329+ fi
330+
331+ # Checking ftp users
332+ for ftp_user in ${FTP_USER//:/ } ; do
333+ if [ -z " $( grep ^$ftp_user : /etc/passwd) " ]; then
334+ # Parsing ftp user variables
335+ position=$( echo $FTP_USER | tr ' :' ' \n' | grep -n ' ' | \
336+ grep " :$ftp_user $" | cut -f 1 -d:)
337+ ftp_path=$( echo $FTP_PATH | tr ' :' ' \n' | grep -n ' ' | \
338+ grep " ^$position :" | cut -f 2 -d :)
339+ ftp_md5=$( echo $FTP_MD5 | tr ' :' ' \n' | grep -n ' ' | \
340+ grep " ^$position :" | cut -f 2 -d :)
341+
342+ # Adding ftp user
343+ /usr/sbin/useradd $ftp_user \
329344 -s $shell \
330345 -o -u $( id -u $user ) \
331346 -g $( id -u $user ) \
332- -M -d " $HOMEDIR /$user /web/$domain " > /dev/null 2>&1
347+ -M -d " $HOMEDIR /$user /web/$domain ${ftp_path} " > /dev/null 2>&1
333348
334- # Update password
335- shadow=$( grep " ^$FTP_USER :" /etc/shadow)
349+ # Updating ftp user password
350+ shadow=$( grep " ^$ftp_user :" /etc/shadow)
336351 shdw3=$( echo " $shadow " | cut -f3 -d :)
337352 shdw4=$( echo " $shadow " | cut -f4 -d :)
338353 shdw5=$( echo " $shadow " | cut -f5 -d :)
339354 shdw6=$( echo " $shadow " | cut -f6 -d :)
340355 shdw7=$( echo " $shadow " | cut -f7 -d :)
341356 shdw8=$( echo " $shadow " | cut -f8 -d :)
342357 shdw9=$( echo " $shadow " | cut -f9 -d :)
343- shadow_str=" $FTP_USER : $FTP_MD5 :$shdw3 :$shdw4 :$shdw5 :$shdw6 "
358+ shadow_str=" $ftp_user : $ftp_md5 :$shdw3 :$shdw4 :$shdw5 :$shdw6 "
344359 shadow_str=" $shadow_str :$shdw7 :$shdw8 :$shdw9 "
345-
346360 chmod u+w /etc/shadow
347- sed -i " /^$FTP_USER :*/d" /etc/shadow
361+ sed -i " /^$ftp_user :*/d" /etc/shadow
348362 echo " $shadow_str " >> /etc/shadow
349363 chmod u-w /etc/shadow
350364 fi
351- fi
365+ done
352366}
353367
354368# DNS domain rebuild
0 commit comments