1 (edytowany przez baniaczek 2012-02-16 03:21:55)

Temat: Polskie znaki, FTP i Samba

Może komuś się przyda. Temat trudny, bo trzeba skompilować pakiet. No chyba, że nasz mentor i opiekun się zlituje i włączy go do swojego repozytorium.

Cel: mieć na routerze pliki z polskimi znakami diakrytycznymi i poprawnie i spójnie je obsługiwać z poziomu FTP i Samby.
A po co pliki z takimi znakami? Żeby się tytuły filmów w kliencie DLNA ładnie pokazywały.

W obrazach od Cezarego jest Samba i ślicznie obsługuje UTF-8. A jak nie masz samby, to gdzieś tu jest poradnik.
W obrazach od Cezarego jest wbudowany serwer ftp (vsftpd), niestety nie obsługuje UTF-8.
Jest na OpenWrt serwer pure-ftpd, który mógłby obsługiwać UTF-8, ale w repozytoriach jest wersja skompilowana bez tej właściwości. Trzeba samodzielnie.
O tu: http://eko.one.pl/?p=openwrt-kompilacja jest opisane jak to się robi.

Trzeba zmienić ten plik: opt/backfire/feeds/packages/net/pure-ftpd/Makefile
Po linii:
include $(INCLUDE_DIR)/package.mk
trzeba dopisać
include $(INCLUDE_DIR)/nls.mk
O tak:

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk

W sekcji "define Package/pure-ftpd" trzeba dopisać
DEPENDS+=+libiconv-full

O tak:

define Package/pure-ftpd
  $(call Package/pure-ftpd/Default)
  TITLE+= (no TLS)
  VARIANT:=notls
  DEPENDS+=+libiconv-full
endef

W sekcji "define Package/pure-ftpd-tls"
trzeba zmienić do linii DEPENDS+ dopisać +libiconv-full
O tak:

define Package/pure-ftpd-tls
  $(call Package/pure-ftpd/Default)
  TITLE+= (TLS)
  VARIANT:=tls
  DEPENDS+=+libopenssl +libiconv-full
endef

I ostatnia zmiana: do konfiguracji (tej pierwszej)
CONFIGURE_ARGS += \
trzeba dodać:
--with-rfc2640
O tak (zwróć uwagę na dodatkowy backslash):

CONFIGURE_ARGS += \
    --with-everything \
    --with-virtualchroot \
    --with-rfc2640

Opcjonalnie:
dodałem sobie jeszcze linijkę opisu w "define Package/pure-ftpd/description"
i zmieniłem PKG_RELEASE=1 na PKG_RELEASE:=1.rfc2640

Zmiany w pliku trzeba zapisać :)

Odpalamy: make menuconfig
Zaznaczamy w: packages/Network/FileTransfer pakiety oba: pure-ftpd i pure-ftpd-tls (tak, żeby była przy nich literka 'M')
Kompilujemy: make package/pure-ftpd/compile
i z katalogu opt/backfire/bin/blahblah/packages wyciągamy świeżutkie pakiety.
Wystarczy je skopiować do routera i zainstalować używając pełnej nazwy pliku. Jakoś tak:
"opkg install /etc/doc/packages/pure-ftpd-tls_1.0.32-1.rfc2640_ar71xx.ipk"
Jeśli w systemie jest zainstalowany vsftpd, to czas go wyłączyć:
/etc/init.d/vsftpd stop
/etc/init.d/vsftpd disable

pure-ftp konfiguruje się o tak: http://openwrt.pl/doku.php/zastosowania:uslugi_nas
Uwaga: możesz mieć już w systemie użytkownika "ftp". Sprawdź w /etc/passwd, jaki ma katalog domowy i sprawdź, czy ma tam wytaczające uprawnienia
W pliku /etc/config/pure-ftpd trzeba dodać dwie nowe opcje:

        option fscharset        'iso-8859-2'
        option clientcharset    'UTF-8'

Jeśli wszystko było ok, to pozostało tylko:

/etc/config/init.d/pure-ftpd start
/etc/config/init.d/pure-ftpd enable

Uwaga: ani Firefox, ani IE nie obsługują poprawnie UTF-8.
W Firefoxie: trzeba ręcznie wybrać zestaw znaków: UTF-8,
W IE: "Aby wyświetlić tę witrynę FTP w Eksploratorze Windows, naciśnij klawisz Alt, kliknij opcję Widok, a następnie kliknij opcję Otwórz witrynę FTP w Eksploratorze Windows"
Dobre klienty ftp (jak na przykład FileZilla) poprawnie negocjują i wykorzystują zadane kodowanie znaków.

A przy okazji: pure-ftpd-tls po odpowiednim nakarmieniu certyfikatami obsługuje ftps://

2

Odp: Polskie znaki, FTP i Samba

vsftpd jest w obrazach dlatego że zajmuje mniej miejsca. Wielokrotnie mniej miejsca niż inne demony ftp. Coś za coś.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Polskie znaki, FTP i Samba

Cezary napisał/a:

vsftpd jest w obrazach dlatego że zajmuje mniej miejsca. Wielokrotnie mniej miejsca niż inne demony ftp. Coś za coś.

I, co trzeba wyraźnie powiedzieć, uchodzi za bardziej bezpieczny. A wsparcie dla kodowania znaków w nazwach plików w pure-ftpd jest "experimental", a nie "stable".