Давным давно столкнулся с проблемой когда ни один из клиентов, типа Filezilla, Far FTP Plugin, Far Navigator и другие, не может отобразить содержимое каталогов при подключении к серверу.
FAR FTP Plugin ругается на что не может отпарсить вывод, Filezilla показывает файлы перемешивая дату и имя файла и не даёт двигаться по каталогам.
Как оказалось ftpd наследует локаль пользователя который запускал или перезапускал демона через /etc/rc.d/ и отдаёт данные в этой локали всем клиентам которые подключаются к серверу.
Имея LANG=ru_RU.UTF-8(ru_RU.KOI8-R) и перезапустив ftpd через /etc/rc.d/ftpd restart, при подключении через штатный ftp клиент мы получаем следующую картинку.
Соответственно такой же кривой вывод отдаётся и всем другим клиентам которые просто напросто не могут распарсить полученные данные. Поэтому имя файла мешается с датой или не показывается вообще ничего. Если вдруг клиент умеет полноценный UTF-8, то всё равно полученный вывод будет корректно виден в клиенте, но клиент не сможет ничего сделать с файлами.
при рестарте ftpd с LANG=C всё возвращается на круги своя.
Проблема в том, что стартовые скрипты не чистят значение LANG, наследуя его от текущего юзера.
Имейте это ввиду при настройке серверов.
FAR FTP Plugin ругается на что не может отпарсить вывод, Filezilla показывает файлы перемешивая дату и имя файла и не даёт двигаться по каталогам.
Как оказалось ftpd наследует локаль пользователя который запускал или перезапускал демона через /etc/rc.d/ и отдаёт данные в этой локали всем клиентам которые подключаются к серверу.
Имея LANG=ru_RU.UTF-8(ru_RU.KOI8-R) и перезапустив ftpd через /etc/rc.d/ftpd restart, при подключении через штатный ftp клиент мы получаем следующую картинку.
ftp> ls test
229 Entering Extended Passive Mode (|||64671|)
150 Opening ASCII mode data connection for '/bin/ls'.
total 212
-rw-r--r-- 1 aborche wheel 15457 23 п╟п©я─ 10:51 crypttest.txt
-rw-r--r-- 1 aborche wheel 193509 29 я▐пҐп╡ 2009 falling_into_a_black_hole.jpg
drwxr-xr-x 2 aborche wheel 512 27 п╟п╡пЁ 11:36 geo
drwxr-xr-x 2 aborche wheel 512 27 п╟п╡пЁ 11:36 release
drwxr-xr-x 3 aborche wheel 512 27 п╟п╡пЁ 11:36 scripts
226 Transfer complete.
Соответственно такой же кривой вывод отдаётся и всем другим клиентам которые просто напросто не могут распарсить полученные данные. Поэтому имя файла мешается с датой или не показывается вообще ничего. Если вдруг клиент умеет полноценный UTF-8, то всё равно полученный вывод будет корректно виден в клиенте, но клиент не сможет ничего сделать с файлами.
при рестарте ftpd с LANG=C всё возвращается на круги своя.
ftp> ls test
229 Entering Extended Passive Mode (|||64395|)
150 Opening ASCII mode data connection for '/bin/ls'.
total 212
-rw-r--r-- 1 aborche wheel 15457 Apr 23 10:51 crypttest.txt
-rw-r--r-- 1 aborche wheel 193509 Jan 29 2009 falling_into_a_black_hole.jpg
drwxr-xr-x 2 aborche wheel 512 Aug 27 11:36 geo
drwxr-xr-x 2 aborche wheel 512 Aug 27 11:36 release
drwxr-xr-x 3 aborche wheel 512 Aug 27 11:36 scripts
226 Transfer complete.
Проблема в том, что стартовые скрипты не чистят значение LANG, наследуя его от текущего юзера.
Имейте это ввиду при настройке серверов.
(C) Aborche 2009