[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

pwsafe+expect



Hallo zusammen,

und guten Rutsch ins neue Jahr.

Ich habe hier ein kleines Problem mit expect und pwsafe.
expect ist für mich neu. Geteste Systeme waren Debian lenny und
unstable; 25.12.2009 upgedatet.

Ich möchte das anlegen eines Eintrags in mein dialog/ncurses basierte
Script einfügen.

Nun kann man zwar alles eingeben und es wird auch eine expect Datei
erzeugt in der alle Befehle stehen, aber sie werden nicht korrekt
ausgeführt/angewandt. Beziehungsweise weiß ich nicht warum. 
expect meckert laut meines Wissens nicht und pwsafe trägt nichts ein.

Folgende Zeilen werden erstellt und mit expect -f Datei aufgerufen:
set mpass "geheim"
set group "kkkkk"
set user "kilkak"
set pass "123456"
set notes "hallo"
set timeout 1

stty -echo
spawn pwsafe -a hallo -f /home/kiste/.pwsafe/pwsafe.dat
expect "Enter passphrase .*: "
send "$mpass\r"
expect "group \[<none>\]: "
send "$group\r"
expect "username: "
send "$user\r"
expect "password .*: "
send "$pass\r"
expect "password .*: "
send "$pass\r"
expect "notes:"
send "$notes\r"
send "exit\r"
stty echo

Das ist ein Debug Output Ausschnitt davon:
...
expect: set expect_out(0,string) "username: "                                                    
expect: set expect_out(spawn_id) "exp6"                                                          
expect: set expect_out(buffer) "Enter passphrase for
/home/kiste/.pwsafe/pwsafe.dat: \r\ngroup [<none>]: kkkkk\r\nusername:
"                                                                     
send: sending "kilkak\r" to { exp6 }

expect: does " (spawn_id exp6) match glob pattern "password [return for
random]: "? no
kilkak
password [return for random]:
expect: does "kilkak\r\npassword [return for random]: " (spawn_id exp6)
match glob pattern "password [return for random]: "? no
expect: timed out
send: sending "123456\r" to { exp6 }

expect: does "kilkak\r\npassword [return for random]: " (spawn_id exp6)
match glob pattern "password again: "? no

password again:
expect: does "kilkak\r\npassword [return for random]: \r\npassword
again: " (spawn_id exp6) match glob pattern "password again: "? yes
expect: set expect_out(0,string) "password again: "
expect: set expect_out(spawn_id) "exp6"
expect: set expect_out(buffer) "kilkak\r\npassword [return for random]:
\r\npassword again: "
send: sending "123456\r" to { exp6 }

expect: does " (spawn_id exp6) match glob pattern "notes: "? no

notes:
expect: does "\r\nnotes: " (spawn_id exp6) match glob pattern "notes: "?
yes
...

Mir fällt nur auf das der expect_out Buffer komisch aussieht, da pwsafe
die passphrase nicht mit reinsteckt. ist ja auch gut, aber vllt. liegt
es daran.

Habe auch einmal versucht mittels autoexpect die Befehle aufzuzeichnen,
aber das half auch nicht. Mir jedenfalls nicht.

Kennt sich einer mit pwsafe + expect aus oder gibt es einen anderen
Weg? Alles soll auf der Konsole bleiben, also keine Java-Frontends oder
Guis die es dafür gibt.

Danke schon mal im voraus, Kiste

-- 
#######################################################################
Netzworkk                   grml - Linux Live CD fuer Sysadmins
Kai Wilke                   http://grml.org
kiste@netzworkk.de
http://www.netzworkk.de
http://netzworkk.berlios.de

Attachment: signature.asc
Description: Digital signature


Reply to: