PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ldapsearch mit und ohne PHP



funky_mo
23.11.05, 14:35
Hallo zusammen,

ich habe folgendes Problem:

In meinem PHP Script führe ich folgenden Befehl aus:



exec("/usr/bin/ldapsearch -D \"$user\" -LLL -x -w $pw -h $domaincontroller" , $lines, $result);


Er fragt also an unserem DC an, ob es einen User mit dem angegeben Passwort in unserer Domäne gibt oder nicht. Der Returnwert dieses Shellkommandos wird in $result gespeichert.

Wenn ich dieses Kommando auf der Shell ausführe, dann funktioniert das korrekt, er liefert mir einen returncode von 32, bei einem falschen Passwort etwa eine 1.

Lasse ich das ganze unter PHP laufen, dann erhalte ich immer eine 1, egal ob ich korrekte oder inkorrekte Credentials angebe.

Eine falsche Füllung der Variablen kann ich zu 100% ausschliessen.

Gibt es da evtl. ein Problem mit PHP an sich? Safe Mode ist auf Off, OS ist Suse 9.2, XAMPP für Linux 1.4.16 ist installiert.

Hat jemand eine Idee?

Grüße, Moritz

Polarizer
24.11.05, 09:06
Also, das ist nicht der saubere Weg, den Du da gehen willst. PHP verfügt über LDAP-Unterstützung[1].

BTW: Auf den ersten Blick hat's wohl mit dem Nutzer zu tun, unter dem HTTP/PHP läuft.

[1] http://php.memphis.edu/forum.php?node_id=54

funky_mo
24.11.05, 13:17
Hi,

danke für deine Antwort. Ich werde mich da mal hineinlesen.

Aber zur Sicherheit: wie finde ich heraus, unter welchem Benutzer der PHP / HTTP Prozess läuft bzw. ob dieser zu diesem Kommando berechtigt ist?

Polarizer
24.11.05, 14:01
ps aux | grep apache | grep -v grep | awk '{FS="\ "}{print $1}' | uniq | nl

Für den Fall das Du apache benutzt. Der Stammprozess läuft als root, die anderen überlicherweise als wwwrun, oder was auch immer die als zweite Ausgabe erhälst.

funky_mo
24.11.05, 14:58
Dankeschön.

Mit den PHP LDAP Funktionen hat es jetzt dann auch funktioniert.

Schönen Feierabend!

Grüße, Moritz