Expect passwd scripting


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Expect passwd scripting
# 1  
Old 04-29-2009
Expect passwd scripting

I am trying to write an expect script which will read information from a file that contains username and password, and change the password for each user accordingly. The list contains around 100 users. I am new to both Solaris and expect. I have successfully been able to set the first user's password, but not the remaining users. This is the command I pass:
Code:
~$ cat userlist.txt | xargs expect expectscript

Any suggestions would be greatly appreciated.
# 2  
Old 04-29-2009
You may need to have it pass each line from the userlist.txt file instead of all at once.
You can try this
for i in `cat userlist.txt`
do
cat $i | xargs expect expectscript
done

Just a thought.

Last edited by BubbaJoe; 04-29-2009 at 10:09 PM.. Reason: Didn't finish all the line befoer pressing enter.
# 3  
Old 05-04-2009
I tried to use this command, but it doesn't understand the formatting of the userlist file. This is the output I get when executing:

Code:
/expecttest: line 3: temp1: command not found
spawn /usr/bin/passwd 
passwd: unknown user 
send: spawn id exp6 not open
    while executing
"send "$password\r""
    (file "expectdev" line 6)
./expecttest: line 3: temp1: command not found
spawn /usr/bin/passwd 
passwd: unknown user 
send: spawn id exp6 not open
    while executing
"send "$password\r""
    (file "expectdev" line 6)
./expecttest: line 3: temp2: command not found
spawn /usr/bin/passwd 
passwd: unknown user 
send: spawn id exp6 not open
    while executing
"send "$password\r""
    (file "expectdev" line 6)
./expecttest: line 3: temp: command not found
spawn /usr/bin/passwd 
passwd: unknown user 
send: spawn id exp6 not open
    while executing
"send "$password\r""
    (file "expectdev" line 6)

And this is what the userlist file looks like:

Code:
temp1 temp1 
temp2 temp

And this is what the expectdev file looks like:

Code:
#!/usr/bin/expect
#password automator script
set password [lindex $argv 1]
spawn /usr/bin/passwd [lindex $argv 0]
expect "password:"
send "$password\r"
expect "password:"
send "$password\r"
done
expect eof

Any suggestions would be appreciated. Thanks
# 4  
Old 05-04-2009
Try using a while loop

Code:
while read user
do
echo $user | xargs expect expectscript
done < userlist.txt


cheers,
Devaraj Takhellambam
# 5  
Old 05-04-2009
Thanks for your help devtakh. I executed the command, but it returned with errors.
Code:
spawn /usr/bin/passwd temp1
Enter new UNIX password: 
Retype new UNIX password: invalid command name "done"
    while executing
"done"
    (file "expectdev" line 9)
spawn /usr/bin/passwd temp2
Enter new UNIX password: 
Retype new UNIX password: invalid command name "done"
    while executing
"done"
    (file "expectdev" line 9)

It appears that it is processing the userlist line by line, but it's not getting the second password for the passwd command.
# 6  
Old 05-04-2009
How would you normally run the expect script and what parameters does it take.

And also, what does the users.txt file contain?
# 7  
Old 05-04-2009
To run the expect script, you must first invoke expect then specify the code you want it to execute.

Code:
~$expect codetobeexecuted

The users file contains the following (First column:User, Second Column:Password):

Code:
temp1 temp1
temp2 temp2

Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. IP Networking

IP and expect scripting

Hi I am new to IP configuration and using expect script I have a requirement like I need to write a expect script that can ssh to a remote machine(linux1) using password which already has IP, once logged inside machine need to reboot remote machine(linux1) and again login to same remote... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies

2. Shell Programming and Scripting

Expect scripting.

I was wondering if I could do this a bit better. another script calls this script and logs into a device, does the relavant "show commands" and then saves those to a file. My problem is that the buffer isn't large enough to the output of some of the commands. here is an excerpt of what i'm... (0 Replies)
Discussion started by: gen1mx6
0 Replies

3. Shell Programming and Scripting

Expect scripting

Hello, I tried to use expect to catch information from my nagios and send me a call but i have nothing when i execute the script : 0 - add : account SIP 1 - trext : information from nagios text2wav : conversion text to wav ( text to speech ) pjsua : connection thru the SIP ... (0 Replies)
Discussion started by: acidozik
0 Replies

4. Shell Programming and Scripting

Expect scripting

Hi I have a working expect script below. The script continues to log cisco router configurations until all the ip addresses in the "routerlist1" has been read. Problem will start to happen when one of the ip address is not reacheable via ssh or telnet. The script will stop to read the rest of the... (2 Replies)
Discussion started by: yano1o14
2 Replies

5. Linux

ssh and passwd scripting execution problems on linux

I'm having a problem here and I was wondering if anyone could help me? I'm putting together a password script. First off, I don't have root access. I have sudo access. Lets say the User ID is Trevor1, the password is H!rry23! and the server name is Linux1234 This is how the script begins ... (5 Replies)
Discussion started by: wdog17
5 Replies

6. Infrastructure Monitoring

need script for passwd , can't use expect tool

Hi , as others users here , i'm searching for a script which can automate "passwd" dialog . I saw threads about "expect tool" but on my platforms , "C" product isn't installed and i'm not the admin so i can't install it. is there another way to do it , with a "simple" shell script ??? ... (35 Replies)
Discussion started by: Nicol
35 Replies

7. Shell Programming and Scripting

Expect Scripting Help

Hi All, I am suppose to capature the value command `show ip route` of a router in a Expect script. But i am not able to catch the value in a variable or a file in the following Expect script. #!/usr/bin/expect -f set input spawn telnet localhost $argv expect "Escape character is '^]'."... (5 Replies)
Discussion started by: Harikrishna
5 Replies

8. Shell Programming and Scripting

Expect Scripting Help

Hi All, I am trying to connect a router using Expect scripting. But my script shows error.One more thing after the command telnet localhost 2000 we should press ENTER KEY once before the command prompt asks for "enable" and password.Please help correctiong my script. #!/usr/bin/expect -- ... (2 Replies)
Discussion started by: Harikrishna
2 Replies

9. Shell Programming and Scripting

strange expect script behavior, or am i misunderstanding expect scripting?

Hello to all...this is my first post (so please go easy). :) I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies

10. Shell Programming and Scripting

expect scripting need help

Hi experts, I am trying to develop a script using Expect. I am stuck somewhere. I need ur help guys. I have sun solaris where i need to input the following commands- bash-2.05$ telnet 11.13.58.39 2310 Trying 0.0.0.0... Connected to .. Escape character is '^]'. CONNECTING TO... ... (3 Replies)
Discussion started by: thepurple
3 Replies
Login or Register to Ask a Question