freenx - клиентские шары, пароли, пользователи... (В тоске о великом и могучем (отрезано от "Курощения"))

Модераторы: dimbor, Модераторы разделов

Ответить
Civil
Сообщения: 199
ОС: Gentoo Current

freenx - клиентские шары, пароли, пользователи...

Сообщение Civil »

Ни у кого не возникает проблем с подключением, если имя клиентского компьютера на русском языке, при этом на нем есть smb-ресурсы? Клиент почему-то передает его не в той кодировке, на что сервер резонно говорит что не может форварднуть шары.

А также Windows Vista почему-то не дает доступа к принтеру:

Код: Выделить всё

nxnode_reader: NX> 700 Start addition of printer to system CUPS
NX> 700 Start addition of printer to system CUPS
server_nxnode_echo: NX> 700 Start addition of printer to system CUPS
nxnode_reader: lpstat: No destinations added.
lpstat: No destinations added.
nxnode_reader: PASSWD= smbclient -L %25C3%258D%25C3%2580%25C3%2592%25C3%2580%25C3%258B%25C3%259C%25C3%259F-%25C3%258F%25C3%258A -I 127.0.0.1 -p 5001 2>/dev/null | grep lj1005
nxnode_reader: NX-29842->--addprinter> 701 Printer %25C3%258D%25C3%2580%25C3%2592%25C3%2580%25C3%258B%25C3%259C%25C3%259F-%25C3%258F%25C3%258A_lj1005 is not accessible. Stop adding.
PASSWD= smbclient -L %25C3%258D%25C3%2580%25C3%2592%25C3%2580%25C3%258B%25C3%259C%25C3%259F-%25C3%258F%25C3%258A -I 127.0.0.1 -p 5001 2>/dev/null | grep lj1005
NX-29842->--addprinter> 701 Printer %25C3%258D%25C3%2580%25C3%2592%25C3%2580%25C3%258B%25C3%259C%25C3%259F-%25C3%258F%25C3%258A_lj1005 is not accessible. Stop adding.
nxnode_reader: NX-29842->--addprinter> 1001 Bye.
NX-29842->--addprinter> 1001 Bye.

На smbclient -L ACER -I 127.0.0.1 -p 5002 выдает:

Код: Выделить всё

Domain=[WORKGROUP] OS=[Windows Vista (TM) Home Premium 6002 Service Pack 2] Server=[Windows Vista (TM) Home Premium 6.0]

        Sharename       Type      Comment
        ---------       ----      -------
Error returning browse list: NT_STATUS_ACCESS_DENIED
Connection to ACER failed (Error NT_STATUS_CONNECTION_REFUSED)
NetBIOS over TCP disabled -- no workgroup available

Но это, видимо, можно вылечить настройкой ОС

upd: угу, принтер видится, только печать на него не идет. Висит просто задание и всё. Принтер: hp laserjet p1005, ОС на которой freenx-server: xubuntu 9.04. freenx-server: freenx-server-0.7.4-eter19.2. Виндовый клиент - 3.3.0.6-r13.6
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Civil »

Проблем не имеется, по той простой причине, что еще со времен админства NT4 до рефлекса мне вколочено: локализация имен сетевых ресурсов == лишний геморрой.
Даже если предположить, что в шмисте сделан шаг навстречу славянам, линуховый smbclient/smbmount может подкинуть веселого.

Тут ситуация такая, что Виста по умолчанию называет компьютер базируясь на имени пользователя. Если юзер Вася, то он получит название Вася-ПК. Да и даже если он SuperVasya то компьютер эта скотина называет по-умолчанию SuperVasya-ПК... А ноут с которого пробовали подключиться был попросту отобран у случайного человека. Вот и результат. Попросту у бухгалтеров странное непреодолимое желание возникает работать иногда из дома (и что людям не отдыхается?) и объяснять, что у вас не печатает под боком принтер потому, что компьютер назван по-русски и имя пользователя тоже русское - как-то выглядит странно.

логи CUPS?

Кста, купс его имя видит номально или тоже в "процентном" написании?

Помоему в процентном. Логи посмотрю в четверг.
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

Civil писал(а):
03.11.2009 09:44
Да и даже если он SuperVasya то компьютер эта скотина называет по-умолчанию SuperVasya-ПК... А ноут с которого пробовали подключиться был попросту отобран у случайного человека. Вот и результат. Попросту у бухгалтеров странное непреодолимое желание возникает работать иногда из дома (и что людям не отдыхается?) и объяснять, что у вас не печатает под боком принтер потому, что компьютер назван по-русски и имя пользователя тоже русское - как-то выглядит странно.

В таком случае предъява на беспредел принята. И надоть устраивать "разборку", но с предварительной "теркой".

Civil писал(а):
03.11.2009 09:44
логи CUPS?
Кста, купс его имя видит номально или тоже в "процентном" написании?

Помоему в процентном. Логи посмотрю в четверг.

Если так, тогда в логах отвал по таймауту.
Дело тут вот в чем:
С клиентами под XP тоже было наступлено на эти "процентные" грабли в именах шар. Латинские буквы передаются принимаются нетбиосом один в один, а дополнительные символы приходят "процентами" (upd: вернее их виндовый клиент так отправляет), но обращение далее проходит только по имени без оных.
От спешки и лени в nxnode был сделан финт ушами:

Код: Выделить всё

share="$(echo "$share" | sed 's/%23/\#/' | sed 's/%40/\@/')"

С русскими символами ситуация полностью аналогична, только вот одним sed-ом уже не обойтись.

Вопросы к народу (тупые): Что это за кодирование "%<hex1>%<hex2>..."? (Подобное наблюдается регулярно в http-запросах).
Чем перекодировать? iconv справится?

А далее два больших если. Если купс проглотит русское имя, то правка ограничится отквоченной строчкой, а нет - так придется еще и nxsmb (smb) бакэнд допиливать на тему хранения имени в транслите.
Второе и самое большое - будет ли (lib)smbclient работать с русскими именами? Нет - тогда ой!

2All: Меня давеча назначили капо в этом бараке ведущим темы "Терминальный решения". Плюсомет правда зажали, но у меня свой есть.;) Поэтому "Курощение" с наличием свободного времени будет растаскиваться по отдельным темам. Количество просмотров темы конечно чешет самолюбие, но т.к. цифра не в евро - можно пренебречь. Также ищутся желающие составить faq по терминалам, который может быть вывешен здесь сверху. О nx-е и я туда черкну пару строк.
Спасибо сказали:
vagneroot
Сообщения: 4
ОС: FreeBSD 7.2

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение vagneroot »

Подскажите плз, есть проблема - ввожу в nxclient логин (к примеру администратор), происходит ошибка авторизации - в логах sshd на сервере ошибка illegal user ????????????? from localhost. Клиент - WinXP, сервер - FreeBSD 7.2. Причем если логиниться с putty, то имя пользователя передается в человеческом виде. Подскажите - это баг клиента, или мои руки?
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Djelf »

vagneroot писал(а):
09.11.2009 11:29
логин администратор >> ошибка авторизации illegal user ?????????????
Подскажите - это баг клиента, или мои руки?

Руки тут ни при чем...

dimbor писал(а):
02.11.2009 20:09
Проблем не имеется, по той простой причине, что еще со времен админства NT4 до рефлекса мне вколочено: локализация имен сетевых ресурсов == лишний геморрой.

а также профили пользователей, пароли и т.п.

P.S. виноват NX-клиент. В логах клиента вместо русского те же "???"

Код: Выделить всё

name=????????@127.0.0.1:=:0

а код клиента закрыт, т.е. пока как следует не заработает OpenNX, думаю что-то с этим сделать весьма проблематично (и даже после этого неизвестно будет ли принимать русские буквы NX-сервер).
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Civil »

 
а код клиента закрыт, т.е. пока как следует не заработает OpenNX, думаю что-то с этим сделать весьма проблематично (и даже после этого неизвестно будет ли принимать русские буквы NX-сервер).


Он передает это nxserver'у заменяя русские буквы на %код, так что в теории можно поправить, если имеет это вообще какой-то смысл. Вот понимает ли smbclient - непонятно. Русские именя пользователей понимать должен.
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
bsavelev
Сообщения: 231
ОС: Debian

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение bsavelev »

а код клиента закрыт, т.е. пока как следует не заработает OpenNX, думаю что-то с этим сделать весьма проблематично (и даже после этого неизвестно будет ли принимать русские буквы NX-сервер).


а что конкретно не нра и не работает? можно в личку.
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Civil »

а что конкретно не нра и не работает? можно в личку.


Если имя компьютера и/или имя пользователя содержит русские буквы, принтер и шары не подключаются. Учитывая особенность свисты и т.п. называть по-умолчанию компьютер русским именем и отсутствие возможности всегда влиять на пользователей лично, может возникнуть нехорошая ситуация когда человеку прийдется долго втолковывать как изменить имя компьютера и зачем ему это нужно делать.

nxclient-же заменяет русские символы или на "?" (в настройках по умолчанию он не определяет ничего) или же на их "процентное" представление. С первым вроде бы можно бороться методом "вбить имя пользователя вручную", а вот со вторым что делать - непонятно.
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

С русскими именами юзеров в рамках существующего закрытого клиента сделать что-либо получится вряд-ли. Об этом здесь компетентные товарищи уже писали.

По поводу же ситуации с "Вася-ПК" мной были заданы сообществу конкретные вопросы. С получением на них ответов вероятность решения высока. Ответов не увидел. Сейчас это для меня не столь приоритетно. Посему сам ковыряться-разбираться сейчас не буду (тем более написал, что и на что надо изменить).
Спасибо сказали:
Civil
Сообщения: 199
ОС: Gentoo Current

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Civil »

С русскими именами юзеров в рамках существующего закрытого клиента сделать что-либо получится вряд-ли. Об этом здесь компетентные товарищи уже писали.

Да это понятно. Забавно скорее другое. Иногда в такой ситуации помогает копирование nxs-файла в какую-нибудь директорию, не содержащую русских символов. Но почему-то не всегда.

Про преобразование - удалось нагуглить такое решение:

Код: Выделить всё

echo $VALUE | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;'
"Кто управляет прошлым, тот управляет будущим; кто управляет настоящим, тот управляет прошлым" (Д. Оруэлл "1984")
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

Civil писал(а):
30.11.2009 10:08
Про преобразование - удалось нагуглить такое решение:

Код: Выделить всё

echo $VALUE | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;'

Ага, это оно. Да вот только Висты под рукой нету.
На XP же происходит следующее:
Создаем шару, называем "Шара", лезем в клиентские настройки сессии - Services - Add a new resource и получаем люлей еще там:
шара там зовется уже "Øàðà".
Далее идем по пути обмана - в nxnode, в функции cmd_node_smbmount() после строчки share=$(getparam share) вставляем:
share="$(echo $share | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;')"
Запущаем, выясняем, что от "процентной" кодировки мы избавились, но под линукс приехала та-же "Øàðà" с тем же результатом.
Далее пробуем:
share="$(echo $share | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;' | iconv -f 866 -t UTF-8)"
и в логах видим: "├Ш├а├░├а"
Прочитать то ее можно, только вот буковка "р" съелась. Интересно, причем здесь фидо?
Некоторые комбинации from перебраны, но лучше не стало, потому как нет понимания вопроса: Во что-же клиент у себя внутрях перекодирует? Узнать бы, и тогда должно сработать обратное двойное преобразование: cp1 - cp2 - UTF-8

Не получается пока русская шара на шару. :(


Upd: Протупил. Все получается обратным пёром:
share="$(echo $share | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;' | iconv -f UTF-8 -t cp1252 | iconv -f cp1251 -t UTF-8)"
для кучи там-же пишем
dir="$(echo $dir | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;')"
но в клиентском Mount on надо будет кракозябры заменять при добавлении шары. Или добавлять аналогичную конвертацию, если лень.
С $computername не пробовал - свою винду переименовывать не хоца (будете смеяться, но у меня дома домен на самбе)

Как устаканится, надо патчик сбацать. Только вот не ясно, как серверный фриэныкс будет клиентский системный кодпейдж узнавать (я к тому, что еще много есть на свете стран третьего мира и им соответствующих виндов/виндей , с которых будут пользовать фриэныкс).

Хотя все это - труд напрасный. Вот придет прекрасное завтра, наступит на яйца 4-й NX. И будет он быстр и безглючен, аки херувим. И выбросят меня на помойку с моими патчами. Мы все умрем, короче. ;)
ЗЫ: Надо бы как-то дальше вставать в десять утра, а не ложиться.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Djelf »

dimbor
Есть еще засада - OpenNX (собранный bsavelev) в диалоге выбора шары ее выбирает в правильной кодировке и сохраняет ее *.nxs в юникоде, NXClient этот вариант видит (лучше чем тот что сам делает). А вот как оно на сервер передастся после всего этого, надо еще изучать...

З.Ы. с русскими путями расположения NX можно кое-что попробовать - заменить их на "короткие" в реестре.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

Это что, opennx уже научили запускать сессии под windows? И рутлес? Тогда я все пропустил ;)

Для простоты можно завести в конфиге freenx переменную WIN_CLIENT_CP_DECODE="CP1252 CP1251" (значение для вышеописанного случая) и прописывать туда цепочку конвертаций, или оставлять ее пустой, когда все хорошо.
Если Civil сделает любезность сообщить, что там под вистой, и что выходит с $computername, то нет ничего проще патч сляпать.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Djelf »

dimbor писал(а):
02.12.2009 10:10
Это что, opennx уже научили запускать сессии под windows? И рутлес? Тогда я все пропустил ;)

Desktop пускается (не без глюков), остальное можно было бы за недельку-другую допилить... (во всяком случае на сервер строки подключения уходят правильные).

dimbor писал(а):
02.12.2009 10:10
Для простоты можно завести в конфиге freenx переменную WIN_CLIENT_CP_DECODE="CP1252 CP1251" (значение для вышеописанного случая) и прописывать туда цепочку конвертаций, или оставлять ее пустой, когда все хорошо.

Это хорошая мысль. Но надо проверить как клиенты под линукс с русскими буквами ладят. Зоопарк кодировок одним ключом не решишь ;(
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

Djelf писал(а):
02.12.2009 13:22
Но надо проверить как клиенты под линукс с русскими буквами ладят. Зоопарк кодировок одним ключом не решишь ;(

Давай это... без фанатизма. Слабо себе представляю smb-ресурс на линуксовом компе. А такой комп с сетевым именем "Вася-ПК" и ipp принтером "Васин-Принтер" - это вообще что-то из области глумления над общепингвинячими ценностями.
Спасибо сказали:
alapkov
Сообщения: 5

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение alapkov »

dimbor писал(а):
02.12.2009 17:33
Djelf писал(а):
02.12.2009 13:22
Но надо проверить как клиенты под линукс с русскими буквами ладят. Зоопарк кодировок одним ключом не решишь ;(

Давай это... без фанатизма. Слабо себе представляю smb-ресурс на линуксовом компе. А такой комп с сетевым именем "Вася-ПК" и ipp принтером "Васин-Принтер" - это вообще что-то из области глумления над общепингвинячими ценностями.


Имеем Debian Lenny. Системная локаль ru_RU.UTF-8

Код: Выделить всё

lapkov@badplace:~$ grep charset /etc/samba/smb.conf
lapkov@badplace:~$
lapkov@badplace:~$ smbclient -L LAPKOV -U Анатолий
Enter Анатолий's password:
Domain=[LAPKOV] OS=[Windows Vista (TM) Home Premium 6002 Service Pack 2] Server=[Windows Vista (TM) Home Premium 6.0]

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Удаленный Admin
        C$              Disk      Стандартный общий ресурс
        D$              Disk      Стандартный общий ресурс
        E$              Disk      Общий ресурс по умолчанию
        HP LaserJet M1522 MFP Series PCL 6 Printer   HP LaserJet M1522 MFP Series PCL 6
        IPC$            IPC       Удаленный IPC
        print$          Disk      Драйверы принтеров
        Тестовая шара Disk
Domain=[LAPKOV] OS=[Windows Vista (TM) Home Premium 6002 Service Pack 2] Server=[Windows Vista (TM) Home Premium 6.0]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------


Далее:

Код: Выделить всё

lapkov@badplace:~$ sudo mount.smbfs //lapkov/Тестовая\ шара /mnt -o "user=Анатолий,pass=xxxxxxxxxxxxxxxx"
lapkov@badplace:~$ ls /mnt/
тестовый файлик.txt
lapkov@badplace:~$



Из этого следует:
  • Русские имена машин уже не проблема
  • Русские логины уже не проблема
  • Русские имена шар уже не проблема


Как появится свободный вечер, попробую вкрутить преобразования процентной записи в utf. Если dimbor меня не опередит. :)
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

alapkov писал(а):
14.01.2010 03:53
Как появится свободный вечер, попробую вкрутить преобразования процентной записи в utf. Если dimbor меня не опередит. :)

Не опередю! Шару еще туда-сюда по русски, но все остальное просто выше моих эстетических сил. Но должно делаться аналогично.
Спасибо сказали:
alapkov
Сообщения: 5

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение alapkov »

dimbor писал(а):
14.01.2010 04:06
alapkov писал(а):
14.01.2010 03:53
Как появится свободный вечер, попробую вкрутить преобразования процентной записи в utf. Если dimbor меня не опередит. :)

Не опередю! Шару еще туда-сюда по русски, но все остальное просто выше моих эстетических сил. Но должно делаться аналогично.


Ок, аналогично, так аналогично. :)

Ко всему прочему cups умеет нормально понимать русскую языку.

Код: Выделить всё

lapkov@badplace:~$ sudo cat /etc/cups/printers.conf | grep smb
DeviceURI smb://Анатолий:xxxxxxxxxxxxxxxxxxxxx@192.168.2.16/HP LaserJet M1522 MFP Series PCL 6


И печатает.
Спасибо сказали:
dpostnov
Сообщения: 1

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dpostnov »

Уважаемые коллеги! FreeNX классная вещь до тех пор пока пользователь не начинает вводить пароли русскими буквами, например при доменной аутентификации на терминальном сервере... Кто нибудь сталкивался ли с подобной проблемой???
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

Ну значится покалякаем еще раз о делах наших скорбных.
У проблемы с локализованными именами ресурсов, именами пользователей, а также паролями (для комплекта) суть одна. Это схема передачи этих вещей в виде текста с клиента на сервер, в общем виде <wrong client's CP> - <hex> - <server's CP>. (Причем стадия hex опциональна, даже лень сейчас смотреть, есть ли она у пароля)
Схема объезда тоже найдена: на сервере нетрудно дополнительно сделать цепочку преобразований <server's CP> - <wrong client's CP>;<true client's CP> - <server's CP>.
Казалось бы все просто, ан нет. Мешает группа факторов:
1) Там выше есть слово "устаканится" - не устаканилось. Вопрос был задан, потом опять был задан. Ответа так и нету. Ну и что? Лично мне оно сейчас не надо. Надо будет - буду скрипеть.
2) Высоким штилем говоря, в тихую заводь ворвался новый игрок - opennx. Там уже изначально можно сделать все правильно, но. Мои призывы сохранить с помощью ухищрений совместимость nxs были разработчиком (Djelf) отвергнуты. Понятно - лень. Но и мне ж тоже. ;) Неохота что-то писать, чтобы потом переписывать.
3) Редизайн freenx-server идет полным ходом. Неплохо бы подождать чутка, пока его разработчик (bsavelev) приведет систему в равновесное состояние, чтобы было из чего ее выводить ;)
4) Во всем виноват как обычно - Этерсофт. ;) Завел себе "торговую марку" RX, а назначить пастуха для его расползающихся друг от друга компонентов - не назначил (хотя в личной переписке и обещал).

Вот так и живем.
А нежелающие влезать в эти дрязги, но желающие "русофилии" берут в мозолистые руки mcedit (в очень мозолистые - vim) и правят nxnode под свои потребности. Там все просто.
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Djelf »

Вы не забыли что кроме 1251 еще и другие языки есть? Фриц такой патч не примет.
Исправление кодировки в nxs NXClient>OpenNX в таком виде: 1252>системная>UTF-8 возможно пройдет, а вот обратный процесс: поддержка бага записи в кривом виде от NXClient... сомневаюсь.

В любом случае, строки подключения с обоих клиентов уходят на freenx одинаковые.
Можно прописать русский каталог 2 раза, но в обоих клиентах, тогда она будет с них кидаться корректно и двоится не будет (клиент каталог не видит - монтировать не пытается).

Проверил:
dimbor писал(а):
01.12.2009 08:37
share="$(echo $share | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;' | iconv -f UTF-8 -t cp1252 | iconv -f cp1251 -t UTF-8)"
dir="$(echo $dir | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;')"


Вот так получилось:

Код: Выделить всё

share="$(echo $share | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;' | iconv -f UTF-8 -t cp1252 | iconv -f cp1251 -t UTF-8)"
dir="$(echo $dir | perl -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;' | iconv -f UTF-8 -t cp1252 | iconv -f cp1251 -t UTF-8)"
и
iocharset=utf8,codepage=cp866 в mount

Как и писал выше, каталог прописан 2 раза, в каждом из клиентов.
При заходе с обоих клиентов каталог смонтировался, дубликатов нет.

А вот с паролем по русски пока ничего сделать не удалось: mount.cifs (cifs от etersoft) вываливается с сообщением: mount error(12): Cannot allocate memory
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

В процессе ковыряния с шарами и принтерами ненароком зацепил их русские имена. Перекодировать их перлом в любом случае надо, так что ж русиш не добавить?
Но тогда уж хочется сделать универсально. Вопрос к Djelf: вроде как здесь ты предложил из opennx просовывать какой-нить параметр для идентификации его наличия фриэныксом. Как бы мне из под nxnode --addshare и --addprinter (для начала) его поймать?
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Djelf »

dimbor писал(а):
22.07.2010 06:24
Но тогда уж хочется сделать универсально.

Выше

(Djelf) писал(а):В любом случае, строки подключения с обоих клиентов уходят на freenx одинаковые.

Так что расширение "-client=opennx" не нужно.
Оно задумывалось когда перекодировки на стороне сервера не было и была идея перекодировать в OpenNX, ну а после проверок оказалось что все идентично и перекодировать в OpenNX исходящие строки не надо. Как я не сопротивлялся, но придется все таки написать в OpenNX перекодироку русских букв для совместности с NXClient.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

Djelf писал(а):
22.07.2010 10:29
Как я не сопротивлялся, но придется все таки написать в OpenNX перекодироку русских букв для совместности с NXClient.

Оки! Значит трудюсь с той перекодировкой, которая уже была изобретена. Русскими предполагаются только: computername, sharename, printername, mountpoint. Юзера с паролем - в пень. Добавь, если что забыл. (Можно конечно воткнуть обработку всех и всяческих параметров, даже легче будет сделать. Но, блин, оно все там и так не сильно быстрое.)
Спасибо сказали:
Djelf
Сообщения: 615
ОС: Гигтег+Цшт32

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение Djelf »

dimbor писал(а):
22.07.2010 13:11
Юзера с паролем - в пень.

Юзера то можно... а вот русские пароли все равно бесполезно т.к. их не воспринимает cifs.
Спасибо сказали:
dimbor
Ведущий рубрики
Сообщения: 1569
Статус: Подвинутый участник

Re: freenx - клиентские шары, пароли, пользователи...

Сообщение dimbor »

1) Совершил стаскивание найденных постов по национальной направленности в новую тему.

2) Выкладываю код для вставки в nxnode, реализующий решенную выше сообща проблему.
В новые релизы фриэныкса его пока включать не надо. Надо потестить и найти подводные камни.
Соответственно, ищутся люди, могущие это сделать (с наличием "русофилических" клиентов).
Если найдется добрый человек и исправит мой пиджин в описаниях на нормальный английский, буду тоже ему очень благодарен. Смысл там понять можно, надеюсь.

В 10-samba.conf (node.conf) добавляется:

Код: Выделить всё

# How to inteprete internationmal symbols in win-client resource-names.
# Contains none,one or more charsets pairs - arguments "[from]>[to]" of iconv command
# if none, it's equivalent of system charset, eg ">cp1252 cp1251>" == "UTF-8>cp1252 cp1251>UTF-8"
WIN_CP_CONVERT_CHAIN=">cp1252 cp1251>"


Проверку в nxloadconfig добавлю позже, пока непринципиально.

В nxnode добавляем новую функцию (поближе к началу):

Код: Выделить всё

norm_param()
# arg: string
# normalize string (thnx 2Civil at unixforum.org) and convert his
# charset if needed
{
    nxlog "$FUNCNAME: starting with args \"$@\""
    res="$(echo "$@" | $COMMAND_PERL -pe 's/%([A-Fa-f0-9]{2})/pack('C',hex($1))/seg;')"
    nxlog "$FUNCNAME: after normalize res == \"$res\""
    #nxlog "$FUNCNAME: WIN_CP_CONVERT_CHAIN== \"$WIN_CP_CONVERT_CHAIN\""
    for cp_pair in $WIN_CP_CONVERT_CHAIN; do
        cp_from="$(echo "$cp_pair" | cut -d\> -f1)"
        [ -n "$cp_from" ] || cp_from="UTF-8"
        cp_to="$(echo "$cp_pair" | cut -d\> -f2)"
        [ -n "$cp_to" ] || cp_to="UTF-8"
        res="$(echo "$res" | iconv -f $cp_from -t $cp_to)"
        #nxlog "$FUNCNAME: converting $cp_from > $cp_to == \"$res\""
    done
    nxlog "$FUNCNAME: return res === \"$res\""
    echo $res
}


Туда же в cmd_node_smbmount() в начало после установки переменных (с get_param) :

Код: Выделить всё

        # normalize '
        username=$(norm_param $username)
        password=$(norm_param $password)
        share=$(norm_param $share)
        dir=$(norm_param $dir)
        computername=$(norm_param $computername)


В cmd_node_addprinter() аналогично:

Код: Выделить всё

        # normalize
        username=$(norm_param $username)
        password=$(norm_param $password)
        share=$(norm_param $share)
        computername=$(norm_param $computername)


PS: ага, пасворд без толку, но вдруг в светлом завтра?
PPS: Пакет iconv должен быть установлен, само собой.
Спасибо сказали:
Ответить