14:32 

Мы делили апельсин...

... много наших полегло! Или - кто бы мог подумать, что "отдать пару файлов по FTP" может оказаться ТАКОЙ проблемой!
Дано - серверЪ с FreeBSD 8.1. Самба, отдает cp866/1251, на самой, ессно, koi8-r. Нужно предоставить доступ для внешних клиентов. Ответ? Правильно, FTP. Поднимаем FTPD (Ага, две строчки в rc.conf - ftpd_enable="YES" и ftpd_flags="-4 -r -D"), рисуем ftpchroot - в путь!
Стоп машина! Народ интересуется - "А как этим пользоваться?!" Гхм. Консольный ftp не канает ;) filezilla'ы, FAR'ы и TotalCmd тоже. "Канает" только и исключительно бра-аавзеры разных типов плюс, та-дам!!! "Проводник виндовс". Врот-тя-ноги.
Нет, бравзеры "в количестве" ftp вполне даже знают ;) и русские имена после смены кодировки ;) вполне даже читают, НО! Иё-моё все свои служебные сообщения кодирует в cp1251 и при наличии на странице одновременно koi8-r файлов и cp1251 ссылок типа "папка уровнем выше" - что-нибудь обязательно окажется в виде всем знакомых "кракозябров"(ТМ), плюс - всем известная :) проблема с буквой "я" в koi8-r... Непорядок, в общем.
Что делает админ, наткнувшись на проблему с кодировкой файлов? Праааильно - вспоминает про "богодушу-мать!данный" unicode. Создаем тестового пользователя, пишем ему в .login_class ru_RU.UTF8, с помощью convmv (Ааатличнейшая штука, если кто не знал) -f koi8-r -t utf-8 -r --notest /путь преобразуем подопытного в нужный вид, добавляем к ftpd_flags="-8", пробуем... Ну, у меня опять все работает, а вот гейтцем обиженные windows'ятники неожиданно оказываются в пролете - их ё-моё с windows ехплохером внезапно! не умеют работать с unicode'ом. От слова "совсем" - в глухую виснут при попытке что-нибудь сделать. Fail.
Преобразовывать имена файлов в cp1251 - sensored. Надо конвертить "на лету". Google говорит, что такая возможность есть у ... и у ... и ... тоже умеет... Из всего разнообразия выбираем vsftpd-ext по причине простоты настроек, небольшого размера, невдолбенной секурности - ну и некоторого знакомства с сабжем ). В портах выбираем "с RC-скриптами", компилим, ставим, правим конфиг до плюс-минус следующего вида:
anonymous_enable=NO
#Нафиг анонимусов
local_enable=YES
write_enable=NO
#Read-only
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
nopriv_user=ftpuser
chroot_local_user=YES
Всех chroot'им
userlist_enable=YES
userlist_file=/etc/ftpusers
#Явно указанных пускаем
userlist_deny=NO
#Остальных нафиг
ls_recurse_enable=YES
listen=YES
listen_ipv6=NOp
background=YES
convert_charset_enable=YES
#Осторожно, ГРАБЛИ! Кодировки субпродукт желает увидеть ИМЕННО В ТАКОМ написании
#иначе - fail "без указания причин" - работать будет в стиле "что вижу, то пою" - конвертации.

local_charset=KOI8R
remote_charset=CP1251
#Преобразуем имена файлов из koi8-r в cp1251
pasv_min_port=49152
pasv_max_port=65535
Запускаем vsftpd... и наступаем на грабли. "Этот сервер поддерживает только анонимные соединения", иди нафиг. Гхм! Вот же! Вот! anonymous_enable=NO - чего тут не понятного? Фигу, "Этот сервер...". так, его этак, переставил, воткнул, поднял, нашел чужой конфиг, воткнул, посмотрел... "не выходит каменный цветок у Данилы-мастера" и все тут. Без конфига не стартует, но на его содержимое пилюёть. Где ошибка? Праааильна, в rc-скрипте. Написать соответствующий check для скрипта мантейнер порта додумался, а вот подсунуть его в run_rc_cmd "ниасилил", мало того, видимо, чтобы "злобный враг не догадался" засунуть путь к конфигу в vsftpd_flags="" этот .... секретчик воткнул в свой супер-скрипт следующую строчку:
# vsftpd_flags="/some/path/conf.file" # Not required
Мнда. Убил бы, натурально. Минут 40 на поиск насекомого убил, но - оно таки заработало. Радует. Виндузятников.

@темы: FreeBSD, Работа

URL
Комментарии
2011-02-22 в 20:25 

Twistress
Я посчитала. Это уже черт-знает-какой пост подряд с непонятными крокозябрами. Мы так не договаривались! :protest: :protest: :protest:

Желаю нормальных постов, чтобы были понятны не только предлоги и местоимения! :umnik:

2011-02-25 в 10:30 

Тви! Для тебя - на любую тему и со всем удовольствием! Заказывай!
А то "для себя" что-то как-то вот :)

URL
2011-02-25 в 11:37 

Twistress
Можно кулинарное, можно "за жизнь". Главное, чтобы не только предлоги и местоимения понятны были. Ну, пожааалуйста! А то выходит, что Шаман вроде как есть - но его как бы и нет... :(

2011-02-25 в 13:30 

Принято! Но сначала все-таки слайды(Ц) )))))

URL
   

Танец-с-саблями на граблях

главная