Re: sasldb2 password change
"Kinglok, Fong" <[email protected]> Thu, 8 Mar 2012 08:24:06 +0800
| Newsgroups | gmane.comp.horde.sork |
|---|---|
| Message-ID | <CAMEM8FLiz3sQ6hVJL_vkCNL4VcEPm1JsQuYJnEgHVypZopvy1g@mail.gmail.com> |
On Thu, Mar 8, 2012 at 7:54 AM, Tilman Schmidt <[email protected] > wrote: > Am 07.03.2012 19:06, schrieb Ralf Lang: > > Am 07.03.2012 17:59, schrieb Tilman Schmidt: > >> passwords", but none of these seems to fit the > >> bill. The most promising candidate, "expect", seems to require that > >> mail users can also login via telnet or ssh. > > > > Does your cyrus support changing the imap password? See imp/backends.php > > for documentation. > > Cyrus SASL does of course support changing SASLdb passwords, > which I use for the IMAP service, via the saslpasswd2 command. > That's how I set passwords now. But that requires logging in > with a shell, which is exactly what my mail users cannot do. > > There is no file imp/backends.php in my Horde installation. > The file imp/config/backends.php exists but doesn't contain > anything related to password change as far as I can see. > > T. > > > -- > Sork mailing list - Join the hunt: http://horde.org/bounties/#sork > Frequently Asked Questions: http://horde.org/faq/ > To unsubscribe, mail: [email protected] > > Hi, you can consider using expect script for changing password. For sure, it is only for vpopmail. Here comes my backends.php in passwd: $backends['expect'] = array ( 'name' => 'Webmail Password', 'preferred' => '', 'password policy' => array( 'minLength' => 3, 'maxLength' => 8, 'maxSpace' => 0, 'minUpper' => 0, 'minLower' => 0, 'minNumeric' => 0 ), 'driver' => 'expect', 'params' => array( 'program' => '*/usr/bin/expect'*, 'script' => dirname(__FILE__) . '/../scripts/*vpopmail_cdb_expect'*, ), ), My vpopmail_cdb_expect is as follows: # $Horde: passwd/scripts/vpopmail_cdb_expect,v 1.6 2005/04/20 05:51:17 selsky Exp $ # # read input from stdin fconfigure stdin -blocking 1 gets stdin user gets stdin password_old gets stdin password_new log_user 0 set timeout 1 set log_file "/tmp/log-horde" # read in other option for {set i 0} {$i<$argc} {incr i} { set arg [lindex $argv $i] switch -- $arg "-log" { incr i set log_file [lindex $argv $i] continue } } set err [open $log_file "w" "0600"] set pid [spawn /home/vpopmail/bin/vchangepw] expect { -re "Please enter.*" { send $user\r } timeout {puts $err "Cannot start vchangepw program.\n" close $err exit 1} } expect { $user { puts $err ""} timeout {puts $err "Cannot continue 1 vchangepw program.\n" close $err exit 1} } expect { -re "Enter old password.*" { send $password_old\r } timeout {puts $err "Cannot continue 2 vchangepw program.\n" close $err exit 1} } expect { -re "Please enter password.*" { send $password_new\r } -re "Error:.*" { puts $err "Wrong password.\n" close $err exit 1} timeout {puts $err "Cannot continue 3 vchangepw program.\n" close err exit 1} } expect { -re "enter password again.*" { send $password_new\r } timeout {puts $err "Cannot continue 4 vchangepw program.\n" close $err exit 1} } expect { -re "Password successfully.*" { } timeout {puts $err "Cannot continue 5 vchangepw program.\n" close $err exit 1} } puts $err "The password changed successfully." expect { eof { close $err exit 0 } } exit 0 -- Sork mailing list - Join the hunt: http://horde.org/bounties/#sork Frequently Asked Questions: http://horde.org/faq/ To unsubscribe, mail: [email protected]