Problem mit authdaemonrc

#1
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:
Code:
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:
Code:
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:
Code:
authmodulelist="authmysql"
authmodulelistorig="authuserdb authpam authpgsql authldap authmysql authcustom authpipe"
daemons=5
authdaemonvar=/var/run/courier/authdaemon
DEBUG_LOGIN=2
DEFAULTOPTIONS=""
LOGGEROPTS=""
 
Zuletzt bearbeitet:

Till

Administrator
#2
Ä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.
 
#3
Gemacht. Jetzt kriege ich sowas hier:
Code:
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]
 
#4
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:
Code:
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:
Code:
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"
 
Zuletzt bearbeitet:

Till

Administrator
#5
Du musst erstmal eine Email an den Account senden, bevor Du Dich per imap einloggen kannst. Denn sonst existiert das maildir nicht.
 
#6
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:
Code:
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

Administrator
#7
Dann wurde das verzeichnis nicht angelegt. Sieh mal im mail log nach, welche Fehler Du beim senden einer Nachricht an das postfach erhältst.
 
#8
hi, eigentlich nicht viel anders:
Code:
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:
Code:
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
 
Zuletzt bearbeitet:

Till

Administrator
#9
versuch mal diese Änderung in der authdaemonrc:

MYSQL_MAILDIR_FIELD CONCAT('/home/vmailusers/',SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
 
#10
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.

Code:
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:
Code:
chdir /home/vmailusers/example1.com/dummy/:
Der Pfad ist aber:
Code:
/home/vmailusers/Maildir/example1.com/dummy/
 
Zuletzt bearbeitet:
#12
HAhaha !!!

Ich habe die Lösung! Es funktioniert jetzt.

Erstens:
Code:
MYSQL_MAILDIR_FIELD CONCAT('/home/vmailusers/Maildir/',SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
Zwotens:
Es gab ein Verzeichnis namens
Code:
/home/vmailusers/Maildir/dummy2
statt
Code:
/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!!!
 
#13
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!!!

:D:D:D:D
 

Werbung

Top