У меня есть эта проблема, у меня есть пользователь, выбранный в LDAP через поиск ldap, дающий только атрибут gid.Поиск имени группы из Ldap GID
$ldapattributes = array("gidnumber");
$ldapdn = "o=example";
$ldapfilter = "(sn=".$ldapuname."*)";
$ldapbind = ldap_bind($ldapconn, $ldapuname, $ldappass) or trigger_error('Could not bind to '.$ldaphost);
$sr = ldap_search($ldapconn,$ldapbasedn,$ldapfilter,$ldapattributes);
var_dump($sr);
$entry = ldap_get_entries($ldapconn, $sr);
var_dump($entry);
результат я получаю от vardump является:
'gidnumber' => массив 'Count' => Int 1 0 => строка '1617' (длина = 4)
Я знаю, что 1617 - это число, которое правильно отображает группу, которую я хочу, но я бы хотел, чтобы текст, приписываемый ей в другом месте, говорит, что это «ConfSer». Я не смог узнать, где это, или как я могу превратить gid в другой фильтр, чтобы получить имя и информацию этой конкретной группы (поэтому я могу перенаправить его через файл конфигурации, который выдает разрешения).
EDIT: Я получаю «CN = Ldaptst2 Majtst, O = пример» в результатах. Но ни одна из них на самом деле не группа ... просто полное имя.
ли вы NSS (Name Service коммутатор) в этой системе настроен на использование каталога LDAP? Затем вы можете использовать posix_getgrgid (и другие функции posix_get *), иначе вам придется выполнить другой запрос LDAP, чтобы сопоставить gid-номер с именем группы. Иногда (openldap и т. Д.) Можно использовать специальный оверлей, чтобы дать вам имя группы в одном запросе. – kupson