Il existe plusieurs façons pour monter des périphériques de stockage (CDRom, clé USB, etc).
Nous allons voir la méthode, la plus classique pour comprendre comment fonctionne le système.
Si vous n'avez pas de besoins particuliers, ces périphériques sont accessibles aux utilisateurs appartenant au groupe operator
.
Pour voir tous les utilisateurs appartenant à un groupe particulier (par exemple operator) :
groupinfo operator name operator passwd * gid 5 members root
On constate, qu'un seul utilisateur fait partie de ce groupe.
Pour ajouter un utilisateur à un groupe déjà existant :
usermod -G operator utilisateur
L'étape suivante consiste à vérifier, si le noyau autorise les utilisateurs (autre que le super utilisateur) à monter des périphériques.
sysctl -a | grep usermount vfs.generic.usermount = 0
Si la commande renvoie ceci, cela veut dire que cette fonctionalité n'est pas activée. Pour la rendre active :
sysctl -w vfs.generic.usermount=1 vfs.generic.usermount: 0 -> 1
Pour conserver cette valeur de manière persistante, il faut rajouter cette ligne dans le fichier /etc/sysctl.conf
.
echo "vfs.generic.usermount=1" >> /etc/sysctl.conf
Sous NetBSD, les clés USB sont reconnues par le noyau grâce au driver umass
.
dmesg | grep umass umass0 at uhub1 port 1 configuration 1 interface 0 umass0: Super Talent Flash USB 2.0 Flash Drive, rev 2.00/20.40, addr 4 umass0: using SCSI over Bulk-Only scsibus0 at umass0: 2 targets, 1 lun per target
Si on obtient aucune réponse quand on branche une clé, ce n'est pas bon signe !
Pour aller plus loin, on peut rechercher les cibles.
dmesg | grep scsibus scsibus0 at umass0: 2 targets, 1 lun per target sd0 at scsibus0 target 0 lun 0: <Flash/SM, Super Talent 2.0, 2040> disk removable
On constate, que la clé est accessible via le périphériques sd0
.
fdisk sd0 fdisk: Cannot determine the number of heads Disk: /dev/rsd0d NetBSD disklabel disk geometry: cylinders: 247, heads: 64, sectors/track: 32 (2048 sectors/cylinder) total sectors: 506880 BIOS disk geometry: cylinders: 247, heads: 64, sectors/track: 32 (2048 sectors/cylinder) total sectors: 506880 Partition table: 0: Primary DOS with 32 bit FAT (sysid 11) start 32, size 506847 (247 MB, Cyls 0-247/31/31), Active 1: <UNUSED> 2: <UNUSED> 3: <UNUSED> Drive serial number: -1022939624 (0xc3072e18)
Il existe une seule partition 0, pour connaître la géométrie :
disklabel /dev/sd0 # /dev/sd0d: type: SCSI disk: Super Talent 2.0 label: fictitious flags: removable bytes/sector: 512 sectors/track: 32 tracks/cylinder: 64 sectors/cylinder: 2048 cylinders: 247 total sectors: 506880 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0 5 partitions: # size offset fstype [fsize bsize cpg/sgs] d: 506880 0 unused 0 0 # (Cyl. 0 - 247*) e: 506847 32 MSDOS # (Cyl. 0*- 247*) disklabel: boot block size 0 disklabel: super block size 0
On pourra avoir accès à la clé, grâce au slice, e
.
mount -t msdos -o rw /dev/sd0e /mnt
On peut maintenant rajouter une entrée dans le fichier /etc/fstab
.
. . ./dev/sd0e /home/olivier/usb msdos noauto,rw,noexec 0 0
L'utilisateur doit se créer un répertoire ~/usb
.
mkdir ~/usb