Comment changer d'utilisateur: groupe pour clé USB fat32?

2

J'ai formaté une clé USB en fat32 avec gparted. Je le monte à /media/usbqui a les autorisations suivantes.

drwxr-xr-x 2 myname users 4096 May 16 11:00 usb/

via. sudo mount -t vfat -o rw /dev/sdb1 /media/usb. Maintenant, les autorisations deviennent:

drwxr-xr-x 2 root  root  4096 Dec 31  1969 usb/

Je lance sudo chown -R myname:users /media/usb. La sortie est:

chown: changing ownership of ‘/media/usb’: Operation not permitted

Comment puis-je réparer cela?

utilisateur3467349
la source

Réponses:

4

Vous souhaitez probablement avoir un accès R / W à votre périphérique USB en tant qu'utilisateur normal. Le problème est que le système de fichiers FAT n'implémente pas le concept de propriétaires de fichiers, votre commande chown (qui fonctionne par exemple sur les partitions ext2 / 3/4 est vouée à l'échec).

Vous avez au moins deux possibilités:

  1. Spécifiez l'option userdans l' fstabentrée correspondante pour qu'un utilisateur normal puisse monter le lecteur USB:

     /dev/sdb1     /media/usb      vfat     rw,user       0  0
    

    Puis utiliser

     (u)mount /media/usb
    

    pour (dé) monter le support en tant que myname .

  2. Utilisez les options de montage uid, gidpour indiquer à qui doit appartenir l'ensemble système de fichiers monté:

    sudo mount -t vfat -o rw,uid=myname,gid=users /dev/sdb1 /media/usb
    
mpy
la source
3

Vous ne pouvez pas modifier directement les autorisations Linux sur une partition au format Microsoft. Vous pouvez le faire sur une partition extN, car il s’agit d’une partition Linux jib avec des autorisations Linux.

Ce que vous pouvez faire est de changer de propriétaire dans la ligne correspondante de / etc / fstab , ce qui implique toutefois de le changer simultanément pour tous les répertoires et fichiers du périphérique. Si vous voulez faire cela, vous pouvez utiliser uid = 1000 pour vous-même et guid = 46 pour plugdev groupd, dont tous les utilisateurs sont automatiquement membres.

Ce qui précède s’applique également aux partitions NTFS, pour la même raison: Microsoft ne dispose pas vraiment des autorisations de fichiers et de répertoires.

MariusMatutiae
la source
Oui, je sais que Microsoft n'a pas les droits d'accès aux fichiers et aux répertoires - je suppose que je m'attendais à ce que Linux adopte un comportement émulateur sans pour autant modifier les entrées. C'est un peu cinglé que je ne peux pas monter et utiliser un lecteur USB sans faire de recherches.
user3467349
4
@ user3467349 Ce n'est pas vrai: votre lecteur est prêt à être monté tel quel. Ce que vous ne pouvez pas faire, c'est le traiter comme un système de fichiers Linux plus avancé, c'est tout.
MariusMatutiae
Ouais, mais que Linux décide que j'ai besoin d'y rootaccéder r/wplutôt que d'un accès de niveau utilisateur, c'est aussi assez arbitraire, non? Donc, si on peut faire une présomption (qui ne reflète pas le système de fichiers sous-jacent), pourquoi ne pas également pouvoir la modifier?
user3467349
@ user3467349 Vous pouvez changer la présomption: comme je l'ai dit plus haut, utilisez uid = 1000 dans fstab, et voilà que vous êtes le propriétaire de tous les fichiers et répertoires. La présomption que vous mentionnez est le fait que la valeur par défaut est le umask du processus en cours, et puisque vous devez monter le périphérique en tant que root, il héritera naturellement de la propriété de root. Mais vous pouvez le changer, comme ci-dessus. En outre, vous pouvez écrire sur le périphérique en tant qu'utilisateur root, car tout sera oublié sur un système Windows.
MariusMatutiae
Merci, je n'ai pas pensé à ça. J'imagine qu'une solution encore plus simple dans ce cas consiste à utiliser une option de montage non root telle que udisks.
user3467349
0

L'utilisateur non root par défaut n'a pas d'accès par défaut pour bloquer des périphériques. Si cela est vraiment nécessaire, procédez comme suit:

mount -t vfat  -o rw /dev/sdXY /run/media/$username/foo
## /media/.gvfs/$username/foo for ubuntu) 

mount -t vfat -o rw  /dev/sdXY /home/$username/foo

Ajouter cet utilisateur au Plugdevgroupe.

Ensuite, ajoutez ou créez un udevscript de montage automatique dans/etc/udev/rules.d/80-usb-rules

mountpoint  by /dev/sdXY ,  /dev/by-uuid/ ,   /dev/by-device (using the usb-x-y notation)
linuxdev2013
la source
Je ne pense pas que vous avez raison. Les opérations que j'ai données dans mon exemple fonctionnent parfaitement pour un ext4périphérique formaté. C'est peut-être une particularité de fat32 / vfat, mais ma question reste sans réponse.
user3467349
1
vfat et ntfs N'ONT PAS ce concept de propriété et de permission comme linux / mac, il est donc inutile de les changer. @Marius explique comment procéder de la même manière que je préfère personnellement à la ligne de commande
linuxdev2013
C'est peut-être vrai, mais votre réponse concernant les périphériques bloqués n'est pas pertinente dans ce cas.
user3467349
Oui, un usb est un périphérique bloc, mais le problème que je rencontre concerne uniquement les périphériques bloc formatés fat / vfat. Vous devriez mettre à jour votre réponse pour qu'elle soit utile aux futurs lecteurs au lieu d'insulter les gens.
user3467349
C’est utile tel quel, et c’est le format que vous avez choisi qui pose problème et toute recherche préliminaire vous aurait dit que ... ma réponse est un changement ponctuel de / etc / fstab, comme indiqué par une autre réponse mec, apprendre utiliser un système.
linuxdev2013