Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Expect - bad command trap

Posted by sgy258 (sgy258), 13 January 2004
I have an existing expect program that is used to spawn a telnet session and automatically login a user to a server. I would like to trap certain commands to prevent users from executing those commands (passwd, etc.). I modified my program according to Don Libes "Exploring Expect" Preventing - Bad Commands example on page 347.

The command trap works, however when a user types a string, the string is echoed back on the next line - example:

guest@gumby> pwd
pwd
/export/home

Is there a way to prevent the string from echoing a new line with the command?

Here is the section of code:

set prompt ">"
set badcmds "passwd|su"

interact {
-o -reset -nobuffer -re $prompt {
while 1 {
set timeout 1800
expect_user {
-re "^badcmds.*"
{
send_user "Command not allowed...!\n"
sleep 3
break
}
-re "(.*)\n"
{
send "$expect_out(1,string)\r"
break
}
timeout {
exit
}
}
}



This page is a thread posted to the opentalk forum at www.opentalk.org.uk and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2012: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho