Конвертирование кодировок на лету
МеханизмДля соответствия требованиям безопасности расширенная версия vsftpd использует внутренний механизм перекодировки символов из одной кодовой страницы в другую. Этим и обусловлен малый набор поддерживаемых кодовых страниц.
Настройка
Расширенная версия vsftpd позволяет конвертировать на лету символы из кодировки сервера в кодировку клиента. Для этого в конфигурационном файле предусмотрен ряд параметров, задающих кодовые страницы.
Параметр local_charset предназначен для задания кодовой страницы на стороне сервера.
Параметр remote_charset задает кодовую страницу на стороне клиента по умолчанию.
Параметр convert_charset_enable отвечает за включение или отключение перекодировки. Значения 0 или No отключают перекодировку, 1 или Yes - включают. По умолчанию этот параметр равен 0.
Кодовые страницы
Расширенная версия поддерживает ряд кодовых страниц, которые объединены в группы - Кирилица, Южная Европа, Центральная Европа, Западная Европа и Скандинавия. Используемые группы кодовых страниц задаются в файле charconv.h путём включения или выключения параметров VSFTP_CHARCONV_SUPPORT_CYRILLIC, VSFTP_CHARCONV_SUPPORT_WESTERN, VSFTP_CHARCONV_SUPPORT_CENTRAL, VSFTP_CHARCONV_SUPPORT_SOUTERN и VSFTP_CHARCONV_SUPPORT_NORDIC. По умолчанию vsftpd собирается с поддержкой всех кодовых страниц.
В группу Кирилических кодовых страниц включены Win-1251, Koi8-R, Koi8-U, IBM866 и ISO-8859-5.
В группу Южноевропейских страниц включена только ISO-8859-3 (Latin 3).
В группу кодовых страниц Центральной Европы включены ISO-8859-2 (Latin 2) и Win-1250.
Западной Европе доступны кодовые страницы ISO-8859-1 (Latin 1), ISO-8859-15 (Latin 9) и Win-1252.
В Скандинавской группе кодовых страниц доступны ISO-8859-4 (Latin 4) и ISO-8859-10 (Latin 6).
Синонимы кодовых страниц
Общие
- NONE
- UTF-8 или UTF8
- Win-1251, WIN1251, CP1251 или 1251
- Koi8-R, KOI8R, CP878, CP878R, 878 или 878R
- Koi8-U, KOI8U, CP878U или 878U
- IBM866, CP866 или 866
- ISO-8859-1, ISO1 или LATIN1
- ISO-8859-15, ISO15 или LATIN9
- Win-1252, WIN1252, CP1252 или 1252
- ISO-8859-2, ISO2 или LATIN2
- ISO-8859-16 или ISO16
- Win-1250, WIN1250, CP1250 или 1250
- ISO-8859-3, ISO3 или LATIN3
- ISO-8859-4, ISO4 или LATIN4
- ISO-8859-10, ISO10 или LATIN6
Как еще можно сменить кодовую страницу
Расширенная версия vsftpd позволяет менять клиентские кодовые страницы не только через основной и пользовательские конфигурационные файлы, но и с помощью задания правил анонимного доступа к серверу и доступа пользователя по IP. Также клиентскую кодовую страницу можно задать с помощью команды со стороны клиента OPTS CP <CODE_PAGE>. По команде OPTS UTF8 ON сервер начинает отвечать в UTF-8, а по команде OPTS UTF8 OFF переходить в исходный режим работы. По команде STAT можно увидеть какая кодовая страница на стороне сервера и текущая кодовая страница на стороне клиента, а также узнать включена или выключена перекодировка.