Re: smbclient: замена символа номера на подчеркивание
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:knu@avtsev.spb.ru
--- 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
Reply to: