Ubuntu permet à l’utilisateur de s’affranchir du montage "manuel" des périphériques amovibles (clefs USB, carte mémoire flash, disques durs externes, iAudio X5…
Ubuntu 5.10 (Breezy) / hal / pmount le fait automatiquement, ce qui marche relativement bien quand un seul utilisateur est présent sur un seul serveur graphique de la machine. Relativement, parce que j’ai déjà vu des cas de démontage sauvage (malgré le clic droit, démonter).
En revanche, la situation s’aggrave en environnement multi-utilisateur. Le bout de Gnome chargé d’attribuer le périphérique nouvellement monté a tendance à le faire au petit bonheur la chance. Et comme chez moi, sont connectés en permanence votre serviteur, sa tendre épouse et Monsieur MythTV, vous imaginez le bazar.
J’exagère un tantinet, je n’ai pas mis mythtv dans le group plugdev, il ne rentre donc en fait pas dans l’équation.
Il existe un paquet Ubuntu censé géré ce genre de cas, multiseat, mais de toute évidence il va falloir attendre Daper pour qu’il soit utilisable. Si j’avais trouvé de la documentation pour son fichier de configuration (/etc/multiseat.conf il semble), je ne m’en serais que mieux porté.
Solution (bancale) que j’ai mise en oeuvre, en acceptant que les périphériques amovibles soient accessibles par n’importe que utilisateur connecté :
J’ai commencé par mettre les deux utilisateurs en question dans le même group Unix. Il fallait ensuite changer le masque de montage du périphérique pour que le group ait contrôle dessus, ce qui est malheureusement codé en dur dans pmount.
Il est cependant possible de forcer le montage de la manière qu’on veut – la lecture de la page de manuel de pmount aide bien à le comprendre, pour peu qu’il y ait la bonne entrée ™ dans /etc/fstab.
Pour savoir quoi mettre dans mon fstab, j’ai branché l’un des périphériques en question, noté ses options de montage via la commande mount, et je les ai reproduites dans /etc/fstab. J’ai ensuite changé le masque de montage (par défaut, umask=077 que j’ai changé pour umask=007). Je n’ai pas eu à changer le groupe de montage (gid), parce que mes deux utilisateurs sont dans le même groupe primaire – autrement, il m’aurait fallu configurer gid pour un groupe auquel les deux utilisateurs appartiennent.
J’ai aussi rajouté l’option user, car sinon les montage via /etc/fstab ne sont opérables que par root.
Chez moi, cela ressemble pour ma carte d’appareil photo à (sur une seule ligne) :
/dev/sdb1 /media/CANON_DC vfat user,rw,noexec,nosuid,nodev,quiet,shortname=winnt,uid=1000,gid=1003,umask=007,iocharset=utf8 0 0
[ Mettre un iocharset à utf8 est un peu provocateur pour un système FAT, comme il rend le système de fichier sensible à la casse. Je prend cela comme une démarche volontariste pour établir UTF-8 en standard de facto. ]
On peut assez facilement étendre cette méthode aux périphériques qui ne doivent être montés que par un des utilisateurs, en adaptant le groupe (gid) et le masque de montage (umask).
Inconvénient de cette méthode à base de fstab, il faut répéter cette opération pour tous les périphériques qui doivent être accessibles par les deux utilisateurs.
Avantage, migrer de cette "solution" à quelque chose de plus permanent (chez Daper espérons-nous) devrait être aussi simple que supprimer ces entrées dans /etc/fstab.