Kondrashov Nickolay wrote:

    Здравствуйте All.

    Небольшая проблема есть.

Похоже разобрался, извините если дурацкий вопрос был :)
Решение смотрите ниже...

Похоже, smbclient заменяет символ номера 'No' на символ подчеркивания '_'
в именах файлов на шаре Windows NT и не может к обратится к файлам с
этим символом в имене.

    В smb.conf
    character set = KOI8-R
    client code page = 866

    Я знаю что в koi8-r нет этого символа (и некоторых других тоже), в
отличие от cp866. Кто-нибудь смог научить smbclient обращаться с такими
файлами?
    Может как-то нужно похитрить с valid chars или character set (например
cp1251, cp866 или UTF-8), выставив локаль соответствующую, или может
какой escaping бывает? Как лучше подступиться?


Character set подходит cp1251, но использовать его, гхм, неудобно.

После просмотра исходников обнаружилось, что в source/lib/charcnv.c есть таблица перекодировки cp866-koi8r, в которой символ номера заменяется на значок копирайта (достаточно легально - оба есть только в своей кодировке). Однако выяснилось что эта таблица не используется при перекодировании имен файлов получаемых с Windows NT, поскольку в сессиях с ней используется unicode. Вместо этой таблицы используется unicode_map (в Debian они лежат в /usr/share/samba/codepages) - unicode_map.KOI8-R, исходник которой - source/codepages/CPKOI8-R.TXT.

        В этой таблице, совершенно верно, указано следующее соответствие:

0xBF    0x00A9  #       COPYRIGHT SIGN

Но это нас не устраивает, поэтому исправляем (можно просто пропатчить приложеным патчиком):

0xBF    0x2116  #       NUMERO SIGN

        Далее компилируем и устанавливаем:

$ make_unicodemap KOI8-R CPKOI8-R.TXT unicode_map.KOI8-R
# cp --backup unicode_map.KOI8-R /usr/share/samba/codepages/

На минимальных тестах работает, пока больше не пробовал. Гарантий, естественно, никаких. В понедельник попробую с Amanda :)

Спасибо за внимание, если кто-то дочитал до этого места :)

--


    С уважением,
    Кондрашов Николай,
    ИТ-менеджер
    ЗАО "Автоматика-Север"
    +7(812) 1183238, 3039648
    http://www.avt.com.ru/
    mailto:[EMAIL PROTECTED]
--- source/codepages/CPKOI8-R.TXT       Sun Jul 13 01:56:43 2003
+++ source/codepages/CPKOI8-R-NSH.TXT   Sun Jul 13 02:10:14 2003
@@ -238 +238,4 @@
-0xBF   0x00A9  #       COPYRIGHT SIGN
+#0xBF  0x00A9  #       COPYRIGHT SIGN  - commented out by Nickolay
+               #       Kondrashov to solve NT-Samba numero sign problem
+0xBF   0x2116  #       NUMERO SIGN     - added by Nickolay Kondrashov
+               #       to solve NT-Samba numero sign problem

Ответить