URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 69491
[ Назад ]

Исходное сообщение
"Как найти в лдап пользователя с максимальным UID?"

Отправлено schizoid , 12-Окт-06 12:42 
Либо я плохо знаю лдап, либо рнр...

возникает потребность находить последнего созданного пользователя(тоесть с максимальным UID-ом).
В МуСКЛе это элементарно, сделал запрос, отсортировал прямо в запросе, лимит 1 и все!
А в ЛДАПе такое возможно?

Как решения приходят в голову ткаие способы:
выбрать всех пользователей, отсортировать полученый массив уже средствами РНР, найти последний...

или при добавлении пользователя присваивать его ЮИД виртуальному пользователю LastUser и потом брать это значение.

но все это кажется кривым.
Подскажите идею.


Содержание

Сообщения в этом обсуждении
"Как найти в лдап пользователя с максимальным UID?"
Отправлено Gennadi , 12-Окт-06 13:53 
>Либо я плохо знаю лдап, либо рнр...
>
>возникает потребность находить последнего созданного пользователя(тоесть с максимальным UID-ом).
>В МуСКЛе это элементарно, сделал запрос, отсортировал прямо в запросе, лимит 1
>и все!
>А в ЛДАПе такое возможно?
>
>Как решения приходят в голову ткаие способы:
>выбрать всех пользователей, отсортировать полученый массив уже средствами РНР, найти последний...
>
>или при добавлении пользователя присваивать его ЮИД виртуальному пользователю LastUser и потом
>брать это значение.
>
>но все это кажется кривым.
>Подскажите идею.

ldapsearch -H ldap://localhost -D cn=Manager,dc=domain,dc=org -w PaSSword -x -b ou=Users,dc=domain,dc=org "(uid=*)" uidNumber |  grep uidNumber | sed -e 's/^uidNumber://' | sort -nr | head -n 1 | awk {'print $1'}


"Как найти в лдап пользователя с максимальным UID?"
Отправлено schizoid , 12-Окт-06 17:41 
>
>ldapsearch -H ldap://localhost -D cn=Manager,dc=domain,dc=org -w PaSSword -x -b ou=Users,dc=domain,dc=org "(uid=*)" uidNumber
>|  grep uidNumber | sed -e 's/^uidNumber://' | sort -nr
>| head -n 1 | awk {'print $1'}

отето да...
Не сомневаюсь - работает, но вопервых это надо не в командной строке, а в вебстранице, во вторых,надеялся что есть способ сделать самим запросом.
Можно, нет?


"Как найти в лдап пользователя с максимальным UID?"
Отправлено Gennadi , 12-Окт-06 21:38 
>отето да...
>Не сомневаюсь - работает

работает....

> но вопервых это надо не в командной строке, а в вебстранице

...PHP-script не может эту команду обработать?.. Странно...

>во вторых,надеялся что есть способ сделать самим запросом.

... дык вроде это это как бы и запрос и ответ?...

>
>Можно, нет?

... ну незнаю....

можа чего-то недопонимаю...


"йЮЙ МЮИРХ Б КДЮО ОНКЭГНБЮРЕКЪ Я ЛЮЙЯХЛЮКЭМШЛ UID?"
Отправлено schizoid , 13-Окт-06 12:40 
>
>> МН БНОЕПБШУ ЩРН МЮДН МЕ Б ЙНЛЮМДМНИ ЯРПНЙЕ, Ю Б БЕАЯРПЮМХЖЕ
>
>...PHP-script МЕ ЛНФЕР ЩРС ЙНЛЮМДС НАПЮАНРЮРЭ?.. яРПЮММН...

ю ЛНФЕР?
йНЦДЮ РН БПНДЕ БХДЕК ВРН ПМП БШОНКМЪЕР ТСМЙЖХЧ Б ЙНЛЮМДМНИ ЯРПНЙЕ, МН ЙНЦДЮ МЮДН АШКН - МЕМЮЬЕК.
йХМЭ ОНФЮКСИЯРЮ, ЛНФЕР НОЪРЭ ОНМЮДНАХРЯЪ

>>БН БРНПШУ,МЮДЕЪКЯЪ ВРН ЕЯРЭ ЯОНЯНА ЯДЕКЮРЭ ЯЮЛХЛ ГЮОПНЯНЛ.
>... ДШЙ БПНДЕ ЩРН ЩРН ЙЮЙ АШ Х ГЮОПНЯ Х НРБЕР?...
>... МС МЕГМЮЧ....
>ЛНФЮ ВЕЦН-РН МЕДНОНМХЛЮЧ...

УНПНЬН
ДКЪ ОПХЛЕПЮ ГЮОПНЯ ЛСЯЙКЮ, ЛНФЕР Я НЬХАЙЮЛХ
select uid from users sort by uid limit 1;

ЩРНР ГЮОПНЯ БНГБПЮЫЮЕР НДМН ЕДХМЯРБЕММНЕ ГМЮВЕМХЕ,
РБНИ ФЕ ГЮОПНЯ БНГБПЮЫЮЕР ГМЮВЕМХЪ ЧХДНБ бяеу ОНКЭГНБЮРЕКЕИ Х РНКЭЙН СФЕ ПМП ЕЦН ЯНПРХПСЕР Х ОНКСВЮЕР ОНЯКЕДМХИ.
мЕ ЙЮФЕРЯЪ РЕАЕ МЕЛМНЦН МЕПЮЖХНМЮКЭМШЛ?


"йЮЙ МЮИРХ Б КДЮО ОНКЭГНБЮРЕКЪ Я ЛЮЙЯХЛЮКЭМШЛ UID?"
Отправлено Gennadi , 13-Окт-06 13:23 
>твой же запрос возвращает значения юидов ВСЕХ пользователей

??????

Сейчас выполнил эту команду на моём сервере.

Мой запрос возвращает значения UID ПОСЛЕДНЕГО пользователя.

получил 1054

UID_MAX=1054

потом создаю нового пользователя с новым UID...

где UID_NEW=`expr $UID_MAX + 1`


"йЮЙ МЮИРХ Б КДЮО ОНКЭГНБЮРЕКЪ Я ЛЮЙЯХЛЮКЭМШЛ UID?"
Отправлено schizoid , 13-Окт-06 15:24 
>>твой же запрос возвращает значения юидов ВСЕХ пользователей
>??????
>Сейчас выполнил эту команду на моём сервере.
>Мой запрос возвращает значения UID ПОСЛЕДНЕГО пользователя.
>получил 1054
>UID_MAX=1054
>потом создаю нового пользователя с новым UID...
>где UID_NEW=`expr $UID_MAX + 1`

Вот это запрос:
ldapsearch -H ldap://localhost -D cn=Manager,dc=domain,dc=org -w PaSSword -x -b ou=Users,dc=domain,dc=org "(uid=*)" uidNumber
На каторый сервер возвращает все ЮИДы

А все остальное это скрипт который выбирает из запроса максимальный ЮИД...

...в общем спасибо за желание помочь.