Comme remarqué dans d'autres post (
là, ou
là), lorsqu'on branche une clé usb ou tout media amovible en ums, le périphérique n'est monté avec les droits en écriture que pour le premier utilisateur connecté.
Cela est dû à pmount utilisé par gnome-volume-manager. Pour contourner ce problème, il suffit de déclarer le périphérique dans /etc/fstab avec des options positionnant groupe et droits pour que ça marche.
Problème, les périphériques n'ont pas toujours la même adresse.
Solution toute bête, il suffit de fixer le nom qu'utilisera udev et la clé usb bleue sera toujours /dev/cleUsbBleue, l'archos gmini402 sera toujours /dev/gmini402, ce qui permettra d'avoir un fstab propre et mieux paramètrable.
Nommer les périphériques (d'après
Writing udev rules) .
Je prends l'exemple d'un archos gmini402.
Une régle udev pour nommer un périphérique s'écrit comme celà:
KERNEL=="sda", SYSFS{model}=="ST3120827AS",
NAME="my_hard_disk"
En rouge des identifiants pour retrouver le périphérique, en bleu ce que doit faire udev (ici utiliser le nom my_hard_disk).
Retrouver son périphérique
Branchez la clé repérez son adresse (par la commande 'df' par ex) disons /dev/sda1.
Lancez la commande : udevinfo -a -p /sys/block/sda1
Ça va lister des blocs comme ça:
looking at the device chain at '/sys/devices/pci0000:00/0000:00:0f.2/usb5/5-3/5-3:1.0':
BUS=="usb"
ID=="5-3:1.0"
DRIVER=="usb-storage"
SYSFS{bAlternateSetting}==" 0"
SYSFS{bInterfaceClass}=="08"
SYSFS{bInterfaceNumber}=="00"
SYSFS{bInterfaceProtocol}=="50"
SYSFS{bInterfaceSubClass}=="06"
SYSFS{bNumEndpoints}=="02"
SYSFS{modalias}=="usb:v0E79p1140d0004dc00dsc00dp00ic08isc06ip50"
looking at the device chain at '/sys/devices/pci0000:00/0000:00:0f.2/usb5/5-3':
BUS=="usb"
ID=="5-3"
DRIVER=="usb"
SYSFS{bConfigurationValue}=="1"
SYSFS{bDeviceClass}=="00"
SYSFS{bDeviceProtocol}=="00"
SYSFS{bDeviceSubClass}=="00"
SYSFS{bMaxPower}==" 0mA"
SYSFS{bNumConfigurations}=="1"
SYSFS{bNumInterfaces}==" 1"
SYSFS{bcdDevice}=="0004"
SYSFS{bmAttributes}=="c0"
SYSFS{configuration}==""
SYSFS{devnum}=="3"
SYSFS{idProduct}=="1140"
SYSFS{idVendor}=="0e79"
SYSFS{manufacturer}=="ARCHOS"
SYSFS{maxchild}=="0"
SYSFS{product}=="ARCHOS Gmini402Cam"
SYSFS{serial}==" 8 K51266S8"
SYSFS{speed}=="480"
SYSFS{version}==" 2.00"
En prenant des infos d'un des blocs (et un seul) vous allez pouvoir retrouver votre périphérique...
Vous n'avez plus qu'a créer votre régle:
Créez/ouvrez le fichier de règles locales
gksudo gedit /etc/udev/rules.d/10-local.rules
Collez-y
BUS=="usb",
SYSFS{product}=="ARCHOS Gmini402Cam",NAME="gmini402"
Normalement en débranchant/rebranchant la clé, le périphérique devrait se trouver à /dev/gmini402.
Donner les permissions
Créez le point de montage :
sudo mkdir /media/gmini402
Il ne reste qu'à déclarer dans /etc/fstab:
gksudo gedit /etc/fstab
et ajouter:
/dev/gmini402 /media/gmini402 auto users,gid=plugdev,umask=0002,defaults
Le périphérique est monté avec les droits en lecture écriture pour le propriétaire et les membres du groupe plugdev, et tout le monde peut monter/démonter le périphérique.
Pour d'autres options de fstab voir le wiki:
http://doc.ubuntu-fr.org/installation/mount_fstab
http://doc.ubuntu-fr.org/installation/partitions_windows#4_sauvegarde_des_fichiers_et_montage_des_partitions
Attention la règle écrite de cette manière ne fonctionne correctement qu'avec une clé non partitionnée.
Pour une grosse clé ou un dd externe partitionné, il faudrait écrire:
BUS=="usb",SYSFS{product}=="ARCHOS Gmini402Cam",NAME="gmini402_part%n"
pour avoir
/dev/gmini402_part1
/dev/gmini402_part2
...
pour chaque partition (cf
exemple pour un dd, mais en utilisant des liens)
Edit: j'ai corrigé sudo gedit --> gksudo gedit
Je touche du bois, je n'ai jamais eu le problème décrit dans le wiki anglophone.
Deuxième edit:
Un utilisateur de linuxfr.org s'est amusé à créer un programme en python/qt pour créer des règles udev :
http://linuxfr.org/~alexmic/22483.html
http://web.alexmic.free.fr/kudev/