Change password shell script
Posted in Security
#!/usr/local/bin/expect -f # Password change shell script, tested on Linux and FreeBSD # ---------------------------------- # It need expect tool. If you are using Linux use following command # to install expect # apt-get install expect # FreeBSD user can use ports or following command: # pkg_add -r -v expect # ---------------------------------- # If you are using linux change first line # From: #!/usr/local/bin/expect -f # To: #!/usr/bin/expect -f # ----------------------------------------------- # Copyright (c) 2006 nixCraft project # This script is licensed under GNU GPL version 2.0 or above # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------------- # display usage if {$argc!=2} { send_user "usage: $argv0 username password \n" exit } # script must be run by root user set whoami [exec id -u] if {$whoami!=0} { send_user "You must be a root user to run this script\n" exit } # set timeout -1 match_max 100000 # stopre password set password [lindex $argv 1] # username set user [lindex $argv 0] # opem shell spawn $env(SHELL) # send passwd command send -- "passwd $user\r" expect "assword:" send "$password\r" expect "assword:" send "$password\r" send "\r" expect eof
Download - Email this to a friend - Printable version
Related Other Helpful Shell Scripts:
- Shell script for search for no password entries and lock all accounts
- Shell Script accept password using read commnad
- Shell script to Finding Accounts with No Password ( null password account )
- htpasswd Replacement: Perl Script To Create Password Using crypt()
- Shell script to backup MySql database
Discussion on This Shell Script:
Leave a Reply
We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!
Tags: argc, argv, change shell, exec, expect command, linux, match, passwd command, ports, script collection, whoami ~ Last updated on: April 10, 2008


Long story short.
echo $password | /usr/bin/passwd –stdin user1
Um, yea Tamilan - that doesn’t actually work. Did you try it yourself? All it does on my machine is remove a shell from the test user and not change the password.
The problem I’m running into with the above script is that it isn’t properly returning to the cli when done. In fact it is a pain in the ass to run within another script.