web-dev-qa-db-fra.com

Seul un utilisateur root peut monter / dev / sdb1 sur / media / sdb1 - contribuer au lecteur USB externe

Je ne comprends pas pourquoi, lorsque j'ai essayé le pilote USB externe de plug-in dans Ubuntu 12.04, je vois le message suivant:

Error mounting: mount exited with exit code 1: helper failed with:
mount: only root can mount /dev/sdb1 on /media/sdb1

Voici le contenu de /etc/fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc                                       /proc           proc  nodev,noexec,nosuid       0  0  
# / was on /dev/sda1 during installation
UUID=5f5d330f-d5f2-4157-9496-94f1dce2f181  /               ext4  errors=remount-ro         0  1  
# swap was on /dev/sda5 during installation
UUID=84747ef4-6f50-49bc-9df1-fcba364ba299  none            swap  sw                        0  0  

/dev/fd0                                   /media/floppy0  auto  rw,user,noauto,exec,utf8  0  0  
/dev/sdc1                                  /media/sdc1     vfat  uid=1000,noauto           0  0  
/dev/sdd1                                  /media/sdd1     vfat  uid=1000,noauto           0  0  
/dev/sdb1                                  /media/sdb1     vfat  uid=1000,noauto           0  0

Et voici mon Sudo fdisk -l actuel:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e28b8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   310484991   155241472   83  Linux
/dev/sda2       310487038   312580095     1046529    5  Extended
/dev/sda5       310487040   312580095     1046528   82  Linux swap / Solaris

Disk /dev/sdb: 993 MB, 993001472 bytes
2 heads, 1 sectors/track, 969728 cylinders, total 1939456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1             133     1939455      969661+   6  FAT16

Disk /dev/sdc: 4009 MB, 4009754624 bytes
16 heads, 32 sectors/track, 15296 cylinders, total 7831552 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd8e1f237

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1   *          32     7831551     3915760    b  W95 FAT32

sdc et sdb - il existe des pilotes USB externes.

Puis-je résoudre ce problème et monter automatiquement tous les lecteurs USB externes?

15
nazar_art

Vous devez ajouter l'option userà votre fstabname__.

/dev/sdc1    /media/sdc1     vfat  uid=1000,noauto,user           0  0  
/dev/sdd1    /media/sdd1     vfat  uid=1000,noauto,user           0  0  
/dev/sdb1    /media/sdb1     vfat  uid=1000,noauto,user           0  0

L'option userpermet à tout utilisateur de monter un périphérique, comme indiqué dans man:

Normalement, seul le superutilisateur peut monter des systèmes de fichiers. Cependant, lorsque fstab contient l'option usersur une ligne, tout le monde peut monter le système correspondant.

Ou, si vous souhaitez qu'un utilisateur monte/démonte les lecteurs, utilisez plutôt usersname__:

/dev/sdc1    /media/sdc1     vfat  uid=1000,noauto,users           0  0  
/dev/sdd1    /media/sdd1     vfat  uid=1000,noauto,users           0  0  
/dev/sdb1    /media/sdb1     vfat  uid=1000,noauto,users           0  0

Page de manuel:

Seul l'utilisateur ayant monté un système de fichiers peut le démonter à nouveau. Si un utilisateur doit pouvoir démonter, utilisez-le plutôt que l'utilisateur dans la ligne fstab.

Remarque: L'option userimplique également noexecname__, nosuidet nodevname__, donc si vous avez besoin de ces options, vous devrez ajouter leurs contreparties. Par exemple, si vous devez exécuter des fichiers binaires à partir du lecteur, vous devez ajouter l'option execpour que vos options soient uid=1000,noauto,user,exec et il en va de même pour les deux autres.

Lectures supplémentaires: Fstab - Documentation Ubunt

23
Braiam

Si vous avez une entrée pour un périphérique dans/etc/fstab, cela empêchera le programme de montage automatique Ubuntu de monter ce périphérique lorsqu'il est branché.

Je viens de tester ceci sur mon système qui montait automatiquement ma clé USB lors de l'insertion:

// insert thumb-drive
$ grep gvfsd /proc/mount
gvfsd-Fuse on /run/user/msw/gvfs type Fuse.gvfsd-Fuse (rw,nosuid,nodev,user=msw)

Quand j'ai ajouté la ligne

/dev/sdb1   /mnt    vfat    noexec 0 0

dans/etc/fstab et inséré la clé USB, le processus gvfsd-udisks2-volume-monitor a généré une activité intense, qui incluait l’ouverture et la lecture de/etc/fstab (comme indiqué par strace). La clé USB n'a pas été montée.

Quand j'ai changé/etc/fstab en ajoutant un caractère pour commenter l'entrée:

#/dev/sdb1   /mnt    vfat    noexec 0 0

gvfsd-udisks2-volume-monitor s'est à nouveau occupé et a monté la clé USB. Je n'avais pas besoin de sortir la clé USB et de la réinsérer, je n'avais pas à envoyer de signal à gvfsd, le démon de montage automatique semble donc regarder les modifications dans/etc/fstab.

Je ne sais pas pourquoi il se comporte de cette façon, mais le test était simple et répétable.

2
msw