Comment puis-je définir automatiquement des autorisations d'écriture sur le montage d'un lecteur USB sous Linux?

18

Lorsque je monte un lecteur USB externe sur Linux (CentOs4), les autorisations sont par défaut définies en lecture seule. Puisqu'il y a plusieurs utilisateurs sur l'ordinateur qui doivent utiliser le lecteur externe, je veux que tout le monde ait la rwpermission pour le lecteur entier. Je veux également qu'ils puissent monter le lecteur si l'ordinateur a été accidentellement arrêté. Ils peuvent utiliser sudo mountpour monter le lecteur, mais cela ne leur donnera qu'une autorisation de lecture, et je ne veux évidemment pas l'autoriser sudo chmod.

Existe-t-il un paramètre par défaut que je peux modifier pour que chaque nouveau disque USB externe obtienne automatiquement des rwautorisations?

Jonas
la source

Réponses:

17

Pour activer l'accès rw à tout le monde, la clé est l'option umask = 0 pour monter la commande.

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 est suffisant, uid et gid juste pour plus de clarté, donc vous ne voyez pas plus de propriétaires 'root' que nécessaire.


@ La réponse de Tom (en écrivant l'entrée / etc / fstab) vous permettra de sauter sudoet si vous écrivez umask = 0 comme option supplémentaire, vous obtiendrez le meilleur des deux mondes:

Avoir ceci dans / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

vous permet de simplement exécuter

mount /dev/something

et tout le monde a accès à tous les fichiers.


Voici une note technique, si vous souhaitez connaître les détails:

Comme man mountindiqué, 'umask = 0' garantira qu'aucune règle supplémentaire ne s'applique au mode d'accès aux fichiers. Pour les systèmes de fichiers FAT (qui sont les plus utilisés sur les disques USB), aucun mode d'accès n'est stocké. Mais votre processus actuel a une valeur umask définie, vous pouvez le voir si vous exécutez juste umaskdans le terminal. mountl'utilise par défaut et supprime le mode d'accès de votre valeur umask de tous les fichiers sur le disque monté. Les valeurs umask les plus utilisées sont (octal) 022 - pas d'écriture de groupe et autre, et 027 - pas d'écriture de groupe, pas d'autre accès.

temoto
la source
J'obtiens une erreur avec «mauvaise option» si j'ajoute umask=0 0 0comme entrée dans fstab. L' umaskentrée doit-elle être la dernière entrée? Que fait l' managed=0 0 0entrée qui est actuellement la dernière?
Jonas
1
FWIW, l'option umask est une option VFAT uniquement, c'est-à-dire que la solution est utile tant que la mémoire USB utilise le système de fichiers VFAT (ce qui ne s'est pas avéré être mon cas).
Tomislav Nakic-Alfirevic
2
Je vous remercie. Mais j'ai dû le modifier pour le faire fonctionner: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewherecela ne fonctionne que sans définir le paramètre gid.
Nippey
2

Ajoutez une entrée dans / etc / fstab. Voici une entrée que j'ai ajoutée il y a quelques heures à peine pour ma clé USB Seagate:

UUID = 4ACC734ECC733375 / media / Linux ext3 erreurs = remount-ro, valeurs par défaut, utilisateurs, noatime, nodiratime 0 0

La clé ici est l'entrée "utilisateurs" qui permet aux utilisateurs de monter et démonter le lecteur.

Edit: cela fonctionne pour des lecteurs spécifiques - je ne sais pas s'il peut être activé pour tous les lecteurs avec une seule entrée.

À M
la source
Si un utilisateur monte le lecteur, tous les autres utilisateurs obtiendraient-ils également l' rwautorisation?
Jonas
1

Tapez mount. Cela vous donnera la position actuelle. Voici ma sortie.

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

Le dernier est mon lecteur USB automouunté par Linux Mint.

Tapez maintenant

sudo umount /dev/sdf1

cela démontera le lecteur

remontez maintenant correctement.

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
Meule
la source