Просмотр исходного кода

ubuntu compatible password change function

Serghey Rodin 12 лет назад
Родитель
Сommit
c1dad6ce08
5 измененных файлов с 22 добавлено и 16 удалено
  1. 17 12
      bin/v-add-user
  2. 1 1
      bin/v-add-web-domain-ftp
  3. 1 1
      bin/v-change-user-password
  4. 1 1
      bin/v-change-user-shell
  5. 2 1
      bin/v-change-web-domain-ftp

+ 17 - 12
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

+ 1 - 1
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)"
 
 

+ 1 - 1
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)
 
 

+ 1 - 1
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

+ 2 - 1
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)"