Re: Sork Passwd errors
Jan Schneider <[email protected]> Sun, 12 Sep 2010 18:43:08 +0200
| Newsgroups | gmane.comp.horde.sork |
|---|---|
| Message-ID | <[email protected]> |
Zitat von Chris <[email protected]>: > Hi, > > I'm having a problem with sork passwd. I'm using Debian lenny, > horde 3.2.2 and passwd 3.0. Again, an outdated version, this time in combination with a too new PHP version. > Every time I try to change my password I get these errors at the top > of the page: > > > > > I need to use the expect backend. When I click "Change Password", I > get the following at the top of the page: > > Notice: Only variable references should be returned by reference in > /usr/share/horde3/passwd/lib/Driver.php on line 110 > > Warning: Cannot modify header information - headers already sent by > (output started at /usr/share/horde3/passwd/lib/Driver.php:110) in > /etc/horde/passwd3/templates/common-header.inc on line 4 > > Warning: Cannot modify header information - headers already sent by > (output started at /usr/share/horde3/passwd/lib/Driver.php:110) in > /etc/horde/passwd3/templates/common-header.inc on line 5 > > It says the password change was successful ("Password changed on > Example Expect Script."), but it really is not (still same password > as it was prior). > > I don't see any output in the logs in /var/log, and AFAIK, there are > no issues with the expect script (though I am no expert on this...). > > Any help is appreciated. > > Thank you. > > > > expect script (this is stock with debian): > ================================================================== > set host "localhost" > set login "ssh" > set program "passwd" > set prompt_string "(%|\\\$|>)" > set fingerprint_string "The authenticity of host.* can't be > established.*\nRSA key fingerprint is.*\nAre you sure you want to > continue connecting.*" > set password_string "(P|p)assword.*" > set oldpassword_string "((O|o)ld|login|\\\(current\\\) UNIX) (P|p)assword.*" > set newpassword_string "(N|n)ew.* (P|p)assword.*" > set badpassword_string "(passwd|Bad:).*\r" > set verify_string "((R|r)e-*enter.*(P|p)assword|Retype new( UNIX)? > password|(V|v)erification|(V|v)erify|(A|a)gain).*" > set success_string "((P|p)assword.* changed|successfully)" > set login_string "(((L|l)ogin|(U|u)sername).*)" > set timeout 20 > set log "/tmp/passwd.out" > set output false > set output_file "/tmp/passwd.log" > > > gets stdin user > gets stdin password(old) > gets stdin password(new) > > > > log_user 0 > > for {set i 0} {$i<$argc} {incr i} { > set arg [lindex $argv $i] > switch -- $arg "-prompt" { > incr i > set prompt_string [lindex $argv $i] > continue > } "-password" { > incr i > set password_string [lindex $argv $i] > continue > } "-oldpassword" { > incr i > set oldpassword_string [lindex $argv $i] > continue > } "-newpassword" { > incr i > set newpassword_string [lindex $argv $i] > continue > } "-verify" { > incr i > set verify_string [lindex $argv $i] > continue > } "-success" { > incr i > set success_string [lindex $argv $i] > continue > } "-login" { > incr i > set login_string [lindex $argv $i] > continue > } "-host" { > incr i > set host [lindex $argv $i] > continue > } "-timeout" { > incr i > set timeout [lindex $argv $i] > continue > } "-log" { > incr i > set log [lindex $argv $i] > continue > } "-output" { > incr i > set output_file [lindex $argv $i] > set output true > continue > } "-telnet" { > set login "telnet" > continue > } "-ssh" { > set login "ssh" > continue > } "-rlogin" { > set login "rlogin" > continue > } "-slogin" { > set login "slogin" > continue > } "-program" { > incr i > set program [lindex $argv $i] > continue > } > } > > if {$output} { > log_file $output_file > } > > set err [open $log "w" "0600"] > > if {[string match $login "rlogin"]} { > set pid [spawn rlogin $host -l $user] > } elseif {[string match $login "slogin"]} { > set pid [spawn slogin $host -l $user] > } elseif {[string match $login "ssh"]} { > set pid [spawn ssh $host -l $user] > } elseif {[string match $login "telnet"]} { > set pid [spawn telnet $host] > expect -re $login_string { > sleep .5 > send "$user\r" > } > } else { > puts $err "Invalid login mode: valid modes: rlogin, slogin, ssh, telnet\n" > close $err > exit 1 > } > > expect { > -re $fingerprint_string {sleep .5 > send yes\r} > -re $password_string {sleep .5 > send $password(old)\r} > timeout {puts $err "Could not login to system (no > password prompt)\n" > close $err > exit 1} > } > > set old_password_notentered true > expect { > -re $prompt_string {sleep .5 > send $program\r} > # The following is for when passwd is the login shell > -re $oldpassword_string {sleep .5 > send $password(old)\r > set old_password_notentered false} > timeout {puts $err "Could not login to system > (bad old password?)\n" > close $err > exit 1} > } > > if {$old_password_notentered} { > expect { > -re $oldpassword_string {sleep .5 > send $password(old)\r} > timeout {puts $err "Could not start passwd > program (no old password prompt)\n" > close $err > exit 1} > } > } > > expect { > -re $newpassword_string {sleep .5 > send $password(new)\r} > timeout {puts "Could not change password (bad old > password?)\n" > close $err > exit 1} > } > > expect { > -re $badpassword_string {puts $err "$expect_out(0,string)" > close $err > send \003 > sleep .5 > exit 1} > -re $verify_string {sleep .5 > send $password(new)\r} > timeout {puts $err "New password not valid (too > short, bad password, too similar, ...)\n" > close $err > send \003 > sleep .5 > exit 1} > } > > expect { > -re $success_string {sleep .5 > send exit\r} > -re $badpassword_string {puts $err "$expect_out(0,string)" > close $err > exit 1} > timeout {puts $err "Could not change password.\n" > close $err > exit 1} > } > > expect { > eof {close $err > exit 0} > } > close $err > > ====================================================================== > > -- > Sork mailing list - Join the hunt: http://horde.org/bounties/#sork > Frequently Asked Questions: http://horde.org/faq/ > To unsubscribe, mail: [email protected] > Jan. -- Do you need professional PHP or Horde consulting? http://horde.org/consulting/ -- Sork mailing list - Join the hunt: http://horde.org/bounties/#sork Frequently Asked Questions: http://horde.org/faq/ To unsubscribe, mail: [email protected]