207 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| ##VERSION: $Id: authmysqlrc,v 1.2 2004/08/27 10:59:30 anonymous Exp $
 | |
| #
 | |
| # Copyright 2000 Double Precision, Inc.  See COPYING for
 | |
| # distribution information.
 | |
| #
 | |
| # Do not alter lines that begin with ##, they are used when upgrading
 | |
| # this configuration.
 | |
| #
 | |
| # authmysqlrc created from authmysqlrc.dist by sysconftool
 | |
| #
 | |
| # DO NOT INSTALL THIS FILE with world read permissions.  This file
 | |
| # might contain the MySQL admin password!
 | |
| #
 | |
| # Each line in this file must follow the following format:
 | |
| #
 | |
| # field[spaces|tabs]value
 | |
| #
 | |
| # That is, the name of the field, followed by spaces or tabs, followed by
 | |
| # field value.  Trailing spaces are prohibited.
 | |
| # 
 | |
| # %%warning_message%%
 | |
| 
 | |
| ##NAME: LOCATION:0
 | |
| #
 | |
| # The server name, userid, and password used to log in.
 | |
| 
 | |
| MYSQL_SERVER		%%dbhost%%
 | |
| MYSQL_USERNAME		%%dbuser%%
 | |
| MYSQL_PASSWORD		%%dbpwd%%
 | |
| 
 | |
| ##NAME: MYSQL_SOCKET:0
 | |
| #
 | |
| # MYSQL_SOCKET can be used with MySQL version 3.22 or later, it specifies the
 | |
| # filesystem pipe used for the connection
 | |
| #
 | |
| # MYSQL_SOCKET		/var/mysql/mysql.sock
 | |
| 
 | |
| ##NAME: MYSQL_PORT:0
 | |
| #
 | |
| # MYSQL_PORT can be used with MySQL version 3.22 or later to specify a port to
 | |
| # connect to.
 | |
| 
 | |
| MYSQL_PORT		0
 | |
| 
 | |
| ##NAME: MYSQL_OPT:0
 | |
| #
 | |
| # Leave MYSQL_OPT as 0, unless you know what you're doing.
 | |
| 
 | |
| MYSQL_OPT		0
 | |
| 
 | |
| ##NAME: MYSQL_DATABASE:0
 | |
| #
 | |
| # The name of the MySQL database we will open:
 | |
| 
 | |
| MYSQL_DATABASE		%%dbname%%
 | |
| 
 | |
| ##NAME: MYSQL_USER_TABLE:0
 | |
| #
 | |
| # The name of the table containing your user data.  See README.authmysqlrc
 | |
| # for the required fields in this table.
 | |
| 
 | |
| MYSQL_USER_TABLE	mail_users
 | |
| 
 | |
| ##NAME: MYSQL_CRYPT_PWFIELD:0
 | |
| #
 | |
| # Either MYSQL_CRYPT_PWFIELD or MYSQL_CLEAR_PWFIELD must be defined.  Both
 | |
| # are OK too. crypted passwords go into MYSQL_CRYPT_PWFIELD, cleartext
 | |
| # passwords go into MYSQL_CLEAR_PWFIELD.  Cleartext passwords allow
 | |
| # CRAM-MD5 authentication to be implemented.
 | |
| 
 | |
| MYSQL_CRYPT_PWFIELD	password
 | |
| 
 | |
| ##NAME: MYSQL_CLEAR_PWFIELD:0
 | |
| #
 | |
| #
 | |
| # MYSQL_CLEAR_PWFIELD	clear
 | |
| 
 | |
| ##NAME: MYSQL_DEFAULT_DOMAIN:0
 | |
| #
 | |
| # If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user',
 | |
| # we will look up 'user@DEFAULT_DOMAIN' instead.
 | |
| #
 | |
| #
 | |
| # DEFAULT_DOMAIN		example.com
 | |
| 
 | |
| ##NAME: MYSQL_UID_FIELD:0
 | |
| #
 | |
| # Other fields in the mysql table:
 | |
| #
 | |
| # MYSQL_UID_FIELD - contains the numerical userid of the account
 | |
| #
 | |
| MYSQL_UID_FIELD		33
 | |
| 
 | |
| ##NAME: MYSQL_GID_FIELD:0
 | |
| #
 | |
| # Numerical groupid of the account
 | |
| 
 | |
| MYSQL_GID_FIELD		uid
 | |
| 
 | |
| ##NAME: MYSQL_LOGIN_FIELD:0
 | |
| #
 | |
| # The login id, default is id.  Basically the query is:
 | |
| #
 | |
| #  SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid'
 | |
| #
 | |
| 
 | |
| MYSQL_LOGIN_FIELD	alias
 | |
| 
 | |
| ##NAME: MYSQL_HOME_FIELD:0
 | |
| #
 | |
| 
 | |
| MYSQL_HOME_FIELD	path
 | |
| 
 | |
| ##NAME: MYSQL_NAME_FIELD:0
 | |
| #
 | |
| # The user's name (optional)
 | |
| 
 | |
| # MYSQL_NAME_FIELD	name
 | |
| 
 | |
| ##NAME: MYSQL_MAILDIR_FIELD:0
 | |
| #
 | |
| # This is an optional field, and can be used to specify an arbitrary
 | |
| # location of the maildir for the account, which normally defaults to
 | |
| # $HOME/Maildir (where $HOME is read from MYSQL_HOME_FIELD).
 | |
| #
 | |
| # You still need to provide a MYSQL_HOME_FIELD, even if you uncomment this
 | |
| # out.
 | |
| #
 | |
| # MYSQL_MAILDIR_FIELD	maildir
 | |
| 
 | |
| ##NAME: MYSQL_QUOTA_FIELD:0
 | |
| #
 | |
| # Define MYSQL_QUOTA_FIELD to be the name of the field that can optionally
 | |
| # specify a maildir quota.  See README.maildirquota for more information 
 | |
| #
 | |
| # MYSQL_QUOTA_FIELD	quota
 | |
| 
 | |
| ##NAME: MYSQL_WHERE_CLAUSE:0
 | |
| #
 | |
| # This is optional, MYSQL_WHERE_CLAUSE can be basically set to an arbitrary
 | |
| # fixed string that is appended to the WHERE clause of our query
 | |
| #
 | |
| # MYSQL_WHERE_CLAUSE	server='mailhost.example.com'
 | |
| 
 | |
| ##NAME: MYSQL_SELECT_CLAUSE:0
 | |
| #
 | |
| # (EXPERIMENTAL)
 | |
| # This is optional, MYSQL_SELECT_CLAUSE can be set when you have a database,
 | |
| # which is structuraly different from proposed. The fixed string will
 | |
| # be used to do a SELECT operation on database, which should return fields
 | |
| # in order specified bellow:
 | |
| #
 | |
| # username, cryptpw, uid, gid, clearpw, home, maildir, quota, fullname
 | |
| #
 | |
| # Enabling this option causes ignorance of any other field-related
 | |
| # options, excluding default domain.
 | |
| #
 | |
| # There are two variables, which you can use. Substitution will be made
 | |
| # for them, so you can put entered username (local part) and domain name
 | |
| # in the right place of your query. These variables are:
 | |
| #	 	$(local_part) and $(domain)
 | |
| #
 | |
| # If a $(domain) is empty (not given by the remote user) the default domain
 | |
| # name is used in its place.
 | |
| #
 | |
| # This example is a little bit modified adaptation of vmail-sql
 | |
| # database scheme:
 | |
| #
 | |
| # MYSQL_SELECT_CLAUSE	SELECT popbox.local_part,			\
 | |
| #			CONCAT('{MD5}', popbox.password_hash),		\
 | |
| #			domain.uid,					\
 | |
| #			domain.gid,					\
 | |
| #			popbox.clearpw,					\
 | |
| #			CONCAT(domain.path, '/', popbox.mbox_name),	\
 | |
| #			'',						\
 | |
| #			domain.quota,					\
 | |
| #			'',						\
 | |
| #			FROM popbox, domain				\
 | |
| #			WHERE popbox.local_part = '$(local_part)'	\
 | |
| #			AND popbox.domain_name = '$(domain)'		\
 | |
| #			AND popbox.domain_name = domain.domain_name
 | |
| #
 | |
| ##NAME: MYSQL_CHPASS_CLAUSE:0
 | |
| #
 | |
| # (EXPERIMENTAL)
 | |
| # This is optional, MYSQL_CHPASS_CLAUSE can be set when you have a database,
 | |
| # which is structuraly different from proposed. The fixed string will
 | |
| # be used to do an UPDATE operation on database. In other words, it is
 | |
| # used, when changing password.
 | |
| #
 | |
| # There are four variables, which you can use. Substitution will be made
 | |
| # for them, so you can put entered username (local part) and domain name
 | |
| # in the right place of your query. There variables are:
 | |
| # 	$(local_part) , $(domain) , $(newpass) , $(newpass_crypt)
 | |
| #
 | |
| # If a $(domain) is empty (not given by the remote user) the default domain
 | |
| # name is used in its place.
 | |
| # $(newpass) contains plain password
 | |
| # $(newpass_crypt) contains its crypted form
 | |
| #
 | |
| # MYSQL_CHPASS_CLAUSE	UPDATE	popbox					\
 | |
| #			SET	clearpw='$(newpass)',			\
 | |
| #				password_hash='$(newpass_crypt)'	\
 | |
| #			WHERE	local_part='$(local_part)'		\
 | |
| #			AND	domain_name='$(domain)'
 | |
| #
 |