[sork] passwd ignores hostspec parameter in backends.php
Joris
joris at ideeel.nl
Mon Apr 24 13:47:23 PDT 2006
>>
>>
>>At least a notation of this behaviour (and a mention than other options
>>can be added) would be really usefull.
>
>Sure - patch?
How about this? (attachment)
joris
-------------- next part --------------
<?php
/**
* $Horde: passwd/config/backends.php.dist,v 1.41 2005/08/24 07:11:05 jan 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
*
* The following are the types of characters required
* in a password. Either specific characters, character
* classes, or both can be required. Specific types are:
*
* 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
* minSymbol Minimum number of alphabetic characters
*
* Alternatively (or in addition to), the minimum number of
* character classes can be configured by setting the
* following. The valid range is 0 through 4 character
* classes may be required for a password. The classes are:
* 'upper', 'lower', 'number', and 'symbol'. For example:
* A password of 'p at ssw0rd' satisfies three classes ('number',
* 'lower', and 'symbol'), while 'passw0rd' only satisfies
* two classes ('lower' and 'symbols').
*
* minClasses Minimum number (0 through 4) of character classes.
*
* driver: The Passwd driver used to change the password. Valid
* Valid values are currently:
* ldap Change the password on a ldap server
* smbldap Change the password on a ldap server for both
* ldap and samba auth
* 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
* pine Change the password in a Pine-encoded file
* composite Allows you to chain multiple drivers together
*
* no_reset: Do not reset the authenticated user's credentials on success.
*
* 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 or crypt-des
* 3) crypt-md5
* 4) crypt-blowfish
* 5) md5-hex
* 6) md5-base64
* 7) smd5
* 8) sha
* 9) 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.
*
* show_encryption: If you are using the sql or the vpopmail backend
* you have the choice whether or not to store the
* encryption type with the password. If you are
* using for example an SQL based PAM you will most
* likely not want to store the encryption type as it
* would cause PAM to never match the passwords.
*
*/
$backends['hordesql'] = array (
'name' => 'Horde Authentication',
'preferred' => '',
'password policy' => array(
'minLength' => 3,
'maxLength' => 8,
'maxSpace' => 0,
'minUpper' => 1,
'minLower' => 1,
'minNumeric' => 1,
'minSymbols' => 1
),
'driver' => 'sql',
'params' => array_merge($conf['sql'],
array('table' => 'horde_users',
'user_col' => 'user_uid',
'pass_col' => 'user_pass',
'show_encryption' => false)),
);
$backends['poppassd'] = array(
'name' => 'Example Poppassd Server',
'preferred' => '',
'password policy' => array(),
'driver' => 'poppassd',
'params' => array(
'host' => 'localhost',
'port' => 106
)
);
$backends['servuftp'] = array(
'name' => 'Example Serv-U FTP 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' => dirname(__FILE__) . '/../scripts/passwd_expect',
'params' => '-telnet -host localhost -output /tmp/passwd.log'
)
);
$backends['smbpasswd'] = array(
'name' => 'Example Samba Server',
'preferred' => '',
'password policy' => array(),
'driver' => 'smbpasswd',
'params' => array(
'program' => '/usr/bin/smbpasswd',
'host' => 'localhost'
)
);
// NOTE: to set the ldap userdn, see horde/config/hooks.php
$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',
// this will be appended to the username when looking for the userdn.
'realm' => '',
'encryption' => 'crypt',
// make sure the host == cn in the server certificate
'tls' => false
)
);
// NOTE: to set the ldap userdn, see horde/config/hooks.php
$backends['ldapadmin'] = array(
'name' => 'Example LDAP Server with Admin Bindings',
'preferred' => 'www.example.com',
'password policy' => array(
'minLength' => 3,
'maxLength' => 8
),
'driver' => 'ldap',
'params' => array(
'host' => 'localhost',
'port' => 389,
'basedn' => 'o=example.com',
'admindn' => 'cn=admin,o=example.com',
'adminpw' => 'somepassword',
'uid' => 'uid',
'attribute' => 'clearPassword',
// this will be appended to the username when looking for the userdn.
'realm' => '',
'encryption' => 'crypt',
// make sure the host == cn in the server certificate
'tls' => false
)
);
// NOTE: to set the ldap userdn, see horde/config/hooks.php
// NOTE: to make work with samba 2.x schema you must change lm_attribute and
// nt_attribute
$backends['smbldap'] = array(
'name' => 'Example Samba/LDAP Server',
'preferred' => 'www.example.com',
'password policy' => array(
'minLength' => 3,
'maxLength' => 8
),
'driver' => 'smbldap',
'params' => array(
'host' => 'localhost',
'port' => 389,
'basedn' => 'o=example.com',
'uid' => 'uid',
// this will be appended to the username when looking for the userdn.
'realm' => '',
'encryption' => 'crypt',
// make sure the host == cn in the server certificate
'tls' => false,
'lm_attribute' => 'sambaLMPassword',
'nt_attribute' => 'sambaNTPassword',
'pw_set_attribute' => 'sambaPwdLastSet',
'pw_expire_attribute' => 'sambaPwdMustChange',
'pw_expire_time' => 180, // number of days until samba password expires
)
);
$backends['sql'] = array (
'name' => 'Exampe SQL Server',
'preferred' => '',
'password policy' => array(
'minLength' => 3,
'maxLength' => 8,
'maxSpace' => 0,
'minUpper' => 1,
'minLower' => 1,
'minNumeric' => 1,
'minSymbols' => 1
),
'driver' => 'sql',
'params' => array(
'phptype' => 'mysql',
'hostspec' => 'localhost',
'protocol' => 'unix'
'socket' => '/var/lib/mysql/mysql.sock';
'username' => 'dbuser',
'password' => 'dbpasswd',
'encryption' => 'md5-hex',
'database' => 'db',
'table' => 'users',
'user_col' => 'user_uid',
'pass_col' => 'user_pass',
'show_encryption' => false
// any values that are missing or removed from this list default to those used
// by the horde prefs (/config/conf.php uner section ['sql'])
//
// The following two settings allow you to specify custom queries for
// lookup and modify functions if special functions need to be
// performed. In places where a username or a password needs to be
// used, refer to this placeholder reference:
// %u -> gets substituted with the user
// %p -> gets substituted with the plaintext password
// %e -> gets substituted with the encrypted password
//
// 'query_lookup' => 'SELECT user_pass FROM horde_users WHERE user_uid = %u',
// 'query_modify' => 'UPDATE horde_users SET user_pass = %e WHERE user_uid = %u',
)
);
$backends['vmailmgr'] = array(
'name' => 'Example VMailMgr Server',
'preferred' => '',
'password policy' => array(),
'driver' => 'vmailmgr',
'params' => array(
'vmailinc' => '/your/path/to/the/vmail.inc'
)
);
$backends['vpopmail'] = array (
'name' => 'Example Vpopmail Server',
'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,
'show_encryption' => true
)
);
$backends['pine'] = array(
'name' => 'Example Pine Password File',
'preferred' => '',
'password policy' => array(),
'driver' => 'pine',
'no_reset' => true,
'params' => array(
// FTP server information.
'host' => 'localhost',
'port' => '21',
'path' => '',
'file' => '.pinepw',
// Connect using the just-passed-in password?
'use_new_passwd' => false,
// Host string to look for in the encrypted file.
'imaphost' => 'localhost'
)
);
// This is an example configuration for chaining multiple drivers to allow for
// syncing of passwords across many backends using the composite driver as a
// wrapper.
//
// Each of the subdrivers may contain an optional parameter called 'required'
// that, when set to true, will cause the rest of the drivers be skipped if a
// particular one fails.
$backends['composite'] = array(
'name' => 'Example All Services',
'preferred' => '',
'password policy' => array(
'minLength' => 3,
'maxLength' => 8,
'minClasses' => 2,
),
'driver' => 'composite',
'params' => array('drivers' => array(
'sql' => array(
'name' => 'Horde Authentication',
'driver' => 'sql',
'required' => true,
'params' => array(
'phptype' => 'mysql',
'hostspec' => 'localhost',
'username' => 'horde',
'password' => '',
'encryption' => 'md5-hex',
'database' => 'horde',
'table' => 'horde_users',
'user_col' => 'user_uid',
'pass_col' => 'user_pass',
'show_encryption' => false
// 'query_lookup' => '',
// 'query_modify' => '',
),
),
'smbpasswd' => array(
'name' => 'Samba Server',
'driver' => 'smbpasswd',
'params' => array(
'program' => '/usr/bin/smbpasswd',
'host' => 'localhost',
),
),
)),
);
$backends['kolab'] = array(
'name' => 'Local Kolab Server',
'preferred' => '',
'password policy' => array(
'minLength' => 3,
'maxLength' => 8
),
'driver' => 'kolab',
'params' => array()
);
$backends['myscript'] = array(
'name' => 'example.com',
'preferred' => 'localhost',
'password policy' => array(),
'driver' => 'procopen',
'params' => array(
'program' => '/path/to/my/script + myargs'
)
);
More information about the sork
mailing list