curlftpfs: Připojení ftp do lokálního souborového systému

Kategorie:

V prachu dějin je na blogu zapadlý článek „sshfs – ke vzdáleným souborům šifrovaně a interaktivně“, ale protokolů pro vzdálený přístup používáme více, takže je vhodné jej po dlouhé době doplnit o připojení vzdáleného ftp serveru prostřednictvím fuse do lokálního souborového systému. Protokol ftp je sám o sobě neinteraktivní a pokud je potřebné editovat soubory na serveru, může být spolupráce mezi ftp klientem a editorem otravná.

K připojení ftp[s] do souborového systému je potřeba FUSE. Filesystem in Userspace je původně linuxový modul, dnes dostupný i pro další un*xové systémy, který umožňuje neprivilegovaným uživatelům používat/vytvářet vlastní souborové systémy, nezřídka se používá pro virtuální souborové systémy, nebo pro zpřístupnění souborových systémů, jež pro neprivilegovaného uživatele nejsou přístupné. FUSE je pouze modul jádra, nad nímž stojí další systém, který zpřístupní například šifrované oddíly (EncFS), scp (SSHFS), ZFS v systému GNU/Linux, a další.

Reklama

Dalším potřebným programem je curlftpfs, jenž je delší dobu nevyvíjený, ale vzhledem k bezchybné funkčnosti by to nemělo představovat problém. Instalaci „svatou trojicí“ (./configure & make & make install) nebudu doporučovat, většina běžně používaných distribucí by měla mít program curlftpfs ve svých repozitářích.

Fedora/RHEL/CentOS:
===================
[sudo] yum install curlftpfs
Debian/Ubuntu/...:
==================
[sudo] aptitude install curlftpfs

Instalační program by měl sám doinstalovat FUSE, pokud již není na počítači používáno. Uživatelé, kteří mají mít práva používat curlftpfs (či jinou nadstavbu fuse), musí být zařazeni do skupiny fuse, např. příkazem usermod -a -G fuse jmeno_uzivatele. Dalším krokem je vytvoření adresáře, jenž se bude využívat jako bod připojení [mount point]; postačí v domovském adresáři uživatele. (mkdir ~/fuse)

Používání

Poté se lze již připojit: curlftpfs ftp.domena.tld ~/fuse/ -o user=uzivatel:heslo

Po připojení lze pracovat se soubory stejně, jako by byly v lokálním souborovém systému, což se může hodit například při editaci konfiguračních souborů webu nebo .htaccess pravidel. Pochopitelně s rychlostním omezením, daným připojením.

Pro odpojení se používá příkaz fusermount, stejně jako v libovolném filesystému připojeném prostřednictvím fuse, tj. v uvedeném příkladu se odpojení realizuje pomocí fusermount ~/fuse/ -u.

Jako každý souborový systém jde i fuse připojit trvale v /etc/fstab přidáním řádku:

curlftpfs#uzivatel:heslo@ftp.domena.tld /mnt/ftpfs fuse auto,user,uid=1000,allow_other,_netdev 0 0

a přidáním .netrc do domovské složky oprávněného uživatele, který obsahuje přístupové údaje:

machine ftp.domena.tld
login uzivatel
password heslo

Článek vyšel 21. listopadu 2012 na webu LinuxSoft.cz.