How do I change user password using a shell script under FreeBSD operating systems?
You need to use the -h fd option for pw command. It provides a special interface by which interactive scripts can set an account password using pw. Because the command line and environment are fundamentally insecure mechanisms by which programs can accept information, pw will only allow setting of account and group passwords via a file descriptor (usually a pipe between an interactive script and the program). sh, bash, ksh and perl all possess mechanisms by which this can be done. Linux / UNIX should able to use passwd command or perl script to do the same.
Task: Add User And Set A Password
Add a new user called vivek with password called topSecrete:
# echo PASSWORD | pw add user USERNAME -h 0
# echo topSecrete | pw add user vivek -h 0
Task: Modify Existing User Password
Change the password for a user called chitra
# echo newPassword | pw mod user chitra -h 0
A Sample Shell Script To Change User Password
#!/bin/sh PW=/usr/sbin/pw SHELL=/bin/csh echo "*** ADD NEW USER SHELL SCRIPT ***" echo -n "Username : " read user echo "Password : " read -n passwd echo ${passwd} | ${PW} add user ${user} -m -s ${SHELL} -h 0 >/dev/null 2>&1 if [ $? -eq 0 ] then echo "User added to the system." else echo "Failed to add user to the system." fi
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop














{ 6 comments… read them below or add one }
Hi all,
How can i achieve the same thing in centos system. When I tried i couldn’t find the pw in my system. I have to download the rpm but i failed to find a rpm for pw command. Please help me
hmmm…. spell mistake at line 13:
“Add a bew user” => “Add a new user”
@Aneesh See this post
@Shoaibi: thanks for the heads-up!
Aneesh Kumar. E.P,
you should try something like this:
useradd -m -d /home/$USER -s $SHELL $USER >/dev/null 2>&1
echo -n $PASSWORD | passwd –stdin $USER
Thank you for valuable help. i have solved my problem.
Thank you all
solved you problem.