%
Puffy image/svg+xml Puffy 2019-06-14 Stéphane HUC OpenBSD Team Inkscape Puffy OpenBSD https://www.openbsd.org/art4.html English "Puffy", it's a symbol of OpenBSD

Monter un disque / une clé USB en tant qu’utilisateur sous OpenBSD

Article publié, le et modifié le
4 minutes de lecture

Cet article contient 664 mots.
Source brute de l'article :
Commit version : 90bc771

Description

Sous OpenBSD, il existe différents moyens de monter un disque dur USB, ou une clé USB…

Méthode automatique

OpenBSD ≥ 6.0

À partir d’OpenBSD 6.0 et supérieures, il semble préférable de se diriger vers l’usage du démon hotplugd et du binaire ‘hotplug-diskmount’.

OpenBSD < 6.0

Il faut modifier l’option kern.usermount.

# sysctl kern.usermount=1

Attention

Par sécurité, ce paramétrage retrouve sa valeur par défaut au redémarrage.

Malgré tout, si vous souhaitez qu’il soit pris en compte de façon permanente, ajoutez ceci au fichier /etc/sysctl.conf :

kern.usermount=1

Méthode “manuelle”

Cette méthode est à recommander que si et seulement si les méthodes automatiques ci-dessus ne fonctionnent pas, ou si vous préférez vous en passer !

  • ce qui signifie que vous comprenez correctement les étapes décrites ci-dessous !

Identification de la clé

Tout d’abord, repérez le nom de votre clé USB avec la commande dmesg juste après l’avoir insérée :

umass1 at uhub2 port 2 configuration 1 interface 0 "SanDisk Cruzer Edge" rev 2.00/1.27 addr 3 
umass1: using SCSI over Bulk-Only scsibus5 at umass1: 2 targets, initiator 0 
sd2 at scsibus5 targ 1 lun 0: <SanDisk, Cruzer Edge, 1.27> SCSI4 0/direct removable serial.0781556b42119B2141E2 
sd2: 15267MB, 512 bytes/sector, 31266816 sectors

Ici, la clé est donc sd2 !

Ensuite, avec la commande disklabel, vous pouvez repérer les partitions contenues sur la clé :

$ disklabel sd2
# /dev/rsd2c:
type: SCSI
disk: SCSI disk
label: Cruzer Edge     
duid: 0000000000000000
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 1946
total sectors: 31266816
boundstart: 0
boundend: 31266816
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  c:         31266816                0  unused                   
  i:         31264768             2048   MSDOS     

Montage de la clé

Enfin, il suffit de monter la clé dans un dossier qui vous appartient. Ici, la partition intéressante est la i. Par exemple pour la monter dans le dossier ~/usb qui se trouve dans votre répertoire :

# mount /dev/sd2i ~/usb

Permission de lecture et d’écriture

Il reste un problème à régler. Si vous jetez un oeil aux droits d’accès de votre clé :

$ ls -la /dev/sd2i

brw-r-----  1 root  operator    4,   24 Apr 30 2016 10:29    /dev/sd2i

Vous remarquez que seul root et les membres du groupe operator ont les droits requis.

Ajout de votre utilisateur au groupe operator :

# usermod -G operator toto

$ groupinfo operator
name    operator
passwd  *
gid     5
members root toto

Donner au groupe operator les droits adéquats sur votre device, ici /dev/sd2 :

# chmod g=rw /dev/sd2*
Attention

Démontage de la clé

Pour démonter un périphérique cela se réalise avec la commande umount(8).

On peut soit démonter à partir du périphérique :

# umount /dev/sd2i

Soit à partir de son point de montage :

# umount ~/usb

Si jamais on obtient une erreur concernant l’utilisation du point de montage (occupé), il faut vérifier que les divers terminaux / logiciels n’utilisent plus le répertoire en question.

La commande fstat(1) peut aider pour voir rapidement quel logiciel y est attaché :

# umount ~/usb
umount: ~/usb: Device busy

# fstat -f ~/usb/ 
USER     CMD          PID   FD MOUNT        INUM  MODE         R/W    SZ|DV
toto     pcmanfm    21084  114 ~/usb           4  drwxr-xr-x     r    32768

Dans l’exemple ci-dessus on peut voir que pcmanfm occupe le point de montage ~/usb, ayant pour PID 21084.

On peut alors soit changer de répertoire à partir de pcmanfm, soit le fermer, voire le tuer avec la commande kill(1).

C’est ce dernier cas qu’on va utiliser dans l’exemple suivant. On va tuer le processus de pcmanfm, vérifier à nouveau avec fstat pour savoir si le point de montage est bien libre, puis démonter le périphérique avec umount :

# kill 21084

# fstat -f ~/usb/
USER     CMD          PID   FD MOUNT        INUM  MODE         R/W    SZ|DV
# umount –/usb

Historique

J’ai écrit historiquement cette documentation de manière collaborative sur le wiki de la communauté “OpenBSD Pour Tous”.