net/telnet

P

pedro.baldanta

Hi all:

I was unable to start "su -" after open telnet conexion. I got:

:-================ Timeout::Error =====================
C:\ruby\lib\ruby\1.8/net/telnet.rb:551:in `waitfor'
raise TimeoutError, "timed out while waiting for more
data"
C:\ruby\lib\ruby\1.8/net/telnet.rb:680:in `cmd'
waitfor({"Prompt" => match, "Timeout" => time_out})
C:\Documents and Settings\admin\Escritorio\telne_test.rb:12
localhost.cmd("su -")
C:\ruby\lib\ruby\site_ruby\1.8/rubygems/custom_require.rb:27:in
`require'
gem_original_require path

=============================================
Exception: timed out while waiting for more data


Any idea?
 
N

nobu

Hi,

At Thu, 10 Aug 2006 18:35:05 +0900,
I was unable to start "su -" after open telnet conexion. I got:

:-================ Timeout::Error =====================
C:\ruby\lib\ruby\1.8/net/telnet.rb:551:in `waitfor'
raise TimeoutError, "timed out while waiting for more
data"
C:\ruby\lib\ruby\1.8/net/telnet.rb:680:in `cmd'
waitfor({"Prompt" => match, "Timeout" => time_out})
C:\Documents and Settings\admin\Escritorio\telne_test.rb:12
localhost.cmd("su -")

In common, the prompt of superuser differs from ordinary users.
 
Y

Yoann Guillot

Hi all:

I was unable to start "su -" after open telnet conexion. I got:

:-================ Timeout::Error =====================
C:\ruby\lib\ruby\1.8/net/telnet.rb:551:in `waitfor'
raise TimeoutError, "timed out while waiting for more
data"
C:\ruby\lib\ruby\1.8/net/telnet.rb:680:in `cmd'
waitfor({"Prompt" => match, "Timeout" => time_out})
C:\Documents and Settings\admin\Escritorio\telne_test.rb:12
localhost.cmd("su -")
C:\ruby\lib\ruby\site_ruby\1.8/rubygems/custom_require.rb:27:in
`require'
gem_original_require path

=============================================
Exception: timed out while waiting for more data


Any idea?

Telnet uses a regex to match the shell prompt, so that it knows that the
preceding command has terminated.
When you 'su -', you change the prompt (probably a $ becomes a #, or
your login changes), so Telnet never sees the end of the 'su -' command.
You should change the regex used to match the prompt when you create the
Net::Telnet object, so that it matches both your normal prompt and the
root prompt, i.e

conn = Net::Telnet.new('Host' => 'bla', 'Prompt' => /me@host\$|root@host#/)

Yoann
 
M

M. Edward (Ed) Borasky

Yoann said:
Telnet uses a regex to match the shell prompt, so that it knows that the
preceding command has terminated.
When you 'su -', you change the prompt (probably a $ becomes a #, or
your login changes), so Telnet never sees the end of the 'su -' command.
You should change the regex used to match the prompt when you create the
Net::Telnet object, so that it matches both your normal prompt and the
root prompt, i.e

conn = Net::Telnet.new('Host' => 'bla', 'Prompt' => /me@host\$|root@host#/)

Yoann
IIRC there's a "standard" regex one uses that will match most common
UNIX prompts, but I can't remember what it is. It includes "\$" and "#"
and "%", but I don't remember what else there is.
 
N

nobu

Hi,

At Thu, 10 Aug 2006 22:18:38 +0900,
M. Edward (Ed) Borasky wrote in [ruby-talk:207547]:
IIRC there's a "standard" regex one uses that will match most common
UNIX prompts, but I can't remember what it is. It includes "\$" and "#"
and "%", but I don't remember what else there is.

"#" is for super user. "$" and "%" are for ordinary users, and
defaults in Bourne shell and C shell respectively.
 
P

Prasad Pednekar

Hey,
The default Prompt value can be the one given below in the new
method :

"Prompt" => /[$%#>] \z/n


Regards,
Prasad.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top