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”
Leave a Reply
You must be logged in to post a comment.
Хотелось бы узнать у автора…
http://vsftpd.devnet.ru/files/2.1.0/ext.1/vsftpd-2.1.0-ext1.tar.gz
Если у меня уже стоит VsFTPd …
Каким образом мне устранить заплату с кодировками?
Остановить действующий демон… и make install с того что скачал по ссылке
Заранее благодарю.
Да, надо удалить установленный пакет, и вместо него поставить пропатченную версию, не забывайте делать резервную копию конфигов перед установкой, их может потереть при установки пропатченной версии.
И что работает «на ура» после установки пропатченной версии?*
Отображает корректно кириллицу:?
Косяков после установки не будет?
Да, все отлично, работает без глюков больше года.
Я не знаю, как у Вас получилось..
У меня при добавлении этих трех строк в /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 ]
Сервер установил самій последней версии… как указал автор.
В чем косяк… так как когда коментирую єти три строчки — все запускается без проблем!
Устанавливать надо пропатченный сервер, ссылка на скачивание дана выше. Тогда кодировки будут работать.
Помогите пожалуйста установить пропатченую версию. Не получается у меня никак 🙁
Установите сначала из репозиториев, затем ставьте пропатченый пакет, он заменит текущую версию.
Так в том то и проблема.. что у меня стоит установленный из репозитариев… я его останавливаю.. проделываю все как написано в файле 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, куда надо положить, или где должны быть содержащие в ней файлы?
…………..
………….
Заранее благодарен за помощь.
Так, ну я скачал vsftpd-2.1.2-ext1.diff
это я как понимаю патч к версии 2,1,2 фтп-сервера.
А как этот патч применить?.. не подскажите. Я не могу разобраться.
Не хочеться комментариями флудить.. но как бы другого выхода нету .
Поставил через 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 , соответственно доступа к файлу нету.
Чем сможете помочь? Что посоветуете?
* дяди с фрібсд.jpg — название и отображение в браузере
* дяді з фрібсд.jpg — в свойствах файла.
Странно, у Вас конфертирует набор символов в кириллицу…
«тъѾті з фрібсд»
при запуске выдает следующие:
root@ubuntu:/home# /usr/sbin/vsftpd
500 OOPS: unrecognised variable in config file: convert_charset_enable
На указанном сайте есть деб пакет, поставьте его и успокойтесь, собирать из исходников на убунте или дебиане когда есть готовый пакет это глупо.
[…] кодировочной проблемы можно можно воспользоваться этим советом. В данный момент я уже себя корю, что не […]