<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour installer, configurer et utiliser le paquet « <strong class="spip"> curlftpfs </strong> » permettant de monter les partitions d’un serveur ftp distant dans son propre système de fichiers. Cela permet d’ouvrir et d’enregistrer des fichiers sur votre serveur distant avec n’importe quelles applications.</p>

<p class="spip">J’ai testé ce mémo sur Debian Testing et Debian Sid, mais il doit pouvoir s’adapter aux autres distributions sans problème.</p>

<h2>Pré-requis</h2>
<p class="spip">Pour pouvoir monter un système de fichier via ftp, il faut bien évidemment disposer d’un serveur ftp opérationnel.</p>

<h2>Présentation du projet fuse</h2>
<p class="spip">Le but du projet fuse est de faciliter le développement de nouveaux programmes permettant de monter toutes sortes de systèmes de fichiers distants (ssh, ftp, webdav,...)</p>

<p class="spip">Vous trouverez plus d’informations sur le site officiel : <a href="http://fuse.sourceforge.net/" class="spip_out">http://fuse.sourceforge.net/</a></p>

<p class="spip">Sur cette page, vous trouverez la liste des logiciels utilisant le système « <strong class="spip"> fuse </strong> » et permettant de monter tous types de systèmes de fichiers distant :
<br /></p>
<li> <a href="http://fuse.sourceforge.net/wiki/index.php/FileSystems" class="spip_out">http://fuse.sourceforge.net/wiki/index.php/FileSystems</a>
<p class="spip">Ce mémo sera consacré uniquement à l’utilisation du logiciel « <strong class="spip"> curlftpfs </strong> » reposant sur « <strong class="spip"> fuse </strong> » et permettant de monter des partitions distantes via ftp.</p>

<p class="spip">Pour faire la même via SSH, vous pouvez consulter mon autre mémo sur « <strong class="spip"> ftpfs </strong> » :
<br /></p>
<li> <strong class="spip">URL du mémo </strong>
<h2>Installation et premier test</h2>
<p class="spip">Installation du paquet :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install curlftpfs</code></p>

<p class="spip">Ce paquet installera en plus les dépendances suivantes : <strong class="spip">fuse-source fuse-utils libfuse2</strong></p>

<p class="spip">Avant de pouvoir utiliser ce paquet, il faut charger le module « fuse » en mémoire :</p>

<p class="spip"><code class='spip_code' dir='ltr'># modprobe fuse</code></p>

<p class="spip">Pour charger le module automatiquement à chaque démarrage de l’ordinateur, il faut ajouter « <strong class="spip"> fuse </strong> » dans le fichier « <strong class="spip">/etc/modules</strong> »</p>

<p class="spip">Et ensuite, le montage fonctionne sans problème avec la commande suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ curlftpfs ftp://192.168.0.1 /mnt -o user=toto:LeMotDePasse</code></p>

<p class="spip">Cependant, cette méthode de montage a le très gros inconvénient de laisser le mot de passe en clair dans l’historique des commandes.</p>

<h2>Sécurisation du mot de passe </h2>
<p class="spip">Pour éviter de saisir le mot de passe dans la ligne de commandes, il faut ajouter dans le fichier « <strong class="spip"> \.netrc</strong> », une ligne de ce type :</p>

<p class="spip"><code class='spip_code' dir='ltr'>machine VotreServeurFTP login VotreLogin password VotreMotDePasse</code></p>

<p class="spip"><strong class="spip">Remarque 1 </strong> : Vous pouvez ajouter une ligne différente par serveur FTP</p>

<p class="spip"><strong class="spip">Remarque 2</strong> : Si le fichier « <strong class="spip"> \.netrc</strong> » n’existe pas, il faut le créer et il faut également limiter son accès au seul utilisateur :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ chmod 600 ~\.netrc</code></p>

<p class="spip">Avec ce nouveau fichier, la commande suivante devrait fonctionner :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ curlftpfs ftp://192.168.0.1 /mnt </code></p>

<p class="spip">Il est désormais possible d’accéder aux fichiers depuis n’importe quelles applications.</p>

<p class="spip">Le démontage de la partition peut se faire avec les deux commandes suivantes :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ fusermount -u /mnt</code></p>

<p class="spip">ou (sous root uniquement) :</p>

<p class="spip"><code class='spip_code' dir='ltr'># umount /mnt</code></p>

<h2>Montage automatique des partitions au démarrage de l’ordinateur</h2>
<p class="spip">Pour commencer, il faut savoir qu’il est possible de passer directement par « mount » pour monter une partition de type « <strong class="spip">curlftpfs </strong> ». Pour cela, il faut indiquer « <strong class="spip"> fuse </strong> » comme système de fichiers et mettre « <strong class="spip"> curlftpfs</strong># » avant le serveur ftp. Voici un exemple :</p>

<p class="spip"><code class='spip_code' dir='ltr'># mount -t fuse curlftpfs#192.168.0.0.1 /mnt</code></p>

<p class="spip">La ligne suivante insérée dans « <strong class="spip">/etc/fstab</strong> », permet de monter automatiquement la partition au démarrage de l’ordinateur à condition que le fichier « <strong class="spip"> .netrc </strong> » soit créé pour root et que le réseau soit actif lors du montage des partitions.</p>

<p class="spip"><code class='spip_code' dir='ltr'>curlftpfs#192.168.0.1 /mnt fuse defaults 0 1</code></p>

<p class="spip">Avec la ligne précédente, il n’y aura que root qui pourra accéder à la partition. Pour autoriser les autres utilisateurs, il faut utiliser le paramètre « <strong class="spip">allow_other</strong> », mais dans ce cas, il faut faire très attention à la sécurité.</p>

<p class="spip"><code class='spip_code' dir='ltr'>curlftpfs#192.168.0.1 /mnt fuse allow_other 0 1</code></p>

<h2>Problèmes rencontrés</h2>
<p class="spip">Je n’ai pas rencontré de problème particulier, mais je trouve les temps d’accès assez longs lorsqu’on passe par Internet.</p>

<p class="spip">En utilisant Konqueror avec une URL de la forme suivante, nous arrivons au même résultat et avec des temps d’accès plus rapides mais malheureusement ce type d’URL n’est pas supporté par OpenOffice.org :</p>

<p class="spip"><code class='spip_code' dir='ltr'>ftp://toto@192.0.0.13</code></p>

<h2>Autres sources d’informations</h2>
<p class="spip">La page de man de « <strong class="spip"> curlftpfs </strong> »</p>

<p class="spip">La FAQ officielle : <a href="http://fuse.sourceforge.net/wiki/index.php/SshfsFaq" class="spip_out">http://fuse.sourceforge.net/wiki/index.php/SshfsFaq</a></p>

<p class="spip">Ces deux articles sur le sujet : 
<br /></p>
<li> <a href="http://doc.ubuntu-fr.org/fuse" class="spip_out">http://doc.ubuntu-fr.org/fuse</a>
<br /><li> <a href="http://doc.ubuntu-fr.org/applications/curlftpfs" class="spip_out">http://doc.ubuntu-fr.org/applications/curlftpfs</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.2</td><td>15/07/06</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td> </td><td> </td><td> </td></tr>
</tbody>
</table>