06-29-2009
Perderabo Script
Hello,
Many thanks for the script posted by Perderabo. I came across it many years ago, and it was an immense help in automating a password change on a number of servers and for a number of accounts on those servers.
Now, I am in need of a script to do the same thing using SSH since our Unix Admins have disabled the Telnet process and are forcing only SSH access.
Searching this web site and the internet for any assistance, it plainly became clear that the 'expect' package was the only solution that would do something similar to Perderabo's script.
But,
I had setup SSH authentication, copying the source servers RSA tokens to the destination servers authorized_keys file.
I changed Perderabo's script to have just the two sections - 0 and 2. 0 to set the script up, request passwords, etc. and 2 to do the actual password change.
I then changed 'telnet' to be 'ssh -t -t' and removed the USER and OLDPASS prints, since they are not needed due to the SSH automated authentication.
Quote:
#!/bin/ksh
HOSTLIST="<destination server>"
DELAY=3
stty -echo
print -n Enter Old Password-
read OLDPASS
print
print -n Enter New Password-
read NEWPASS
print
stty echo
exec 4>&1
for HOST in $HOSTLIST ; do
echo "Changing ${HOST} password:"
ssh -t -t $HOST >&4 2>/dev/null |&
sleep $DELAY
print -p passwd
sleep $DELAY
print -p $OLDPASS
sleep $DELAY
print -p $NEWPASS
sleep $DELAY
print -p $NEWPASS
sleep $DELAY
print -p exit
wait
echo "Changed ${HOST} password!"
done
exit 0
This works for me ... it will connect via SSH to the destination server and does the password change.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Can someone please provide a simple sample of syntax using the expect tool with an app. Let's say FTP. Maybe point me to where I may find some information on the syntax used. I'm not going to by a book on it. Thanks in advance! (2 Replies)
Discussion started by: shaggy
2 Replies
2. Shell Programming and 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
3. Shell Programming and Scripting
Problem Description: I have written the Expect script in Linux box, able to login from Linux to Windows and able to execute the command(eg, hostname) on windows server which produces some value. I want to pass this value from Windows to Linux box . Can we pass any parameter from Linux with expect... (2 Replies)
Discussion started by: khagendra
2 Replies
4. Shell Programming and 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... (9 Replies)
Discussion started by: DoctorOctagon
9 Replies
5. Solaris
i wonder if there is a tool to read the /etc/passwd or /etc/shadow files in order to reset user accounts to the same one.
By moving (restore) all filessytem and data to another same Sun box, none of the users are able to logon to the new box which i didn't change nothing. But if i reset the user... (1 Reply)
Discussion started by: lamoul
1 Replies
6. Shell Programming and Scripting
This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Discussion started by: genewolfe
1 Replies
7. Shell Programming and Scripting
Hi All,
I need ur help and suggestion to make my code efficient.I have to reset the password for multiple unix flavour using expect tool.There is one file in which I have mentioned ip address and main script will pickup those ip and reset all password and it will write to a log file whether it has... (1 Reply)
Discussion started by: manish_1678
1 Replies
8. Programming
Hi,
Am very new to expect scripting..
Can You please suggest me how to call an expect script inside another expect script..
I tried with
spawn /usr/bin/ksh
send "expect main.exp\r"
expect $root_prompt
and
spawn /usr/bin/ksh
send "main.exp\r"
expect $root_prompt
Both... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies
9. Programming
I have an expect script called remote that I want to call from inside my expect script called sudoers.push, here is the code that is causing me issues:
set REMOTE "/root/scripts/remote"
...
log_user 1
send_user "Executing remote script as $user...\n"
send_user "Command to execute is: $REMOTE... (1 Reply)
Discussion started by: brettski
1 Replies
10. Programming
I'm fairly new to scripting so this might not be possible.
I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version:
#show version
... (0 Replies)
Discussion started by: IBGaryA
0 Replies
LEARN ABOUT REDHAT
pserver
PSERVER(1) pserver PSERVER(1)
NAME
pserver - NetWare print server
SYNOPSIS
pserver [ -S server ] [ -h ] [ -U user name ] [ -P password | -n ] [ -C ] [ -q queue name ] [ -c command ] [ -j job type ] [ -t timeout ] [
-d ]
DESCRIPTION
pserver is a program that connects to print queues on NetWare servers and feeds incoming print jobs to the Linux printing system.
OPTIONS
-h
-h is used to print out a short help text.
-S server
server is the name of the server you want to use.
-U user
user is the print server name at the server.
-P password
password is the password to use for the print server at the server. If neither -n nor -P are given, and the user has no open connection
to the server, pserver prompts for a password.
-n
-n should be given if the print server does not require a password.
-C
By default, passwords are converted to uppercase before they are sent to the server, because most servers require this. You can turn off
this conversion by -C.
-q queue name
queue name is the name of the print queue you want to service.
-c command
When a job is received from the print queue, pserver forks off a new process, and feeds the job file to stdin. command is the printing
command that is executed for each job. The default command is 'lpr'.
You can insert several flags into the command, preceded by %. These are replaced with values retrieved from the queue structure for the
print job.
%u: This field will be replaced by the name of the user who posted this print job.
%d: This field will be replaced by the job description field of this print job.
-j job type
Each job in a NetWare print queue has a job type. For print jobs, this corresponds to the number of the form the job should be printed
on. You can tell pserver that it should only receive jobs for one specific form from the queue. The default is -1, which means that
everything is received.
-t timeout
Pserver is not informed by NetWare servers when new jobs arrive. So a polling scheme has to be used. When there are no jobs to service,
timeout tells pserver how long to wait between two requests. The default is 30 seconds. When a job is finished, pserver asks the NetWare
server immediately for a new job, and does not wait timeout seconds.
-d
Normally, pserver daemonizes itself. -d tells it not to do so. This is useful if you want to see the diagnostic messages that are
printed when a error occurs.
SEE ALSO
nwclient(5), slist(1), pqlist(1), ncpmount(8), ncpumount(8)
CREDITS
pserver was written by Volker Lendecke (lendecke@math.uni-goettingen.de)
pserver 10/22/1996 PSERVER(1)