Ceci est une ancienne révision du document !
→ Validé pour Ubuntu Dapper Drake 6.06
→ Testé pour Ubuntu Edgy Eft 6.10
FUSE : Filesystem in Userspace
Article en cours d'élaboration commentaires et et discussion ici.
A quoi ça sert ?
Avec FUSE il est possible d'implémenter toutes les fonctionnalités d'un système de fichier dans un espace utilisateur. Ces fonctionnalités incluent :
- une API de librairie simple
- une installation simple (pas besoin de patcher ou recompiler le noyau)
- une implémentation sécurisée
- utilisable dans l'espace utilisateur
Aujourd'hui, pour monter un système de fichier, il faut être root, ou que le root l'ait prévu dans /etc/fstab avec des informations en dur.
FUSE permet à un utilisateur de monter lui même un système de fichier.
Programmes utilisant FUSE
Pour profiter de FUSE, il faut des programmes qui exploitent sa librairie, et ces programmes sont nombreux. Voici ceux qui semblent les plus utiles (Liste complète en anglais) :
Nom | Fonction | Site Internet |
---|---|---|
SshFS | Ce système de fichier est basé sur le SSH File Transfer Protocol. Il permet de monter une connexion ssh sur son système de fichier. | http://fuse.sourceforge.net/sshfs.html |
SMB for Fuse | Avec SMB for Fuse il est possible d'explorer le voisinage réseau samba (ou Windows / CIFS) comme s'il était votre propre système de fichier. | http://www.ricardis.tudelft.nl/~vincent/fusesmb/ |
CurlFtpFS | CurlFtpFS est un système de fichier FTP basé sur curl. | http://curlftpfs.sourceforge.net/ |
EncFS | EncFS est un système de chiffrement de répertoire. Le module EncFS utilise la bibliothèque FUSE et un module du noyau Linux. Voir aussi encfs | /http://pobox.com/~vgough/encfs.html |
GmailFS | GmailFS fournit un système de fichier où l'on peut accéder à son espace de stockage Gmail. | http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html |
CvsFS | Cvs fournit un système de fichier où l'on peut voir le contenu d'un dépôt CVS. Il est aussi possible d'effectuer des check in/out pour l'édition. | http://sourceforge.net/projects/cvsfs |
FuseISO | Permet de monter une image ISO9660 sur son système de fichier. | http://ubiz.ru/dm/fuseiso-20060107.tar.bz2 |
TrackerFS | Permet de monter des requêtes Tracker comme un répertoire. Tracker indexe (très) rapidement les métadonnées de vos documents. | http://code.google.com/p/trackerfs/ (en cours de développement) |
Installation de FUSE
Rien de plus simple sur Ubuntu :
Avoir samba d'installé
sudo apt-get install fuse-utils libfuse2
ou Utiliser http://packages.ubuntu.com/
→ 04/12/2006 [Edit]Avec Edgy Eft 6.10, les quatre opérations suivantes sont inutiles, l'installation des paquets effectue les modifications et ajouts nécessaires pour vous. Fuse est utilisable immédiatement[/Edit]
Cependant, pour pouvoir l'utiliser, il faut rajouter fuse dans les modules chargés au démarrage :
sudo sh -c "echo fuse >> /etc/modules"
Si vous voulez en profiter sans redémarrer :
sudo modprobe fuse
Il faut ajouter les utilisateurs pouvant utiliser FUSE dans le groupe fuse, exemple :
sudo adduser toto fuse
Rappel : pour que l'ajout dans le groupe soit pris en compte, il faut se logguer de nouveau avec cet utilisateur. Sans cela, vous devrez etre root pour utiliser fuse (erreur récurrente)
Une fois le module fuse chargé (redémarrage ou modprobe fuse), le module se matérialise par /dev/fuse, cependant les droits par défaut ne sont pas corrects.
sudo chgrp fuse /dev/fuse
Voilà, fuse est près à être utilisé.
Nota: certains programmes (ex: ntfs-3g peuvent exiger une version du noyau plus récente que celle qui existe dans les deb. pour vous faire profiter des tout derniers pilotes. Il vous faudra donc le compiler. Regardez-ici : fuse_compilation
Guide d'utilisation de FUSE
Disponible dans les dépôt d'Ubuntu
Peu de programmes utilisant fuse sont packagés pour Ubuntu, cependant, il y a : fuseiso, gmailfs, fusesmb et sshfs.
exemple pour fuseiso :
~$ sudo apt-get install fuseiso ~$ mkdir tmp ~$ fuseiso imageDeCD.iso tmp ~$ ls tmp/ # où toutes autres actions ~$ fusermount -u tmp # libère le point de montage
Non disponible dans les dépôt d'Ubuntu
La majorité des programmes devra être compilée par nos soins, mais rien de très compliqué.
Il faut installer les entêtes de fuse pour pouvoir compiler :
sudo apt-get install libfuse-dev
Le reste des indications sur les sites des programmes utilisant FUSE (bien souvent : ./configure && make && make install)