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

Исходное сообщение
"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"

Отправлено TePPoPucT , 28-Апр-15 15:16 
Приветствую всех!!
Есть задача - заставить FreeBSD считывать пользователей из групп в AD на Win Server 2008R2.
Сейчас, когда пытаюсь выполнить
ldapsearch -D "user@domain.local" -x -W -b "OU=Отдел,OU=Departments,DC=domain,DC=local" -h 10.1.1.1
выдает ошибку

search: 2
result: 32 No such object
matchedDN: OU=Departments,DC=domain,DC=local
text: 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_OBJECT), data 0, best
match of:
        'OU=SIBUR Departments,DC=domain,DC=local'

Я так понимаю, что система не может считать кириллицу в названии OU, вопрос - что нужно сделать чтобы фряха смогла прочитать название?

Пробовал русифицировать консоль на koi8-r и CP1251, не помогло.
При русификации использовал вот эти статьи.
http://www.freebsd.org.ru/how-to/russian/ruconsole.html
http://www.freebsd.org.ru/how-to/russian/rulocale.html
http://www.lissyara.su/articles/freebsd/tuning/locale_charse.../
Заранее благодарю за помощь.


Содержание

Сообщения в этом обсуждении
"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено Сергей , 28-Апр-15 15:59 
>[оверквотинг удален]
> Сейчас, когда пытаюсь выполнить
> ldapsearch -D "user@domain.local" -x -W -b "OU=Отдел,OU=Departments,DC=domain,DC=local"
> -h 10.1.1.1
> выдает ошибку
> search: 2
> result: 32 No such object
> matchedDN: OU=Departments,DC=domain,DC=local
> text: 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_OBJECT), data 0, best
>  match of:
>         'OU=SIBUR Departments,DC=domain,DC=local'

Совет кривой конечно, но можно обновиться до 10.1 и в ней задействовать драйвер vt с UTF-8. Не факт что поможет...


"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено aurved , 28-Апр-15 16:39 
если searchbase (OU=Отдел,OU=Departments,DC=domain,DC=local) будет в файле, а не в командной строке, то тогда скорее c кодировкой проблема исчезнет -- изврат конечно, но может типа -b `cat filename` попробовать?

"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено TePPoPucT , 30-Апр-15 10:29 
> если searchbase (OU=Отдел,OU=Departments,DC=domain,DC=local) будет в файле, а не в командной
> строке, то тогда скорее c кодировкой проблема исчезнет -- изврат конечно,
> но может типа -b `cat filename` попробовать?

Пока не совсем понял как его заставить читать из файла и какой вообще алгоритм считывания из файла. cat filename не помог. Судя по мануалам можно заставить его читать пользователей и группы из фала, а вот путь все-равно указывают руками.
Вот тут про файл
http://www.zflexsoftware.com/zFLEXSW/index.php/products-serv...


"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено fantom , 30-Апр-15 12:19 
>> если searchbase (OU=Отдел,OU=Departments,DC=domain,DC=local) будет в файле, а не в командной
>> строке, то тогда скорее c кодировкой проблема исчезнет -- изврат конечно,
>> но может типа -b `cat filename` попробовать?
> Пока не совсем понял как его заставить читать из файла и какой
> вообще алгоритм считывания из файла. cat filename не помог. Судя по
> мануалам можно заставить его читать пользователей и группы из фала, а
> вот путь все-равно указывают руками.
> Вот тут про файл
> http://www.zflexsoftware.com/zFLEXSW/index.php/products-serv...

попробуйте конвертните в base64


"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено TePPoPucT , 21-Май-15 12:50 
>>> если searchbase (OU=Отдел,OU=Departments,DC=domain,DC=local) будет в файле, а не в командной
>>> строке, то тогда скорее c кодировкой проблема исчезнет -- изврат конечно,
>>> но может типа -b `cat filename` попробовать?
>> Пока не совсем понял как его заставить читать из файла и какой
>> вообще алгоритм считывания из файла. cat filename не помог. Судя по
>> мануалам можно заставить его читать пользователей и группы из фала, а
>> вот путь все-равно указывают руками.
>> Вот тут про файл
>> http://www.zflexsoftware.com/zFLEXSW/index.php/products-serv...
> попробуйте конвертните в base64

Спасибо за помощь, проблему решил, все оказалось намного проще.
Для нормального чтения каталогов AD у вас должна стоять первичная локаль - UTF-8.
Если же надо читать названия OU из файла - нужно заполнять этот файл в кодировке UTF-8 и тогда все будет хорошо.
Для нормальной работы с локалью UTF-8, рекомендую испольхзовать FreeBSD 10.1.
По ссылке - подробная инструкция по настройке UTF-8 на FreeBSD 10.1.
http://unix1.jinr.ru/~lavr/vt/vtcons.html


"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено universite , 29-Апр-15 22:37 
>[оверквотинг удален]
> ldapsearch -D "user@domain.local" -x -W -b "OU=Отдел,OU=Departments,DC=domain,DC=local"
> -h 10.1.1.1
> выдает ошибку
> search: 2
> result: 32 No such object
> matchedDN: OU=Departments,DC=domain,DC=local
> text: 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_OBJECT), data 0, best
>  match of:
>         'OU=SIBUR Departments,DC=domain,DC=local'
> Я так понимаю, что система не может считать кириллицу в названии OU,

Не система, а ldap.
Пробуйте использовать truss для анализа вывода.



"FreeBSD 10.0 и руcские названия OU в AD WinSrv2008R2"
Отправлено TePPoPucT , 30-Апр-15 10:25 
>[оверквотинг удален]
>> выдает ошибку
>> search: 2
>> result: 32 No such object
>> matchedDN: OU=Departments,DC=domain,DC=local
>> text: 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_OBJECT), data 0, best
>>  match of:
>>         'OU=SIBUR Departments,DC=domain,DC=local'
>> Я так понимаю, что система не может считать кириллицу в названии OU,
> Не система, а ldap.
> Пробуйте использовать truss для анализа вывода.

Я так понимаю - интересует этот кусок?
# extended LDIF
write(1,"# extended LDIF\n",16)                  = 16 (0x10)
#
write(1,"#\n",2)                                 = 2 (0x2)
# LDAPv3
write(1,"# LDAPv3\n",9)                          = 9 (0x9)
# base <OU=Отдел,OU=Departments,DC=domain,DC=local> with scope subtree
write(1,"# base <OU=\M-p\M-o\M-l\M-i\M-|"...,73) = 73 (0x49)
# filter: (objectclass=*)
write(1,"# filter: (objectclass=*)\n",26)        = 26 (0x1a)
# requesting: ALL
write(1,"# requesting: ALL\n",18)                = 18 (0x12)
#
write(1,"#\n",2)                                 = 2 (0x2)

write(1,"\n",1)                                  = 1 (0x1)
clock_gettime(13,{1430376201.000000000 })        = 0 (0x0)
write(3,"0Q\^B\^A\^BcL\^D,OU=\M-p\M-o\M-l"...,83) = 83 (0x53)
poll({3/POLLIN|POLLPRI},1,-1)                    = 1 (0x1)
read(3,"0\M^D\0\0\0\M-,\^B\^A",8)                = 8 (0x8)
read(3,"\^Be\M^D\0\0\0\M-#\n\^A \^D"OU=S"...,170) = 170 (0xaa)
# search result
write(1,"# search result\n",16)                  = 16 (0x10)
search: 2
write(1,"search: 2\n",10)                        = 10 (0xa)
result: 32 No such object
write(1,"result: 32 No such object\n",26)        = 26 (0x1a)
matchedDN: OU=Departments,DC=domain,DC=local
write(1,"matchedDN: OU=Departments,DC=d"...,46) = 46 (0x2e)
text: 0000208D: NameErr: DSID-0310020A, problem 2001 (NO_OBJECT), data 0, best
write(1,"text: 0000208D: NameErr: DSID-03"...,80) = 80 (0x50)
match of:
write(1," match of:\n",11)                       = 11 (0xb)
        'OU=Departments,DC=domain,DC=local'
write(1,"\t'OU=Departments,DC=domain,DC="...,38) = 38 (0x26)

write(1,"\n",1)                                  = 1 (0x1)

write(1,"\n",1)                                  = 1 (0x1)
# numResponses: 1
write(1,"# numResponses: 1\n",18)                = 18 (0x12)
write(3,"0\^E\^B\^A\^CB\0",7)                    = 7 (0x7)
shutdown(3,SHUT_RDWR)                            = 0 (0x0)
close(3)                                         = 0 (0x0)

Судя по всему он все-таки не может латиницу прочитать. Может как-то можно по-другому указать ему OUшку?? Типа по ObjectGUID? Правда по GUID я пробовал не помогло, может там параметр какой надо выставить чтобы по GUID искал?