bash - sudo with -S still asks for password on the console and clears out whiptail box -
i'm doing homework operative systems class have make login flow using bash scripting, i'm having problems want gui started using whiptail when check validity of password entered user on etc/shadow folder, sudo still asks password on console, if pass password using -s argument. here's example of i'm doing
realuser=$(whoami) user=$(whiptail --title "change password" --inputbox "please enter password" 10 60 3>&1 1>&2 2>&3) exitstatus=$? if [ $exitstatus = 0 ];   if [ "$user" == "$realuser" ]       currentpass=$(whiptail --title "current password" --passwordbox "please enter current password" 10 60 3>&1 1>&2 2>&3)     exitstatus=$?     if [ $exitstatus = 0 ];      password=$( sudo -s <<< $currentpass grep -w $realuser /etc/shadow | cut -d: -f2)      userid=$(echo "$password" | cut -f2 -d$)      usersalt=$(echo "$password" | cut -f3 -d$)      userpassword=$(echo "$password" | cut -f4 -d$)      encryptedpass=$(perl -e "print crypt('$currentpass','\$$userid\$$usersalt\$'); \n")      if [ "$currentpass" == "$encryptedpass" ]            #do change password  ..... the problem when execute command
password=$( sudo -s <<< $currentpass grep -w $realuser /etc/shadow | cut -d: -f2) it clears out whiptail , asks user password sudo do, isn't -s <<< $currentpass passing password through stdin doesn't have ask it?
i don't know if made point clear, want is, using whiptail, ask user username, if username actual logged in user, ask user password, check if it's actual user's password , if is, change password new 1 enter.
 
 
  
Comments
Post a Comment