web-dev-qa-db-fra.com

Comment donner à plusieurs utilisateurs l'accès à une partition Windows NTFS?

J'ai un disque dur USB connecté à ma machine Ubuntu (11.04). Chaque fois que je redémarre l'ordinateur et que je me connecte, le disque dur est monté. Etant donné que NTFS est présent sur le disque, Linux affecte à un utilisateur le propriétaire des fichiers sur le disque. Ainsi, tous les fichiers du disque semblent appartenir à un utilisateur et seul cet utilisateur peut voir les fichiers.

J'utilise deux comptes d'utilisateur sur mon ordinateur et je bascule souvent entre eux. Une fois que je passe à un autre compte utilisateur, je ne peux plus accéder au contenu du disque car celui-ci appartient à mon premier compte utilisateur. Y a-t-il quelque chose à faire à ce sujet sauf le monter via/etc/fstab?

Merci.

8
Alexander Sandler

Montage avec des autorisations spécifiques

Il y a. Mettez les deux utilisateurs dans un groupe ensemble. Utilisez ensuite ce groupe pour définir l'option gid= et montez votre disque avec les autorisations que vous souhaitez lui attribuer. Vous pouvez contrôler les autorisations avec les options umask=, fmask= et dmask= de la commande mount. Voici un exemple:

mount -O dmask=007,fmask=117,gid=46,uid=1000 /dev/sdc1 /media/winhdd

Ces options peuvent également être utilisées dans /etc/fstab comme ceci: UUID=7258CB9858CB598D /media/win ntfs rw,auto,user,exec,nls=utf8,dmask=007,fmask=117,gid=46,uid=1000 0 2.

Eviter fstab - Monter automatiquement un disque spécifique avec udev

J'imagine que vous voulez éviter fstab car le disque n'est pas toujours connecté au démarrage. Si vous souhaitez éviter fstab , utilisez un règle udev . Udev peut monter automatiquement (et empêcher Ubuntu de monter automatiquement) lorsque le disque est connecté. Une règle pour cela peut ressembler à ceci:

# In /etc/udev/rules.d/70-usb-winhdd-mount.rules

KERNEL=="sd?[0-9]", ATTR{removable}=="1", ATTRS{serial}=="UA04FLGC", ACTION=="add", RUN+="mount -O dmask=007,fmask=117,gid=46,uid=1000 /dev/%k /media/winhdd"

Vous devrez identifier le disque par ses propriétés. Dans mon exemple, je l'ai fait avec ATTRS{serial}=="UA04FLGC". J'ai décrit comment faire cela dans ne autre question . La dénomination et l'emplacement des fichiers de règles y sont également décrits.

Donne ces propriétés à tous les disques amovibles

Si vous voulez faire cela avec tous les disques amovibles, pas seulement avec ce disque, laissez simplement de côté la partie série et assurez-vous d’affecter un point de montage unique (en les comptant, en créant à partir de la série, le symbole% de udev ou une autre méthode). De plus, comme indiqué ailleursENV{mount_options}="$env{mount_options},dmask=007,fmask=117,gid=46,uid=1000" pourrait être une option permettant de monter tous les disques amovibles dotés de certaines autorisations/surverneur.


Informations utiles que vous connaissez peut-être déjà:

Création d'un groupe et ajout d'utilisateurs

Ce sont les commandes du shell pour créer un groupe nommé 'winhdd' et ajouter un utilisateur nommé 'confus' à ce groupe:

groupadd winhdd
usermod -a -G winhdd confus

Connaître l'identifiant du groupe

Vous pouvez trouver les identifiants de groupe de tous les groupes de votre système dans un fichier nommé /etc/group. Les entrées ici ressemblent à winhdd:x:4:confus,narur,joe où 'confus', 'narur' et 'joe' sont les noms d'utilisateur appartenant à ce groupe, 'adm' est le nom du groupe et '4' l'identifiant du groupe, vous cherchez pour. Dans /etc/groups, vous pouvez également vérifier si l'ajout des utilisateurs à votre groupe a réussi. La commande getent group winhdd afficherait la ligne avec des informations sur le groupe. La commande id vous donne votre identifiant de groupe, votre identifiant utilisateur ainsi que les noms et identifiants de tous les groupes auxquels vous appartenez.

Définition d'options de type umask

Vous voudrez définir dmask= sur un valeur sensible vous permettant au moins d'exécuter des répertoires (= accès). fmask= est l'option pour les autorisations de fichiers.

dmask=007,fmask=117,gid=46,uid=1000 permet au propriétaire dont le numéro d'utilisateur est 1000 (premier chiffre dans les masques) et aux membres du groupe numéro 46 (deuxième chiffre dans le masque) de lire et d'écrire et aux fichiers du disque. Les autres utilisateurs n'ont aucun droit de faire quoi que ce soit (d'où le troisième chiffre dans les masques - le 7). Voici les valeurs du masque :

7 – no permissions     6 – execute only    5 – write only
4 – write and execute  3 – read only       2 – read and execute
1 – read and write     0 – read, write and execute
14
con-f-use