LINUX.ORG.RU
ФорумAdmin

Samba + FTP == трабл с кодировкой


0

0

Собрал файлопомойку на основе OpenSuSE 9.2. К дискам доступ по фтп и через Самбу.

На линуксовой машине локаль UTF8. При заливке файлов с виндовых клиентов Самба автоматически конвертирует файлы из cp1251 в utf8 и на диске в шелле я русские имена вижу нормально. И Самба отдает их правильно, в IE русские имена видны сразу.

ФТП-демон vsftpd поступает гораздо проще, в какой кодировке ему дают, в такой он и заливает. Т.е. при заливке из-под винды файлы пишутся на диск в cp1251. Естественно Самба не может их нормально отобразить.

Цитирую Н.Г. Чернышевского: "Что делать?"

1) менять локаль на cp1251 (ОБИДНО, ДА?)

2) или заставить Самбу писать в cp1251 на винт. (КАК ЭТО СДЕЛАТЬ?)

3) найти фтп-клиент, меняющий кодировки на лету (КТО-НИБУДЬ ЗНАЕТ ТАКОЙ?)

Нид хелп...


в догонку:

получается при записи файлов с русскими именами через самбу, они неправильно отображаются через фтп.

при записи через фтп - они ложатся на диск в тойже кодировке и их неправильно пакзывает самбя, которая думает, что названия файлов в utf8

boatman
() автор топика

Используй proftpd (с патчем) вместо vsftpd.

ksicom
()
Ответ на: комментарий от boatman

нашел http://vsftpd.devnet.ru/eng/

и в частности

convert_charset_enable=1

local_charset=UTF8

remote_charset=WIN1251

но у меня с компиляцией проблема, то tcpd.h нету, то ошибки типов в исходниках. хотя систему ставил с исходниками. сижу разбираюсь.

но вопрос все рвно пока открытый...

boatman
() автор топика
Ответ на: комментарий от boatman

вот,ошибки такиеже как сдесь:

http://vsftpd.devnet.ru/forum/viewtopic.php?t=70

gcc -c sysdeputil.c -O2 -Wall -W -Wshadow -idirafter dummyinc

sysdeputil.c:162: ошибка: expected declaration specifiers or ‘...’ before ‘capset’

sysdeputil.c:162: ошибка: expected declaration specifiers or ‘...’ before ‘header’

sysdeputil.c:162: ошибка: expected declaration specifiers or ‘...’ before ‘data’

In file included from sysdeputil.c:170:

/usr/include/sys/sendfile.h: В функции ‘_syscall2’

/usr/include/sys/sendfile.h:35: ошибка: класс хранения в декларации параметра ‘sendfile’

посмотрел - нет у меня libpcap-devel-0.9.4-30

установлена у меня только libpcap-0.9.4-30

и нигде его в ИНете нету... видимо прийдется ждать дальнейших билдов...

boatman
() автор топика
Ответ на: комментарий от boatman

А установить недостающую библиотеку с помощью yum что мешает? Там даже пример команды есть, как доставить необходимую библиотеку. yum install libcap-devel

В принципе можно выложить и бинарник с поддержкой всех кодировок.

anonymous
()

У меня была такая же ситуация, я сделал так:

edit smb.conf

dos charset = 866

unix charset = cp1251

anonymous
()
Ответ на: комментарий от anonymous

Народ слеп и не читает до конца все, что написано.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.