improved user rebuild function

This commit is contained in:
Serghey Rodin 2012-09-27 11:07:25 +03:00
parent 82862ddf04
commit c1afcd1005
3 changed files with 26 additions and 34 deletions

View file

@ -94,7 +94,7 @@ fi
# Set permissions
chmod -R a+x $HOMEDIR/$user
chmod a+x $HOMEDIR/$user
# Checking quota
if [ ! -z "$DISK_QUOTA" ] && [ "$DISK_QUOTA" != 'no' ]; then

View file

@ -11,7 +11,6 @@
# Argument defenition
user=$1
full=${2-no}
# Includes
source $VESTA/conf/vesta.conf
@ -22,8 +21,8 @@ source $VESTA/func/main.sh
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'user [full]'
validate_format 'user' 'full'
check_args '1' "$#" 'user'
validate_format 'user'
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
@ -31,18 +30,17 @@ is_object_unsuspended 'user' 'USER' "$user"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
export PATH=$PATH:/usr/sbin
# Get user variables
source $USER_DATA/user.conf
# Rebuild user
shell=$(/usr/bin/chsh --list-shells | grep -w "$SHELL" |head -n1)
/usr/sbin/adduser "$user" -s "$shell" -c "$CONTACT" -m -d "$HOMEDIR/$user" \
&>/dev/null
shell=$(chsh --list-shells | grep -w "$SHELL" |head -n1)
adduser "$user" -s "$shell" -c "$CONTACT" -m -d "$HOMEDIR/$user" &>/dev/null
# Change password
#/usr/sbin/usermod -p $MD5 $user
shadow=/tmp/shadow
# Update password
shadow='/etc/shadow'
shdw=$(grep ^$user: $shadow)
shdw3=$(echo "$shdw" | cut -f3 -d :)
shdw4=$(echo "$shdw" | cut -f4 -d :)
@ -56,13 +54,11 @@ sed -i "/^$user:*/d" $shadow
echo "$user:$MD5:$shdw3:$shdw4:$shdw5:$shdw6:$shdw7:$shdw8:$shdw9" >> $shadow
chmod u-w $shadow
# Change shell
/usr/bin/chsh -s "$shell" "$user" &>/dev/null
# Building directory tree
mkdir -p $HOMEDIR/$user
chmod -R a+x $HOMEDIR/$user
mkdir -p $HOMEDIR/$user/conf
chmod a+x $HOMEDIR/$user
chmod a+x $HOMEDIR/$user/conf
chown $user:$user $HOMEDIR/$user
chown $user:$user $HOMEDIR/$user/conf
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
@ -73,9 +69,13 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
chmod 751 $HOMEDIR/$user/web
chmod 777 $HOMEDIR/$user/tmp
chown $user:$user $HOMEDIR/$user/web
if [ "$full" = 'yes' ]; then
$BIN/v_rebuild_web_domains $user
fi
$BIN/v_rebuild_web_domains $user
fi
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
mkdir -p $HOMEDIR/$user/conf/dns
chmod 751 $HOMEDIR/$user/conf/dns
$BIN/v_rebuild_dns_domains $user
fi
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
@ -83,29 +83,16 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
mkdir -p $HOMEDIR/$user/mail
chmod 751 $HOMEDIR/$user/mail
chmod 751 $HOMEDIR/$user/conf/mail
if [ "$full" = 'yes' ]; then
$BIN/v_rebuild_mail_domains $user
fi
$BIN/v_rebuild_mail_domains $user
fi
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
mkdir -p $HOMEDIR/$user/conf/dns
chmod 751 $HOMEDIR/$user/conf/dns
if [ "$full" = 'yes' ]; then
$BIN/v_rebuild_dns_domains $user
fi
fi
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
if [ "$full" = 'yes' ]; then
$BIN/v_rebuild_databases $user
fi
$BIN/v_rebuild_databases $user
fi
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
if [ "$full" = 'yes' ]; then
$BIN/v_rebuild_cron_jobs $user
fi
$BIN/v_rebuild_cron_jobs $user
fi

View file

@ -169,6 +169,11 @@ for user in $user_list; do
fi
done
# Checking backup
for backup_str in $(cat $USER_DATA/backup.conf); do
U_BACKUPS=$((U_BACKUPS +1))
done
U_DISK=$DISK
U_BANDWIDTH=$BANDWIDTH
update_user_value "$user" '$SUSPENDED_USERS' "$SUSPENDED_USERS"