vsftpd (русские имена в логах "??????")

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
yaros
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-01-17 19:46:43

vsftpd (русские имена в логах "??????")

Непрочитанное сообщение yaros » 2011-01-17 19:56:21

Народ подскажите,

Локаль utf8, vsftpd не патченый, клиенты виндовые с поддержкой utf8, в них русские файлы отображаются корректно. При скачке файлов с русскими именами в логи пишутся вместо русских букв вопросы ???????????.avi , это лечится?

Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
unix-admin
ст. сержант
Сообщения: 324
Зарегистрирован: 2010-11-26 12:43:04
Откуда: Cornucopia

Re: vsftpd (русские имена в логах "??????")

Непрочитанное сообщение unix-admin » 2011-01-17 23:37:24


yaros
проходил мимо
Сообщения: 2
Зарегистрирован: 2011-01-17 19:46:43

Re: vsftpd (русские имена в логах "??????")

Непрочитанное сообщение yaros » 2011-01-19 10:31:42

Благодарю!

Проблема решилась заменой вот этого:

Код: Выделить всё

    --- sysutil.c   Sun Apr 18 05:28:39 2004
    +++ sysutil.c   Tue Jun 29 09:40:51 2004
    @@ -874,23 +874,7 @@
     int
     vsf_sysutil_isprint(int the_char)
     {
    -  /* From Solar - we know better than some libc's! Don't let any potential
    -   * control chars through
    -   */
    -  unsigned char uc = (unsigned char) the_char;
    -  if (uc <= 31)
    -  {
    -    return 0;
    -  }
    -  if (uc == 177)
    -  {
    -    return 0;
    -  }
    -  if (uc >= 128 && uc <= 159)
    -  {
    -    return 0;
    -  }
    -  return isprint(the_char);
    +  return (((unsigned char) the_char) > 31);
     }
Я правильно понял, судя по коменту в исходнике, это как то влияет на безопасность?