= Change Passwords Users in SUN LDAP Server = **Summary**: How to change a password for SUN LDAP server users with a convenient script. \\ **Date**: Around 2012 \\ **Refactor**: 29 April 2025: Checked links and formatting. \\ {{tag>solaris bash ldap}} For the convenience of client support a script has been created to easily change the password of users. Simply follow these steps to change the password of an user: # Log on to solarisbox as clsupport # The change password script is automatically started # Fill in the username of the user you need to change the password for # The new password is shown, email the user the new password. > Note: Never tell the user the password, always email it to prevent "social password hacking" = Change the Password Multiple Times a Day = Because of the password policy it's not allowed to change the password to a password that has been used before. Which means, with the script you can't reset the password twice on one day. The solution is to contact a Sysadmin who can # Kick the script with the new password as commandline option ## root@solarisbox:# /home/clsupport/bin/chpasswd TESTww11 > Note that the script has to be run as root or might get error messages regarding access of the .prd file (where the password is located for the simple bind). = The Script = #!/usr/bin/bash # Generate a password if [ "$1" ] then NPWD="$1" else NPWD=$(date +%a%d%h) fi clear cd bin tput bold tput smul echo " Client Support Change User Password" tput rmul tput rmso echo echo -n "Username: " read USERNAME FULLNAME=$(getent passwd $USERNAME | cut -d: -f5) if [ ! "$FULLNAME" ] then echo "User \"$USERNAME\" unknown" exit else echo "dn: uid=$USERNAME,ou=people,dc=prd,dc=domain" >/tmp/newpwd.ldif echo "changetype: modify" >>/tmp/newpwd.ldif echo "replace: userPassword" >>/tmp/newpwd.ldif echo "userPassword: $NPWD" >>/tmp/newpwd.ldif echo "Changing password for \"$FULLNAME\"" echo ldapmodify -h ldaphgost02 -f /tmp/newpwd.ldif -D "cn=Directory Manager" -j .pwd >/dev/null rm /tmp/newpwd.ldif fi echo echo "Password is reset to $NPWD" echo "Finished, press to exit" echo read dummy exit