mirror of
https://github.com/myvesta/vesta
synced 2025-07-06 04:51:54 -07:00
multiftp support
This commit is contained in:
parent
d083b12153
commit
179cca9566
2 changed files with 31 additions and 16 deletions
|
@ -70,6 +70,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
|
|
||||||
# Defining config
|
# Defining config
|
||||||
conf=$USER_DATA/user.conf
|
conf=$USER_DATA/user.conf
|
||||||
|
HOME=$HOMEDIR/$user
|
||||||
|
|
||||||
# Defining fileds to select
|
# Defining fileds to select
|
||||||
fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
||||||
|
@ -81,7 +82,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
||||||
$U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
|
$U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
|
||||||
$U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
|
$U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
|
||||||
$U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS
|
$U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS
|
||||||
$U_BACKUPS $LANGUAGE $TIME $DATE'
|
$U_BACKUPS $LANGUAGE $HOME $TIME $DATE'
|
||||||
|
|
||||||
# Listing user
|
# Listing user
|
||||||
case $format in
|
case $format in
|
||||||
|
|
|
@ -318,21 +318,36 @@ rebuild_web_domain_conf() {
|
||||||
$WEBTPL/$PROXY_SYSTEM/$PROXY.sh $user $domain $ip $HOMEDIR $docroot
|
$WEBTPL/$PROXY_SYSTEM/$PROXY.sh $user $domain $ip $HOMEDIR $docroot
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking ftp
|
# Defining ftp user shell
|
||||||
if [ ! -z "$FTP_USER" ]; then
|
if [ -z "$FTP_SHELL" ]; then
|
||||||
if [ -z "$(grep ^$FTP_USER: /etc/passwd)" ]; then
|
shell='/sbin/nologin'
|
||||||
shell='/sbin/nologin'
|
if [ -e "/usr/bin/rssh" ]; then
|
||||||
if [ -e "/usr/bin/rssh" ]; then
|
shell='/usr/bin/rssh'
|
||||||
shell='/usr/bin/rssh'
|
fi
|
||||||
fi
|
else
|
||||||
/usr/sbin/useradd $FTP_USER \
|
shell=$FTP_SHELL
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checking ftp users
|
||||||
|
for ftp_user in ${FTP_USER//:/ }; do
|
||||||
|
if [ -z "$(grep ^$ftp_user: /etc/passwd)" ]; then
|
||||||
|
# Parsing ftp user variables
|
||||||
|
position=$(echo $FTP_USER | tr ':' '\n' | grep -n '' |\
|
||||||
|
grep ":$ftp_user$" | cut -f 1 -d:)
|
||||||
|
ftp_path=$(echo $FTP_PATH | tr ':' '\n' | grep -n '' |\
|
||||||
|
grep "^$position:" | cut -f 2 -d :)
|
||||||
|
ftp_md5=$(echo $FTP_MD5 | tr ':' '\n' | grep -n '' |\
|
||||||
|
grep "^$position:" | cut -f 2 -d :)
|
||||||
|
|
||||||
|
# Adding ftp user
|
||||||
|
/usr/sbin/useradd $ftp_user \
|
||||||
-s $shell \
|
-s $shell \
|
||||||
-o -u $(id -u $user) \
|
-o -u $(id -u $user) \
|
||||||
-g $(id -u $user) \
|
-g $(id -u $user) \
|
||||||
-M -d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
-M -d "$HOMEDIR/$user/web/$domain${ftp_path}" >/dev/null 2>&1
|
||||||
|
|
||||||
# Update password
|
# Updating ftp user password
|
||||||
shadow=$(grep "^$FTP_USER:" /etc/shadow)
|
shadow=$(grep "^$ftp_user:" /etc/shadow)
|
||||||
shdw3=$(echo "$shadow" | cut -f3 -d :)
|
shdw3=$(echo "$shadow" | cut -f3 -d :)
|
||||||
shdw4=$(echo "$shadow" | cut -f4 -d :)
|
shdw4=$(echo "$shadow" | cut -f4 -d :)
|
||||||
shdw5=$(echo "$shadow" | cut -f5 -d :)
|
shdw5=$(echo "$shadow" | cut -f5 -d :)
|
||||||
|
@ -340,15 +355,14 @@ rebuild_web_domain_conf() {
|
||||||
shdw7=$(echo "$shadow" | cut -f7 -d :)
|
shdw7=$(echo "$shadow" | cut -f7 -d :)
|
||||||
shdw8=$(echo "$shadow" | cut -f8 -d :)
|
shdw8=$(echo "$shadow" | cut -f8 -d :)
|
||||||
shdw9=$(echo "$shadow" | cut -f9 -d :)
|
shdw9=$(echo "$shadow" | cut -f9 -d :)
|
||||||
shadow_str="$FTP_USER:$FTP_MD5:$shdw3:$shdw4:$shdw5:$shdw6"
|
shadow_str="$ftp_user:$ftp_md5:$shdw3:$shdw4:$shdw5:$shdw6"
|
||||||
shadow_str="$shadow_str:$shdw7:$shdw8:$shdw9"
|
shadow_str="$shadow_str:$shdw7:$shdw8:$shdw9"
|
||||||
|
|
||||||
chmod u+w /etc/shadow
|
chmod u+w /etc/shadow
|
||||||
sed -i "/^$FTP_USER:*/d" /etc/shadow
|
sed -i "/^$ftp_user:*/d" /etc/shadow
|
||||||
echo "$shadow_str" >> /etc/shadow
|
echo "$shadow_str" >> /etc/shadow
|
||||||
chmod u-w /etc/shadow
|
chmod u-w /etc/shadow
|
||||||
fi
|
fi
|
||||||
fi
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# DNS domain rebuild
|
# DNS domain rebuild
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue