pam_MySQL

NC

Angesehenes Mitglied
Hallo!
Ich versuch grad was mit pam_mysql...
rolleyes.gif
So funktioniert auch schon alles:
CODE #%PAM-1.0
auth sufficient pam_unix.so
auth sufficient pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3
account sufficient pam_unix.so
account sufficient pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3
password required pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3

smile.gif

Aber so gehts nicht:

CODE #%PAM-1.0
auth sufficient pam_unix.so
auth sufficient pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3 where=locked="no"
account sufficient pam_unix.so
account sufficient pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3 where=locked="no"
password required pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3 where=locked="no"

und dann kommt:

QUOTE Mar 26 12:01:08 empsrv01 saslauthd[4217]: pam_mysql - SELECT passwort FROM bm60_users WHERE email = 'caspar@emailpoint.de' AND (locked=\"no\")
Mar 26 12:01:08 empsrv01 saslauthd[4217]: pam_mysql - MySQL error(You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\"no\")' at line 1)



blink.gif

Der Sinn dahinter ist, dass überprüft werden soll, dass der Wert im Feld "locked" [enum('yes', 'no')] "no" ist.... Was mach ich falsch?
unsure.gif

Wieso wird "no" in der Abfrag zu \"no\"? Ist das korrekt?
 
Weil die Anführungszeichen escaped sind, was nicht sein darf. So wird das nicht als String anerkannt. Versuch es doch mal mit einfachen Anführungszeichen (Single Quote).



MfG Sascha Ahlers
 
QUOTE (Sascha Ahlers @ So 26.3.2006, 13:50) Weil die Anführungszeichen escaped sind, was nicht sein darf. So wird das nicht als String anerkannt. Versuch es doch mal mit einfachen Anführungszeichen (Single Quote).



MfG Sascha Ahlers

Dann siehts so aus:


QUOTE Mar 26 17:37:57 empsrv01 saslauthd[4210]: pam_mysql - SELECT passwort FROM bm60_users WHERE email = 'caspar@emailpoint.de' AND (locked=\'no\')
Mar 26 17:37:57 empsrv01 saslauthd[4210]: pam_mysql - MySQL error(You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'no\')' at line 1)

Wieso wird das immer escaped?
sad.gif
 
Versuch es doch mal so:

CODE account sufficient      pam_mysql.so    user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3 where="locked='on'"



MfG Sascha Ahlers
 
QUOTE (Sascha Ahlers @ So 26.3.2006, 17:23)

CODE account sufficient pam_mysql.so user=[usr] passwd=[pw] db=usr_web2_1 table=bm60_users usercolumn=email passwdcolumn=passwort crypt=3 where="locked='on'"



QUOTE Mar 26 22:18:53 empsrv01 saslauthd[4210]: pam_mysql - SELECT passwort FROM bm60_users WHERE email = 'caspar@emailpoint.de' AND (\"locked=\'on\'\")
Mar 26 22:18:53 empsrv01 saslauthd[4210]: pam_mysql - MySQL error(You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\"locked=\'on\'\")' at line 1)

mad.gif
Wieso wird immer alles escaped?

//EDIT: Grad noch das gesehen:

QUOTE Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - option verbose is set to "1"
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - option where is set to ""locked='on'""
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_close_db() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_sm_authenticate() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_open_db() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_open_db() returning 0.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_check_passwd() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_format_string() called
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_quick_escape() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_quick_escape() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_quick_escape() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_quick_escape() called.
Mar 26 22:19:36 empsrv01 saslauthd[4214]: pam_mysql - pam_mysql_quick_escape() called.


Wo stell ich das aus?
 
QUOTE (Nils Caspar @ So 26.3.2006, 16:40)
QUOTE Mar 26 17:37:57 empsrv01 saslauthd[4210]: pam_mysql - SELECT passwort FROM bm60_users WHERE email = 'caspar@emailpoint.de' AND (locked=\'no\')
Mar 26 17:37:57 empsrv01 saslauthd[4210]: pam_mysql - MySQL error(You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'no\')' at line 1)

Wieso wird das immer escaped?
sad.gif


Hallo,

In der Fehlermeldung ist dein Email-Value ist nicht escaped. Schau dich mal, wo sich die Werte unterscheiden.

Gruss

Bernd R. Rickert
 
Zurück
Oben