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