Net/telnet

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:incmd’
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?

Hi,

At Thu, 10 Aug 2006 18:35:05 +0900,
[email protected] wrote in [ruby-talk:207510]:

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:incmd’
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.

On Thu, Aug 10, 2006 at 06:35:05PM +0900, [email protected]
wrote:

C:\Documents and Settings\admin\Escritorio\telne_test.rb:12

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

Yoann G. wrote:

C:\ruby\lib\ruby\1.8/net/telnet.rb:680:in `cmd’

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.

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

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

Regards,
Prasad.

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.