[sork] passwd with sql

Shagol shagol at shagol.com
Thu Feb 13 17:44:57 PST 2003


Hi people

Horde 2.1
IMP 3.0
Passwd 2.1
cyrus-imapd-2.1.12
cyrus-sasl-2.1.12

I'm trying to change passwords stored in my MySQL DB with the passwd module 
for Horde. After i clicked "change password" I see the following 
URL: /horde/passwd/main.php but the page is blank and doesn't change. The 
password is also not changed. I enabled logging on my MySQL Server, but don't 
see anything from the passwd module. What's wrong ? Here my config files:

passwd/config/conf.php
-------------------------
<?php
/*
 * passwd Configuration File
 *
 * This file contains global configuration settings for passwd. Values
 * may be safely edited by hand. Use conf.php.dist as a reference.
 *
 * Strings should be enclosed in 'quotes'.
 * Integers should be given literally (without quotes).
 * Boolean values may be 'true' or 'false'.
 *
 * $Horde: passwd/config/conf.php.dist,v 1.1.1.1.2.3 2003/01/21 01:28:29 ericr 
Exp $
 */

// Define apps to put in the menu bar.  To include IMP in the menu bar, you
// would add: $conf['menu']['apps'] = array('imp');

$conf['menu']['apps'] = array('imp');

// Should we display a list of backends (defined in config/backends.php) for
// users to choose from?  The options are 'shown' or 'hidden'.  If the list
// is 'hidden' then you can use the 'preferred' mechanism to auto-select
// a backend based on the HTTP virtualhost or another piece of data.  If it
// is 'shown' then the user will be able to pick from any of the backends.

$conf['backend']['backend_list'] = 'shown';

// Define usernames for which we will refuse to change passwords.
// This may or may not work with realms or virtual hosting, depending on setup

$conf['user']['refused'] = array('root','bin','daemon','adm','lp','shutdown',
     'halt','uucp','ftp','anonymous','nobody','httpd','operator','guest',
     'diginext','bind','courier','cyrus','games','kmem','mailnull','man',
     'mysql','news','postfix','sshd','tty','www');

// Should we perform simple strength tests on the passwords?

$conf['password']['strengthtests'] = false;

// Use a custom hook for modifying the username, or determining a
// default username
// Make sure to update $conf['user']['refused'] to match the username
// format retuned by this function
$conf['hooks']['username'] = false;
$conf['hooks']['default_username'] = false;


passwd/config/backends.php
-------------------------
<?php
/**
 * $Horde: passwd/config/backends.php.dist,v 1.14.2.3 2003/02/05 15:48:13 
ericr Exp $
 *
 * This file is where you specify what backends people use to
 * change their passwords. There are a number of properties
 * that you can set for each backend:
 *
 * name: This is the plaintext, english name that you want displayed
 *       to people if you are using the drop down server list.  Also
 *       displayed on the main page (input form).
 *
 * password policy: The password policies for this backend. You are responsible
 *                  for the sanity checks of these options. Options are:
 *              minLength   Minimum length of the password
 *              maxLength   Maximum length of the password
 *              maxSpace    Maximum number of white space characters
 *              minUpper    Minimum number of uppercase characters
 *              minLower    Minimum number of lowercase characters
 *              minNumeric  Minimum number of numeric characters (0-9)
 *              minAlphaNum Minimum number of alphanumeric characters
 *              minAlpha    Minimum number of alphabetic characters
 *
 * driver:    The Passwd driver used to change the password. Valid
 *            Valid values are currently:
 *              ldap         Change the password on a ldap server
 *              sql          Change the password for sql authentication
 *                           (exim, pam_mysql, horde)
 *              poppassd     Change the password via a poppassd server
 *              smbpasswd    Change the password via the smbpasswd command
 *              expect       Change the password via an expect script
 *              vmailmgr     Change the password via a local vmailmgr daemon
 *              vpopmail     Change the password for sql based vpopmail
 *              servuftp     Change the password via a servuftp server
 *
 * params:    A params array containing any additional information that the
 *            Passwd driver needs
 *
 *            The following is a list of supported encryption/hashing methods
 *            supported by passwd
 *
 *            1) plain
 *            2) crypt
 *            3) md5-hex
 *            4) md5-base64
 *            5) smd5
 *            6) sha
 *            7) ssha
 *
 *            Currently, md5-base64, smd5, sha, and ssha require the mhash php
 *            library in order to work properly.  See the INSTALL file for
 *            directions on enabling this.  md5 passwords have caused some 
 *            problems in the past because there are different definitions of 
 *            what is a "md5 password".  Systems implement them in a different 
 *            manner.  If you are using OpenLDAP as your backend or have 
 *            migrated your passwords from your OS based passwd file, you will 
 *            need to use the md5-base64 hashing method.  If you are using a
 *            SQL database or used the PHP md5() method to create your
 *            passwords, you will need to use the md5-hex hashing method.   
 *
 * preferred: This is only useful if you want to use the same backend.php
 *            file for different machines: if the Hostname of the Passwd
 *            Machine is identical to one of those in the preferred list,
 *            then the corresponding option in the select box will include
 *            SELECTED, i.e. it is selected per default. Otherwise the
 *            first entry in the list is selected.
 */

$backends['poppassd'] = array(
    'name' => 'Example poppassd server',
    'preferred' => '',
    'password policy' => array(),
    'driver' => 'poppassd',
    'params' => array(
        'host' => 'localhost',
        'port' => 106
    )
);

$backends['servuftp'] = array(
    'name' => 'Example servuftp server',
    'preferred' => '',
    'password policy' => array(),
    'driver' => 'servuftp',
    'params' => array(
        'host' => 'localhost',
        'port' => 106,
        'timeout' => 30
    )
);

$backends['expect'] = array(
    'name' => 'Example expect script',
    'preferred' => '',
    'password policy' => array(),
    'driver' => 'expect',
    'params' => array(
        'program' => '/usr/bin/expect',
        'script' => 'scripts/passwd_expect',
        'params' => '-telnet -host localhost -output /tmp/passwd.log'
    )
);

$backends['smbpasswd'] = array(
    'name' => 'Example smbpasswd server',
    'preferred' => '',
    'password policy' => array(),
    'driver' => 'smbpasswd',
    'params' => array(
        'program' => '/usr/bin/smbpasswd',
        'host' => 'localhost'
    )
);

$backends['ldap'] = array(
    'name' => 'Example LDAP server',
    'preferred' => 'www.example.com',
    'password policy' => array(
        'minLength' => 3,
        'maxLength' => 8
    ),
    'driver' => 'ldap',
    'params' => array(
        'host' => 'localhost',
        'port' => 389,
        'basedn' => 'o=example.com',
        'uid' => 'uid',
        'realm' => '', // this will be appended to the username when
                       // looking for the userdn.
//        'userdn' => 'uid=' . Auth::getAuth() . ',o=example.com',
        'encryption' => 'crypt'
    )
);

$backends['sql'] = array (
    'name' => 'Horde Authentication',
    'preferred' => 'mail.haug.li', 
    'password policy' => array(
        'minLength' => 3,
        'maxLength' => 16,
        'maxSpace' => 0,
        'minUpper' => 0,
        'minLower' => 0,
        'minNumeric' => 0
    ),
    'driver' => 'sql',
    'params' => array(
        'phptype'    => 'mysql',
        'hostspec'   => 'localhost',
        'username'   => 'kunden',
        'password'   => '*****',  // <-- my PWD :-)
        'encryption' => 'plain',
        'database'   => 'Kunden',
        'table'      => 'EMail_users',
        'user_col'   => 'username',
        'pass_col'   => 'password'
    )
);

$backends['vmailmgr'] = array(
    'name' => 'vmailmgt Example',
    'preferred' => '',
    'password policy' => array(),
    'driver' => 'vmailmgr',
    'params' => array(
        'vmailinc' => '/your/path/to/the/vmail.inc'
    )
);

$backends['vpopmail'] = array (
    'name' => 'vpopmail Authentication',
    'preferred' => '',
    'password policy' => array(
        'minLength' => 3,
        'maxLength' => 8,
        'maxSpace' => 0,
        'minUpper' => 0,
        'minLower' => 0,
        'minNumeric' => 0
    ),
    'driver' => 'vpopmail',
    'params' => array(
        'phptype'    => 'mysql',
        'hostspec'   => 'localhost',
        'username'   => '',
        'password'   => '',
        'encryption' => 'crypt',
        'database'   => 'vpopmail',
        'table'      => 'vpopmail',
        'name'    => 'pw_name',
        'domain'  => 'pw_domain',
        'passwd' =>  'pw_passwd',
        'clear_passwd' => 'pw_clear_passwd',
        'use_clear_passwd' => true
    )
);


More information about the sork mailing list