[Postfixbuch-users] Passwortaenderung via Webmail

Oliver Stephan thorac at gmx.de
Sa Feb 4 23:21:26 CET 2006


Hallo,

Jan Scholten schrieb:
> ich versteh deine Struktur nicht ganz..
> Was meinst Du mit Ordner Email?

Ordner war der falsche Ausdruck, ich versuche nochmal meine Datenban,
und Tabellen darzustellen

der Benutzer mit rechten zum ändern in mysql: mailadmin
passwort: secret

Db: 	mail
Ort: 	localhost
TB1:	users
Content:email (ist Benutzername)
	password
	quota
TB2:	domains
TB3:	transport
TB4:	forwardings

hoffe ich hab das etwas klarer Darstellen können.
Die Passwörter sind dort im Encrypt format von Mysql gespeichert.

> Trag halt entsprechend ein:
> $mysql_server = 'localhost';
> 
> // Database and table that SASL uses for auth
> $mysql_database = 'mail';
> $mysql_table = 'email';  # bzw user.. halt da wo die Passwörter und User drinnen stehen
> 
> // The names of the user ID and password columns
> $mysql_userid_field = 'email';
> $mysql_password_field ='password';
> 
> // The user to log into MySQL with (must have rights)
> $mysql_manager_id = 'mail';
> $mysql_manager_pw = 'MySQLPasswort';
> 
> Das Ding erwartet also eine Tabelle in der DB, wo Du
> Usernamen und Password drinnen gespeichert hast.. Aus deiner Beschreibung werde ich nicht ganz
> schlau ;-)

s.o., hoffe das hilft, also Tabellen sind erstellt und das Mailsystem
läuft auch damit :-)

> Also bei mir sieht das so aus:
> auf meinem DB Host (localhost) hab ich einen Datenbank mail, auf die der User mail mit dem PW:
> "MySQLPasswort" zugreifen darf. dort befindet sich eine Tabelle "accountuser" in der es unter anderem
> den Usernamen und das Password gibt.. und so schauts dann bei mir aus.
> 
>          // The MySQL Server that SASL uses
>         $mysql_server = 'localhost';
> 
>         // Database and table that SASL uses for auth
>         $mysql_database = 'mail';
>         $mysql_table = 'accountuser';
> 
>         // The names of the user ID and password columns
>         $mysql_userid_field = 'username';
>         $mysql_password_field ='password';
> 
>         // The user to log into MySQL with (must have rights)
>         $mysql_manager_id = 'mail';
>         $mysql_manager_pw = 'MySQLPasswort';
> 
> 
> 
>         //---------------------------------------------------------
>         // Password encryption (or lack thereof)
>         //---------------------------------------------------------
> 
>         // Set only one of the options below to 1.
> 
>         // Set to 1 if the password column is encrypted
>         // using the MySQL password() function.
>         $mysql_saslcrypt = 0;
> 
>         // Set to 1 if the password column is encrypted
>         // using the UNIX crypt() function.
>         $mysql_unixcrypt = 1;
> 
>         // Set to 1 if the password column is to use MD5 encryption
>         $mysql_MD5crypt = 0;

ich weiss halt leider mir nicht zu Helfen wo ich die änderungen
eintragen kann damit das Plugin mit meiner Datenbankstruktur
zurechtkommt. Wo ausser in der config.php muss ich noch nachsehen?
Hier schiebe ich die Standardconfig ohne Kommentare und mit kleinen
Änderungen  rein:


/**
  * SquirrelMail Change SQL Password Plugin
  * Copyright (C) 2001-2002 Tyler Akins
  *               2002 Thijs Kinkhorst <kink at users.sourceforge.net>
  *               2002-2005 Paul Lesneiwski <paul at openguild.net>
  * This program is licensed under GPL. See COPYING for details
  *
  * @package plugins
  * @subpackage Change SQL Password
  *
  */


   global $csp_dsn, $password_update_queries, $lookup_password_query,
          $force_change_password_check_query, $password_encryption,
          $csp_salt_query, $csp_salt_static, $csp_secure_port,
          $csp_non_standard_http_port, $csp_delimiter, $csp_debug,
          $min_password_length, $max_password_length,
$include_digit_in_password,
          $include_uppercase_letter_in_password,
$include_lowercase_letter_in_password,
          $include_nonalphanumeric_in_password;




   //$csp_dsn = 'mysql://user:password@localhost/email_users';

muss bei mir wohl lauten:
$csp_dsn = 'mysql://mailadmin:secret@127.0.0.1/mail';

(oder auch statt 127.0.0.1 localhost, aber geh nicht über nen socket bei
mysql, deswegen dachte ich die IP)


   $lookup_password_query = 'SELECT count(*) FROM users WHERE username =
"%1" AND crypt_password = %4';



   // password_update_queries
   //
   // An array of SQL queries that will all be executed
   // whenever a password change attempt is made.
   //
   // Any number of queries may be included here.
   // The queries will be executed in the order given here.
   //
   //   %1 in all queries will be replaced with the full username
   //      (including domain), such as "jose at example.com"
   //   %2 in all queries will be replaced with the username (without
   //      any domain portion), such as "jose"
   //   %3 in all queries will be replaced with the domain name,
   //      such as "example.com"
   //   %4 in all queries will be replaced with the new password
   //      in whatever encryption format is needed per other
   //      plugin configuration settings (Note that the syntax of
   //      the password will be provided depending on your
   //      encryption choices, so you NEVER need to provide quotes
   //      around this value in the queries here.)
   //   %5 in all queries will be replaced with the new password
   //      in unencrypted plain text - BEWARE!  If you do not use
   //      any password encryption, %4 and %5 will be the same
   //      values, except %4 will have double quotes around it
   //      and %5 will not.
   //
   $password_update_queries = array(
            'UPDATE users SET crypt_password = %4 WHERE username = "%1"',



   $force_change_password_check_query = '';



   $password_encryption = 'MYSQLENCRYPT';

-> das ist der Algorithmus mit dem meine Passwörter verschlüsselt sind

   $csp_salt_static = '';


   $csp_salt_query = 'SELECT salt FROM users WHERE username = "%1"';

   $csp_secure_port = 0;



   $csp_non_standard_http_port = 0;



   $min_password_length = 6;
   $max_password_length = 0;
   $include_digit_in_password = 0;
   $include_uppercase_letter_in_password = 0;
   $include_lowercase_letter_in_password = 0;
   $include_nonalphanumeric_in_password = 0;



   $csp_delimiter = '@';



   $csp_debug = 0;



?>

Danke
Oliver



Mehr Informationen über die Mailingliste Postfixbuch-users