# Problem mit authdaemonrc



## fLuffy (21. Juni 2011)

Moin, ich habe ein Prob mit maillogin bzw. Abfrage des PW, durch courier, in der mySQL Datenbank.

Ich bekomme diese Fehlermeldungen (habe debuglevel 2 beim authdaemonrc gesetzt:

```
Jun 21 04:42:31 robo46 imapd: Connection, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 04:42:31 robo46 authdaemond: received auth request, service=imap, authtype=login
Jun 21 04:42:31 robo46 authdaemond: authmysql: trying this module
Jun 21 04:42:31 robo46 authdaemond: authmysqllib: connected. Versions: header 50149, client 50157, server 50157
Jun 21 04:42:31 robo46 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/mailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", name, "" FROM virtual_users WHERE email = 'name_des_benutzers@example2.com'
Jun 21 04:42:31 robo46 authdaemond: mysql_query failed, reconnecting: Unknown column 'name' in 'field list'
Jun 21 04:42:31 robo46 authdaemond: authmysqllib: connected. Versions: header 50149, client 50157, server 50157
Jun 21 04:42:32 robo46 authdaemond: mysql_query failed second time, giving up: Unknown column 'name' in 'field list'
Jun 21 04:42:32 robo46 authdaemond: authmysql: TEMPFAIL - no more modules will be tried
Jun 21 04:42:32 robo46 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 04:42:32 robo46 imapd: authentication error: Input/output error
```
Meine authmysqlrc sieht so aus:

```
MYSQL_SERVER            127.0.0.1
MYSQL_USERNAME          vmailuser
MYSQL_PASSWORD          *******
MYSQL_PORT              3306
MYSQL_OPT               0
MYSQL_DATABASE          vmserver
MYSQL_USER_TABLE        vusers
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         5000
MYSQL_GID_FIELD         5000
MYSQL_LOGIN_FIELD       email
MYSQL_HOME_FIELD        "/home/vmailusers"
MYSQL_NAME_FIELD        name
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
```
Eine Kolumne "name" gibt es in meiner mysql datenbank nicht.

Und die authdaemonrc:

```
authmodulelist="authmysql"
authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"
daemons=5
authdaemonvar=/var/run/courier/authdaemon
DEBUG_LOGIN=2
DEFAULTOPTIONS=""
LOGGEROPTS=""
```


----------



## Till (21. Juni 2011)

Ändere mal in der authmysqlrc die Zeile:

MYSQL_NAME_FIELD        name

in

MYSQL_NAME_FIELD        email

und start dann then authdaemon neu. Oder aber Du fügst eine Spalte "name" in der mysql DB hinzu.


----------



## fLuffy (21. Juni 2011)

Gemacht. Jetzt kriege ich sowas hier:

```
Jun 21 08:23:32 robo46 imapd: Connection, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 08:23:32 robo46 authdaemond: received auth request, service=imap, authtype=login
Jun 21 08:23:32 robo46 authdaemond: authmysql: trying this module
Jun 21 08:23:32 robo46 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/vmailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", email, "" FROM vusers WHERE email = 'dummy'
Jun 21 08:23:32 robo46 authdaemond: zero rows returned
Jun 21 08:23:32 robo46 authdaemond: no password available to compare
Jun 21 08:23:32 robo46 authdaemond: authmysql: REJECT - try next module
Jun 21 08:23:32 robo46 authdaemond: FAIL, all modules rejected
Jun 21 08:23:32 robo46 imapd: LOGIN FAILED, method=PLAIN, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 08:23:38 robo46 authdaemond: received auth request, service=imap, authtype=login
Jun 21 08:23:38 robo46 authdaemond: authmysql: trying this module
Jun 21 08:23:38 robo46 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/vmailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", email, "" FROM vusers WHERE email = 'dummy'
Jun 21 08:23:38 robo46 authdaemond: zero rows returned
Jun 21 08:23:38 robo46 authdaemond: no password available to compare
Jun 21 08:23:38 robo46 authdaemond: authmysql: REJECT - try next module
Jun 21 08:23:38 robo46 authdaemond: FAIL, all modules rejected
Jun 21 08:23:38 robo46 imapd: LOGIN FAILED, user=dummy, ip=[::ffff:xx.xxx.xxx.22]
```


----------



## fLuffy (21. Juni 2011)

Ich habe festgestellt, daß ich mich falsch einloggte. Mit "dummy" statt "dummy@example1.com". Wenn ich mich mit "dummy@example1.com" anmelde, dann kommt aber dieses hier:

```
Jun 21 09:34:18 robo46 imapd: Connection, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 09:34:18 robo46 authdaemond: received auth request, service=imap, authtype=login
Jun 21 09:34:18 robo46 authdaemond: authmysql: trying this module
Jun 21 09:34:18 robo46 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/vmailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", email, "" FROM vusers WHERE email = 'dummy@example1.com'
Jun 21 09:34:18 robo46 authdaemond: password matches successfully
Jun 21 09:34:18 robo46 authdaemond: authmysql: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 09:34:18 robo46 authdaemond: authmysql: clearpasswd=<null>, passwd=**************
Jun 21 09:34:18 robo46 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 09:34:18 robo46 authdaemond: Authenticated: clearpasswd=dummypassword, passwd=**************
Jun 21 09:34:18 robo46 imapd: chdir example1.com/dummy/: No such file or directory
Jun 21 09:34:18 robo46 imapd: dummy@example1.com: No such file or directory
Jun 21 09:34:18 robo46 imapd: Connection, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 09:34:19 robo46 authdaemond: received auth request, service=imap, authtype=login
Jun 21 09:34:19 robo46 authdaemond: authmysql: trying this module
Jun 21 09:34:19 robo46 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/vmailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", email, "" FROM vusers WHERE email = 'dummy@example1.com'
Jun 21 09:34:19 robo46 authdaemond: password matches successfully
Jun 21 09:34:19 robo46 authdaemond: authmysql: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 09:34:19 robo46 authdaemond: authmysql: clearpasswd=<null>, passwd=**************
Jun 21 09:34:19 robo46 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 09:34:19 robo46 authdaemond: Authenticated: clearpasswd=dummypassword, passwd=**************
Jun 21 09:34:19 robo46 imapd: chdir example1.com/dummy/: No such file or directory
Jun 21 09:34:19 robo46 imapd: dummy@example1.com: No such file or directory
```
Das scheint irgendein imapd fehler zu sein. 

In der imapd steht:

```
ADDRESS=0
PORT=143
MAXDAEMONS=40
MAXPERIP=20
PIDFILE=/var/run/courier/imapd.pid
TCPDOPTS="-nodnslookup -noidentlookup"
LOGGEROPTS="-name=imapd"
IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE"
IMAP_KEYWORDS=1
IMAP_ACL=1
IMAP_CAPABILITY_ORIG="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-MD5 AUTH=CRAM-SHA1 AUTH=CRAM-SHA256 IDLE"
IMAP_PROXY=0
IMAP_PROXY_FOREIGN=0
IMAP_IDLE_TIMEOUT=60
IMAP_MAILBOX_SANITY_CHECK=1
IMAP_CAPABILITY_TLS="$IMAP_CAPABILITY AUTH=PLAIN"
IMAP_CAPABILITY_TLS_ORIG="$IMAP_CAPABILITY_ORIG AUTH=PLAIN"
IMAP_DISABLETHREADSORT=0
IMAP_CHECK_ALL_FOLDERS=0
IMAP_OBSOLETE_CLIENT=0
IMAP_UMASK=022
IMAP_ULIMITD=131072
IMAP_USELOCKS=1
IMAP_SHAREDINDEXFILE=/etc/courier/shared/index
IMAP_ENHANCEDIDLE=0
IMAP_TRASHFOLDERNAME=Trash
IMAP_EMPTYTRASH=Trash:7
IMAP_MOVE_EXPUNGE_TO_TRASH=0
SENDMAIL=/usr/sbin/sendmail
HEADERFROM=X-IMAP-Sender
IMAPDSTART=YES
MAILDIRPATH=/home/vmailusers/Maildir
AUTHMODULES="authdaemon"
```


----------



## Till (21. Juni 2011)

Du musst erstmal eine Email an den Account senden, bevor Du Dich per imap einloggen kannst. Denn sonst existiert das maildir nicht.


----------



## fLuffy (21. Juni 2011)

Habs gemacht, aber keine Verbesserung. Naja, eine schon - der meldet sich offenbar schon an und das pw wird akzeptiert, aber irgendwas mit den directory stimmt nicht:

```
Jun 21 10:01:53 robo46 imapd: dummy@example1.com: No such file or directory
Jun 21 10:01:53 robo46 imapd: Connection, ip=[::ffff:xx.xxx.xxx.22]
Jun 21 10:01:53 robo46 authdaemond: received auth request, service=imap, authtype=login
Jun 21 10:01:53 robo46 authdaemond: authmysql: trying this module
Jun 21 10:01:53 robo46 authdaemond: SQL query: SELECT email, password, "", 5000, 5000, "/home/vmailusers", CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/'), "", email, "" FROM vusers WHERE email = 'dummy@example1.com'
Jun 21 10:01:53 robo46 authdaemond: password matches successfully
Jun 21 10:01:53 robo46 authdaemond: authmysql: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 10:01:53 robo46 authdaemond: authmysql: clearpasswd=<null>, passwd=*************
Jun 21 10:01:53 robo46 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 10:01:53 robo46 authdaemond: Authenticated: clearpasswd=dummypassword, passwd=*************
Jun 21 10:01:53 robo46 imapd: chdir example1.com/dummy/: No such file or directory
Jun 21 10:01:53 robo46 imapd: dummy@example1.com: No such file or directory
```
Eigentlich das gleiche wie vorhin...


----------



## Till (21. Juni 2011)

Dann wurde das verzeichnis nicht angelegt. Sieh mal im mail log nach, welche Fehler Du beim senden einer Nachricht an das postfach erhältst.


----------



## fLuffy (21. Juni 2011)

hi, eigentlich nicht viel anders:

```
Jun 21 11:57:49 robo46 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 11:57:49 robo46 authdaemond: Authenticated: clearpasswd=dummypassword, passwd=*************
Jun 21 11:57:49 robo46 imapd: chdir example1.com/dummy/: No such file or directory
Jun 21 11:57:49 robo46 imapd: dummy@example1.com: No such file or directory
Jun 21 11:57:50 robo46 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=example1.com/dummy/, quota=<null>, options=<null>
Jun 21 11:57:50 robo46 authdaemond: Authenticated: clearpasswd=dummypassword, passwd=*************
Jun 21 11:57:50 robo46 imapd: chdir example1.com/dummy/: No such file or directory
Jun 21 11:57:50 robo46 imapd: dummy@example1.com: No such file or directory
```
So sieht das Verzeichnis aus:

```
ls -li /home/vmailusers/Maildir/example1.com/dummy/
total 28K
17244331 drwx------ 2 vuser vuser 4.0K May 21 01:12 cur
17244332 drwx------ 2 vuser vuser  20K Jun  6 16:43 new
17244329 drwx------ 2 vuser vuser 4.0K Jun  6 16:43 tmp
```


----------



## Till (21. Juni 2011)

versuch mal diese Änderung in der authdaemonrc:

MYSQL_MAILDIR_FIELD CONCAT('/home/vmailusers/',SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')


----------



## fLuffy (21. Juni 2011)

Du meinst in der "authmysqlrc" oder?

Wenn ich das in der "authmysqlrc" ändere, dann verändert sich leider nichts. Es kommt exakt die gleiche Fehlermeldung wie zuletzt.


```
Jun 21 18:03:59 robo46 authdaemond: Authenticated: sysusername=<null>, sysuserid=5000, sysgroupid=5000, homedir=/home/vmailusers, address=dummy@example1.com, fullname=dummy@example1.com, maildir=/home/vmailusers/example1.com/dummy/, quota=<null>, options=<null>
Jun 21 18:03:59 robo46 authdaemond: Authenticated: clearpasswd=dummypassword, passwd=***********
Jun 21 18:03:59 robo46 imapd: chdir /home/vmailusers/example1.com/dummy/: No such file or directory
Jun 21 18:03:59 robo46 imapd: dummy@example1.com: No such file or directory
```
Mir fällt aber etwas neues auf. In der Fehlermeldung steht jetzt:

```
chdir /home/vmailusers/example1.com/dummy/:
```
Der Pfad ist aber:

```
/home/vmailusers/Maildir/example1.com/dummy/
```


----------



## Till (21. Juni 2011)

Dann prüf mal in postfix, ob da der Pfad richtig konfiguriert ist. Welches Tutorial hast Du denn für den Server verwendet?


----------



## fLuffy (21. Juni 2011)

HAhaha !!!

Ich habe die Lösung! Es funktioniert jetzt. 

Erstens:

```
MYSQL_MAILDIR_FIELD CONCAT('/home/vmailusers/Maildir/',SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
```
Zwotens:
Es gab ein Verzeichnis namens

```
/home/vmailusers/Maildir/dummy2
```
statt

```
/home/vmailusers/Maildir/dummy
```
Das muss wohl alt gewesen sein, das hatte ich mal vor einem Monat angelegt und es trägt den Namen eines lokalen Linux Benutzers. Also aus "dummy2" einfach mal "dummy" gemacht und schon klappt es !!!

Jippiieee - *danke schön Till für Deine große Hilfe*. Ich habe die Lösung seit bereits 1,5 Monaten gesucht!!!


----------



## fLuffy (21. Juni 2011)

Zitat von Till:


> Dann prüf mal in postfix, ob da der Pfad richtig konfiguriert ist. Welches Tutorial hast Du denn für den Server verwendet?


Ich hatte leider nur teils ein Tutorial benutzt. Denn von dem Tut erfuhr ich erst, als ich schon sehr weit voran war mit meinen Einstellungen. Daher habe ich nur die Abschließenden Arbeiten anhand des Tutorials von hier gemacht.

Dieser Thread hängt mit meinem älteren zusammen:
http://www.howtoforge.de/forum/fragen-zu-howtos-6/problem-mit-mailserver-und-sql-4529/

Da konnte mir leider keiner helfen. Du hast da übrigens auch geschrieben. Es ging erst los als ich das Debugging bei "authdaemonrc" auf "2" gesetzt habe. Und dieser Thread ist nun der glänzende Abschluss.

Nochmal - Vielen, vielen Dank!!!


----------

