Ich bekomme nicht genügend Zugriffsfehler mit ldap_modify mit OpenLDAP 2.4.32 und PHP 5.4.6.PHP ldap_modify Unzureichender Zugriff
Die PHP-Funktion, der die Fehler geben sieht wie folgt aus:
function set_user($dn, $password, $data)
{
/* This function sets the users infomation */
// Get Configuration Items
$ldapServer = $this->config->item('ldapServer');
$ldapDCRoot = $this->config->item('ldapDCRoot');
// Connect to LDAP
$ldapConnection = ldap_connect($ldapServer);
if($ldapConnection)
{
$r = ldap_bind($ldapConnection, $dn, $password);
if ($r)
{
// Bind completed successfully
$r = ldap_modify($ldapConnection, $dn, $data);
return True;
}
die("Unsuccessful Bind");
}
die("Can't connect to LDAP");
}
Die $ dn die volle DN des Benutzers versuchen, ihre Informationen zusammen mit ihr Passwort zu ändern. Und $ data sind die Werte, die sie aktualisieren, gerade jetzt enthalten Daten nur die Telefonnummer, um $ data ['mobile'] = "newPhoneNumber" zu ändern. Dies scheint alles zu funktionieren, außer dass die Daten nie wirklich geschrieben wurden.
Die Openldap-Datei ist unten enthalten, wie Sie sehen können die ACL sagt, dass ich in der Lage sein sollte, darauf zu schreiben.
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
TLSCertificateFile /etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
access to *
by self write
by users read
by anonymous auth
database bdb
suffix "dc=example,dc=com"
checkpoint 1024 15
rootdn "cn=manager,dc=example,dc=com"
rootpw REDACTED
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
Die Frage ist, warum kann PHP den Wert nicht aktualisieren und erhält stattdessen einen unzureichenden Zugriffsfehler?
Bevor Sie Ihr Anruf(), um ldap_connect, versucht 'ldap_set_option (NULL, LDAP_OPT_DEBUG_LEVEL, 7);', die eine Reihe von Debug-Ausgabe an dem Apache globalen Fehlerprotokoll-Dump wird (es _will not_ Dump ein vhost spezifische log oder zu Ihrer 'error_log' Einstellung.) – miken32