web-dev-qa-db-fra.com

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

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 l'autorisation rw pour tout le lecteur. Je souhaite également qu'ils puissent monter le lecteur si l'ordinateur a été accidentellement arrêté. Ils peuvent utiliser Sudo mount pour monter le lecteur, mais cela ne leur donnera que des autorisations de lecture, et je ne souhaite évidemment pas autoriser Sudo chmod.

Existe-t-il un paramètre par défaut que je puisse modifier pour que chaque nouveau disque USB externe obtienne automatiquement les autorisations rw?

17
Jonas

Pour permettre à tous l'accès rw, la clé est l'option umask = 0 de la commande mount.

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

umask = 0 est suffisant, uid et gid juste pour des raisons de clarté, pour que vous ne voyiez pas plus de propriétaires "racine" que nécessaire.


La réponse de @ Tom (en écrivant l'entrée/etc/fstab) vous permettra d'ignorer Sudo et 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 juste de courir

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 mount le dit, '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 (les plus utilisés sur les disques USB), aucun mode d’accès n’est enregistré. Mais votre processus actuel a un ensemble de valeurs umask que vous pouvez voir si vous n’exécutez que umask dans le terminal. mount l'utilise par défaut et supprime le mode d'accès de votre valeur umask à tous les fichiers du 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.

17
temoto

Ajoutez une entrée à/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/Erreurs Linux ext3 = remount-ro, paramètres 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 entrée.

2
Tom

Tapez mount. Cela donnera la place actuelle, il est. 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 automatisé par Linux Mint.

Maintenant tapez

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
1
Rick