diff --git a/bin/v-add-user b/bin/v-add-user index 7948daf28..059cec988 100755 --- a/bin/v-add-user +++ b/bin/v-add-user @@ -59,18 +59,23 @@ pkg_data=$(cat $VESTA/data/packages/$package.pkg |grep -v TIME |grep -v DATE) # Checking shell shell_conf=$(echo "$pkg_data" | grep 'SHELL' | cut -f 2 -d \') -shell=$(/usr/bin/chsh --list-shells | grep -w "$shell_conf" |head -n1) +shell=$(grep -w "$shell_conf" /etc/shells |head -n1) # Adding user -/usr/sbin/adduser "$user" -s "$shell" -c "$email" -m -d "$HOMEDIR/$user" +/usr/sbin/useradd "$user" -s "$shell" -c "$email" -m -d "$HOMEDIR/$user" +if [ $? -ne 0 ]; then + echo "Error: user creation failed" + log_event "$E_INVALID" "$EVENT" + exit $E_INVALID +fi # Adding password -echo "$password" | /usr/bin/passwd "$user" --stdin &>/dev/null +echo "$user:$password" | /usr/sbin/chpasswd # Building directory tree mkdir $HOMEDIR/$user/conf -if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then +if [ ! -z "$WEB_SYSTEM" ]; then mkdir $HOMEDIR/$user/conf/web mkdir $HOMEDIR/$user/web mkdir $HOMEDIR/$user/tmp @@ -81,14 +86,14 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then chown $user:$user $HOMEDIR/$user/tmp fi -if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then +if [ ! -z "$MAIL_SYSTEM" ]; then mkdir $HOMEDIR/$user/conf/mail mkdir $HOMEDIR/$user/mail chmod 751 $HOMEDIR/$user/mail chmod 751 $HOMEDIR/$user/conf/mail fi -if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then +if [ ! -z "$DNS_SYSTEM" ]; then mkdir $HOMEDIR/$user/conf/dns chmod 751 $HOMEDIR/$user/conf/dns fi @@ -99,7 +104,7 @@ chmod a+x $HOMEDIR/$user chattr +i $HOMEDIR/$user/conf # Checking quota -if [ ! -z "$DISK_QUOTA" ] && [ "$DISK_QUOTA" != 'no' ]; then +if [ ! -z "$DISK_QUOTA" ]; then DISK_QUOTA=$(echo "$pkg_data" | grep 'DISK_QUOTA' | cut -f 2 -d \') #$BIN/v-add-user_quota "$user" "$DISK_QUOTA" fi @@ -123,7 +128,7 @@ chmod 660 $USER_DATA/stats.log echo "$BIN/v-update-user-disk $user" >> $VESTA/data/queue/disk.pipe -if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then +if [ ! -z "$WEB_SYSTEM" ]; then mkdir $USER_DATA/ssl chmod 770 $USER_DATA/ssl touch $USER_DATA/web.conf @@ -133,14 +138,14 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then echo "$BIN/v-update-web-domains-disk $user" >> $VESTA/data/queue/disk.pipe fi -if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then +if [ ! -z "$DNS_SYSTEM" ]; then mkdir $USER_DATA/dns chmod 770 $USER_DATA/dns touch $USER_DATA/dns.conf chmod 660 $USER_DATA/dns.conf fi -if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then +if [ ! -z "$MAIL_SYSTEM" ]; then mkdir $USER_DATA/mail chmod 770 $USER_DATA/mail touch $USER_DATA/mail.conf @@ -148,13 +153,13 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then echo "$BIN/v-update-mail-domains-disk $user" >> $VESTA/data/queue/disk.pipe fi -if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then +if [ ! -z "$DB_SYSTEM" ]; then touch $USER_DATA/db.conf chmod 660 $USER_DATA/db.conf echo "$BIN/v-update-databases-disk $user" >> $VESTA/data/queue/disk.pipe fi -if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then +if [ ! -z "$CRON_SYSTEM" ]; then touch $USER_DATA/cron.conf chmod 660 $USER_DATA/cron.conf fi diff --git a/bin/v-add-web-domain-ftp b/bin/v-add-web-domain-ftp index 36d4e0308..7355660b0 100755 --- a/bin/v-add-web-domain-ftp +++ b/bin/v-add-web-domain-ftp @@ -68,7 +68,7 @@ fi -M -d "$HOMEDIR/$user/web/$domain" \ $ftp_user > /dev/null 2>&1 -echo "$ftp_password" | /usr/bin/passwd "$ftp_user" --stdin &>/dev/null +echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)" diff --git a/bin/v-change-user-password b/bin/v-change-user-password index 10bbe570c..f5c3ab7e0 100755 --- a/bin/v-change-user-password +++ b/bin/v-change-user-password @@ -38,7 +38,7 @@ is_object_unsuspended 'user' 'USER' "$user" #----------------------------------------------------------# # Changing user password -echo "$password" | /usr/bin/passwd "$user" --stdin &>/dev/null +echo "$user:$password" | /usr/sbin/chpasswd md5=$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow) diff --git a/bin/v-change-user-shell b/bin/v-change-user-shell index 71c0496f4..2431447bd 100755 --- a/bin/v-change-user-shell +++ b/bin/v-change-user-shell @@ -33,7 +33,7 @@ is_object_unsuspended 'user' 'USER' "$user" #----------------------------------------------------------# # Get shell full path -shell_path=$(/usr/bin/chsh --list-shells | grep -w "$shell" |head -n1) +shell_path=$(grep -w "$shell" /etc/shells | head -n1) # Changing passwd file /usr/bin/chsh -s "$shell_path" "$user" &>/dev/null diff --git a/bin/v-change-web-domain-ftp b/bin/v-change-web-domain-ftp index 49ac9d0b6..682d48551 100755 --- a/bin/v-change-web-domain-ftp +++ b/bin/v-change-web-domain-ftp @@ -43,7 +43,8 @@ is_object_value_empty 'web' 'DOMAIN' "$domain" '$FTP_USER' # Adding user /usr/sbin/adduser $ftp_user -g $user -s /sbin/nologin -M \ -d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1 -echo "$ftp_password" | /usr/bin/passwd "$ftp_user" --stdin &>/dev/null +echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd + ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"