expect will irgendwie nich . . .

Bash, Shell, PHP, Python, Perl, CGI
fakespace
Posts: 48
Joined: 2003-10-17 20:33

expect will irgendwie nich . . .

Post by fakespace » 2004-09-25 22:08

Es gibt user1 (uid=1001) und userb (uid=1002)
in /home/user1/ gibt es eine Datei namens log.log.
chmod der Datei ist 777

test.sh:

Code: Select all

#! /bin/sh
id >> /home/user1/log.log
exit

ein Aufruf der Datei schreibt also die aktuelle id in die Datei log.log
Ruft userb test.sh auf, wird in die log.log uid=1002 eingetragen, also richtig





expect.sh:

Code: Select all

#!/usr/bin/expect -f
spawn su user1 -c "./test.sh"
expect "Password:"
send "passwort_von_user1r"
expect eof

beim aufruf sollte also expect nach user1 wechseln, und dann, durch Aufruf von test.sh, wiederum die uid
von user1 in die log.log eintragen.

Das geht aber nicht. An den Rechten liegt es nicht.
expect version 5.42.1

Es ist ein Debain Woody System

Vielen Dank schonmal ;)

olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: expect will irgendwie nich . . .

Post by olaf.dietsche » 2004-09-28 01:49

In Exploring Expect wird ein ähnliches Beispiel aufgeführt. Danach könnte es ungefähr so funktionieren:

Code: Select all

#! /usr/bin/expect -f
spawn su user1
expect "Password:"
send "passwort_von_user1r"
expect "rn"
expect "$"
send "./test.shr"
expect eof