марта 29 2008 06:54 пп

Настройка кодировки в vsFTPd

В этой маленькой статье описано как настроить ftp сервер vsFTPd на работу с разными кодировками,

по умолчанию он отдает пользователю список файлов и папок в кодировке системы.

Если вы используете Ubuntu, Debian то по умолчанию кодировка в системе UTF8 а у пользователей

Windows по умолчанию выставлено WIN1251. Стандартными средствами Windows у вас не получится

просматривать русские имена файлов и каталогов на вашем ftp сервере, но есть простое решение проблемы.


Официальный билд vsFTPd не поддерживает перекодировку на лету, но есть модифицированная версия, переделанная русским разработчиком, в нее включены несколько весьма полезных функций.
Скачаем последний билд с сайта http://vsftpd.devnet.ru
В наличии там имеются сборки под все распространенные системы.
Если у вас еще нет установленного ftp сервера, то советую вам ознакомится с руководством по его установке и настройке под виртуальных пользователей Здесь
Если у вас уже установлен vsFTPd то советую вам на всякий случай сделать резервный копии файлов конфигурации.

Код:


cp /etc/vsftpd.conf ~
cp /etc/pam.d/vsftpd ~

Установите скачанный пакет, и отредактируйте файл конфигурации /etc/vsftpd.conf, добавив в него строки:

Код:


convert_charset_enable=1
local_charset=CP
remote_charset=CP

CP может принимать следующие значения: UTF8, WIN1251 (1251), KOI8R (878), IBM866 (866), ISO-8859-5 (ISO5), ISO-8859-1 (LATIN1 или ISO1), ISO-8859-15 (LATIN9 или ISO15), WIN1252 (1252), ISO-8859-2 (LATIN2 или ISO2), ISO-8859-16 (ISO16) или WIN1250 (1250).

Вписываем нужные нам значения, перезапускаем сервис vsFTPd командой /etc/init.d/vsftpd restart и поверяем результаты. Проблемы клиентов с кодировками в моем случае полностью исчезли.
О других дополнениях вы можете прочитать в руководстве к данному билду vsFTPd командой man vsftpd.conf





16 комментариев »


16 комментариев to “Настройка кодировки в vsFTPd”

  1. TrEK on 29 Апр 2009 at 12:58 #

    Хотелось бы узнать у автора…
    Если у меня уже стоит VsFTPd …
    Каким образом мне устранить заплату с кодировками?
    Остановить действующий демон… и make install с того что скачал по ссылке
    http://vsftpd.devnet.ru/files/2.1.0/ext.1/vsftpd-2.1.0-ext1.tar.gz

    Заранее благодарю.

  2. Stepanoff on 29 Апр 2009 at 19:54 #

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

  3. TrEK on 18 мая 2009 at 15:03 #

    И что работает «на ура» после установки пропатченной версии?*
    Отображает корректно кириллицу:?
    Косяков после установки не будет?

  4. Stepanoff on 18 мая 2009 at 17:54 #

    Да, все отлично, работает без глюков больше года.

  5. TrEK on 09 Июл 2009 at 11:44 #

    Я не знаю, как у Вас получилось..
    У меня при добавлении этих трех строк в /etc/vsftpd.conf появляется следующие :

    root@dionis:/etc# sudo /etc/init.d/vsftpd restart
    * Stopping FTP server: vsftpd No /usr/sbin/vsftpd found running; none killed.
    [ OK ]
    * Starting FTP server: vsftpd [ OK ]

    Сервер установил самій последней версии… как указал автор.
    В чем косяк… так как когда коментирую єти три строчки — все запускается без проблем!

  6. Stepanoff on 09 Июл 2009 at 22:27 #

    Устанавливать надо пропатченный сервер, ссылка на скачивание дана выше. Тогда кодировки будут работать.

  7. TrEK on 24 Авг 2009 at 02:12 #

    Помогите пожалуйста установить пропатченую версию. Не получается у меня никак 🙁

  8. Stepanoff on 24 Авг 2009 at 10:19 #

    Установите сначала из репозиториев, затем ставьте пропатченый пакет, он заменит текущую версию.

  9. TrEK on 24 Авг 2009 at 18:47 #

    Так в том то и проблема.. что у меня стоит установленный из репозитариев… я его останавливаю.. проделываю все как написано в файле INSTALL , но так понял что запускается старая версия всфтпд-сервера, не пропатченная. Так как при добавлении в конфиг строчек: convert_charset_enable=1, local_charset=CP, remote_charset=CP, либо одной из них сервер не запускается уже.

    Скачал и пробовал ставить «06.07.2009 — vsftpd-2.1.2 (ext build 1) » , после make добавилось в ту же директорию новіх файлов, при попытке make install выдает:

    root@dionis:/home/vsftpd/trek/i/vsftpd-2.1.2-ext.1# make install
    if [ -x /usr/local/sbin ]; then \
    install -m 755 vsftpd /usr/local/sbin/vsftpd; \
    else \
    install -m 755 vsftpd /usr/sbin/vsftpd; fi
    if [ -x /usr/local/man ]; then \
    install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
    install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
    elif [ -x /usr/share/man ]; then \
    install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
    install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
    else \
    install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
    install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
    install: accessing `/usr/local/man/man8/vsftpd.8′: Not a directory
    install: accessing `/usr/local/man/man5/vsftpd.conf.5′: Not a directory
    make: *** [install] Error 1
    _____________________________________________________________________

    Копимрую вручную файлы :

    cp vsftpd /usr/local/sbin/vsftpd
    cp vsftpd.conf.5 /usr/local/man/man5
    cp vsftpd.8 /usr/local/man/man8
    cp vsftpd.conf /etc

    Но, ничего нового… сервер запускается и дальше, но при добавлении в конфиг строчек для поддержки кириллицы, сразу перестает запускатся. 🙁
    Вот я и не могу понять, что я делаю правильно, а что не так.
    Вот например, распакованую директорию /vsftpd-2.1.2-ext.1 , в которой делаю make, куда надо положить, или где должны быть содержащие в ней файлы?

    …………..
    ………….
    Заранее благодарен за помощь.

  10. TrEK on 27 Авг 2009 at 15:17 #

    Так, ну я скачал vsftpd-2.1.2-ext1.diff
    это я как понимаю патч к версии 2,1,2 фтп-сервера.
    А как этот патч применить?.. не подскажите. Я не могу разобраться.

  11. TrEK on 28 Авг 2009 at 13:16 #

    Не хочеться комментариями флудить.. но как бы другого выхода нету .

    Поставил через apt-get install vsftpd
    Скачал с вышеуказаного источника ext-версию.(В которой сделал make)… И прилагаемый к ней patch…
    Сделал patch > vsftpd-2.1.2-ext1.diff и на каждую заплатку прописывал путь к директории vsftpd-2.1.2-ext.1, нажимая Y и Ентер., и заплатки как бы ставились.. в директории с исходниками к названию старых файлов добавлялось .orig

    После patch-ения в папке с исходниками заветный make install
    Рестарт vsftpd — результата нету:
    браузер отображает файл названный кириллицей, но в свойствах файла — тьоті з фрібсд.jpg , соответственно доступа к файлу нету.

    Чем сможете помочь? Что посоветуете?

  12. TrEK on 28 Авг 2009 at 14:18 #

    * дяди с фрібсд.jpg — название и отображение в браузере
    * дяді з фрібсд.jpg — в свойствах файла.

  13. TrEK on 28 Авг 2009 at 14:26 #

    Странно, у Вас конфертирует набор символов в кириллицу…
    «тъѾті з фрібсд»

  14. TrEK on 28 Авг 2009 at 15:07 #

    при запуске выдает следующие:

    root@ubuntu:/home# /usr/sbin/vsftpd
    500 OOPS: unrecognised variable in config file: convert_charset_enable

  15. Stepanoff on 28 Авг 2009 at 19:06 #

    На указанном сайте есть деб пакет, поставьте его и успокойтесь, собирать из исходников на убунте или дебиане когда есть готовый пакет это глупо.

  16. UbuntUCluB » vsftpd, настройка по-быстрому on 05 Апр 2014 at 17:58 #

    […] кодировочной проблемы можно можно воспользоваться этим советом. В данный момент я уже себя корю, что не […]

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »



Server load average: 0.02, 0.01, 0.00
Server uptime: 20 days, 23:59
Your IP is: 54.145.117.60.