Hallo,
Allereerst sorry voor het multiposten, maar ik ben er niet zeker van
waar dit bericht nou thuishoort (in de Linux- of serverside-hoek). In
ieder geval: ik ben bezig met een PHP webinterfaceje om LDAP gebruikers
aan te kunnen maken op een Linux systeem. Het toevoegen van de
gebruikers lijkt goed te gaan (als ik '$ getent passwd' doe staan ze
netjes in het lijstje), maar ik kan niet inloggen als de betreffende
gebruikers (permission denied), ook als de shell gewoon /bin/bash is. Ik
vermoed dat het ergens niet helemaal goed gaat bij het aanmaken van het
password:
// Add user to LDAP
$info['objectClass'][0] = 'inetOrgPerson';
$info['objectClass'][1] = 'posixAccount';
$info['objectClass'][2] = 'shadowAccount';
$info['cn'] = $_POST['username'];
$info['sn'] = $_POST['username'];
$info['gidNumber']= (int) $_POST['gidnumber'];
$info['uid'] = $_POST['username'];
$info['uidNumber'] = (int) getFreeUid();
$info['homeDirectory'] = $_POST['homedir'];
$info['loginShell'] = $_POST['shell'];
$info['userPassword'] = crypt($_POST['password1'], '$1$'.genPasswd(8).'$');
$dn = 'uid='.$_POST['username'].','.$GLOBALS['ldap_user_suffix'];
// add data to directory
if (!ldap_add($GLOBALS['ldap_conn'], $dn, $info))
{ echo '<span class="error">An unknown error occured while adding
user!</span><br><br>'; return; }
Hierbij is is de functie genPasswd niets anders dan een random password
generator. Bij de beschrijving in de PHP docs voor de functie crypt
staat dat de salt van een MD5 hash bestaat uit $1$<8 chars>$ en toch
lijkt Linux niet blij met dit password... Ideeen iemand?
Oh ja en nog een vraag: als ik de functie ldap_add uitvoer en er klopt
iets niet dat krijg ik een warning met een melding wat er aan de hand
is, maar in een productieomgeving zullen deze warnings meestal niet aan
staan. Hoe kan ik nou toch die warning opvangen in een string? ldap_add
returned slechts true of false.
Bedankt,
Jonathan

Likes:

Quote