49 lines
1.4 KiB
Plaintext
49 lines
1.4 KiB
Plaintext
|
#!/usr/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
|