Ceci est une ancienne révision du document !


CurlFtpFS

Site officiel

Article en cours d'élaboration commentaires et et discussion ici.

CurlFtpFS sert à monter sur son système de fichier, un autre système de fichier distant, à travers une connexion FTP, le tout avec des droits utilisateur. L'avantage est de manipuler les données distantes avec n'importe quel gestionnaire de fichier (Nautilus, Konqueror, ROX, ou même la ligne de commande), ce qui est bien plus pratique que les commandes consoles de ftp ou des logiciels comme gFTP.

Tout d'abord, il vous faudra installer et configurer FUSE, dont dépend CurlFtpFS.

CurlFtpFS n'est pas disponible en paquet Ubuntu, il faut donc le compiler (correction : le paquet curlftpfs est disponible pour Feisty, branche universe). Ce n'est pas un gros programme, la compilation est simple et rapide. Premièrement, il faut récupérer les dernières sources sur le site officiel (curlftpfs 0.9 est la dernière version actuellement), vous pouvez également suivre les instructions qui suivent :

~Checkinstall va vous créer un .deb et l'ajouter directement dans votre base de donnée, ce qui veut dire que pourrez le désinstaller directement dans synaptic, et le réinstaller grâce au .deb.


ATTENTION ⇒ Pour les distrib DAPPER 6.06 Lors de la compilation, le ./configure ne marche pas car il cherche une librairie libcurl plus récente que celle distribuée par la dapper. La solution est donc une fois l'install réalisée, de télécharger les dernières sources de curl (télécharger) et de les compiler (./configure && make && sudo make install). Une fois les librairies installées par votre compil de curl vous pourrez continuer la procédure normale (compil de curlftpfs comme décrite ci-dessus…



Checkinstall va vous demander s'il doit créer la doc, validez, puis une courte description (à finir par une ligne vide), libre à vous de mettre ce que vous voulez, exemple "CurlFtpFS est un système de fichier pour accéder aux serveurs FTP basé sur FUSE et libcurl.". Ensuite, un menu vous demande si vous êtes d'accord avec les informations générées. Je vous conseil de changer le nom (2) pour curlftpfs. Une fois que tout est correct, validez avec "entrer".

Pour désinstaller : sudo dpkg -r curlftpfs__

ne pas oublier d'ajouter son utilisateur à Fuse :

~$ sudo adduser $USER fuse

Et relancer sa session pour que l'ajout au groupe soit pris en compte.

Rien de plus simple maintenant :

~$ mkdir tmp
~$ curlftpfs ftp://mon.serveur.org tmp -o user=monlogin:monmdp

si votre mot de passe contient des caractéres spéciaux du genre # ou ! il vous faut échapper ces caractéres par \. Un # sera transformé alors par un \# .

Pour démonter, vérifier que pour rien n'accède au point de montage (fichier ouvert ou gestionnaire de fichier), et effectuer la commande

~$ fusermount -u tmp

Puis y coller le code suivant : bas de page

ne pas oublier de le rendre exécutable :

chmod u+x curlftpfs-dialog.sh

Exécutez le script directement dans votre gestionnaire de fichiers ou dans une console, et vous obtiendrez une fenêtre nécessitant quelques renseignement comme :

  • l'adresse du serveur
  • une case à cocher pour une connexion anonyme
  • le nom de l'utilisateur distant
  • le mot de passe
  • le nom du point de montage

Une fois tous les champs renseignés, cliquez sur mount. Un répertoire du nom du point de montage doit se créer et votre connexion montée sur le système de fichiers !!

Quand vous avez fini, quittez le répertoire monté et faites Umount. Il est possible de sauvegarder la configuration en appuyant sur Save.

Pour recharger la configuration, il faut passer un fichier .eftp en paramètre du script (en faisant un glisser-déposer avec un gestionnaire de fichiers).

Suggestion d'utilisation

Créez quelque part dans votre arborescence, un répertoire FTP ( /home/toto/Network/FTP ).

Déplacez le script dans ce répertoire.

Remplissez la fenêtre normalement, testez la connexion et sauvegardez.

Vous obtenez des fichiers .eftp, comme par exemple "toto@hebergeur.org.eftp" "tata@sitewoueb.fr.eftp".

Glissez/déposez le fichier toto@hebergeur.org.eftp sur curlftpfs-dialog.sh et la fenêtre s'ouvre directement avec les informations renseignées.

#! /bin/bash

export DIR=$PWD

if [ $1 ] ; then
	export DIR=`dirname $1`
	while read ligne ; do
		first=1
		val=""
		for mot in $ligne ; do
			if [ $first -eq 1 ] ; then
				var=$mot
				first=0
			else
				val=$val$mot" "
			fi
		done
		export $var="$val"
	done < $1
fi

if [ -z "$DISTUSER" ] ; then
	export DISTUSER=$USER
fi

if [ -z "$MOUNT" ] ; then
	export MOUNT=$DISTUSER$SERVEUR
fi

export MAIN_DIALOG='
 <vbox>
  <hbox>
		<text><label>Serveur:</label></text>
		<entry>
			<input>echo $SERVEUR</input>
			<variable>SERVEUR</variable>
		</entry>
	</hbox>
	<hbox>
		<checkbox>
			<label>Cocher pour l authentification par défaut</label>
				<variable>CHECKBOX</variable>
				<default>no</default>
				<action>if false enable:DISTUSER</action>
				<action>if false enable:PASSWORD</action>
				<action>if false OPT=-o user=$DISTUSER:$PASSWORD</action>
				<action>if true disable:DISTUSER</action>
				<action>if true disable:PASSWORD</action>
				<action>if true OPT=</action>
		</checkbox>
	</hbox>
  <hbox>
		<text><label>User:</label></text>
		<entry>
			<input>echo $DISTUSER</input>
			<variable>DISTUSER</variable>
			<action>OPT=-o user=$DISTUSER:$PASSWORD</action>
		</entry>
	</hbox>
  <hbox>
		<text><label>Password:</label></text>
		<entry>
			<visible>password</visible>
			<variable>PASSWORD</variable>
			<action>OPT=-o user=$DISTUSER:$PASSWORD</action>
		</entry>
	</hbox>
  <hbox>
		<text><label>Mount Name:</label></text>
		<entry>
			<input>echo $MOUNT</input>
			<variable>MOUNT</variable>
		</entry>
	</hbox>
  <hbox>
		<button>
			<label>Mount</label>
			<action>fusermount -u $DIR/$MOUNT</action>
			<action>rmdir $DIR/$MOUNT</action>
			<action>mkdir $DIR/$MOUNT</action>
			<action>curlftpfs ftp://$SERVEUR $DIR/$MOUNT $OPT</action>
		</button>
		<button>
			<label>Umount</label>
			<action>fusermount -u $DIR/$MOUNT</action>
			<action>rmdir $DIR/$MOUNT</action>
		</button>
		<button>
			<label>Save</label>
			<action>echo SERVEUR $SERVEUR | tee $DIR/$MOUNT.eftp</action>
			<action>echo DISTUSER $DISTUSER | tee -a $DIR/$MOUNT.eftp</action>
			<action>echo MOUNT $MOUNT | tee -a $DIR/$MOUNT.eftp</action>
		</button>
  </hbox>
 </vbox>
'

gtkdialog --program=MAIN_DIALOG

Si vous obtenez une erreur en ligne 68, c'est que le paquet gtkdialog n'est pas installé, faire :

~$ sudo apt-get install gtkdialog

Pour monter automatiquement un site FTP au démarrage, il vous suffit d'ajouter à votre fichier /etc/fstab la ligne suivante :

curlftpfs#login:password@ftp.host.com /mnt/host fuse rw,uid=500,user,auto 0 0

Vous pouvez aussi choisir de monter un sous-répertoire, ou encore monter un répertoire parent de votre répertoire de départ :

curlftpfs#login:password@ftp.host.com/../chemin/vers/le%20repertoire /mnt/host fuse rw,uid=500,user,auto 0  0

Vous remarquerez au passage qu'un espace dans le nom du répertoire se traduit par %20 dans le chemin.

Fusible est une interface graphique pour tous points de montage FUSE. Un plugin pour CurlFTPFS est prévu et permettra d'accéder à toutes les fonctionnalités et options de CurlFTPFS et de FUSE.

  • curlftpfs.1212191021.txt.gz
  • Dernière modification: Le 06/02/2009, 01:02
  • (modification externe)