[RESOLU]Lecteur cartes mémoire: comment changer les droits ?

jibe
Messages : 17
Inscription : 10 septembre 2013, 10:48

[RESOLU]Lecteur cartes mémoire: comment changer les droits ?

Message par jibe » 10 septembre 2013, 11:37

Salut,

J'ai un bête problème de droits que je ne parviens pas à résoudre : lorsque j'insère une carte mémoire dans le lecteur de cartes, elle se monte bien automatiquement dans /media, mais avec 10000 comme propriétaire et 10004 comme groupe, et 700 comme droits (rwx------). Evidemment, personne ne peut lire les cartes...

Mes recherches ne m'ont pas permis de résoudre le problème, ni même de trouver comment ces droits sont attribués...

J'ai bien essayé de créer une règle UDEV, mais ce n'est pas là ou pas de cette manière qu'il faut agir : cela m'a permis de rectifier les droits sur /dev/bus/usb, mais d'autres droits sont donnés sur la carte elle-même (/dev/sdc et /media/CF-linux256). Je ne sais pas comment sont attribués ces derniers ?

Un petit coup de main ou un lien vers une page expliquant comment tout ça est géré me serait bien utile...

Quelques précisions utiles :

Introduction d'une carte CF dans le lecteur :

Code : Tout sélectionner

$ lshal -m

Start monitoring devicelist:
-------------------------------------------------
10:37:57.396: volume_uuid_5bb24aee_5b9e_42b5_9c3d_85246450aa61 added
10:37:57.467: volume_uuid_5bb24aee_5b9e_42b5_9c3d_85246450aa61 property volume.mount_point = '/media/CF-linux256'
10:37:57.469: volume_uuid_5bb24aee_5b9e_42b5_9c3d_85246450aa61 property volume.is_mounted = true
résultat de dmesg :

Code : Tout sélectionner

$ dmesg | tail
sd 6:0:0:1: [sdc] 507024 512-byte logical blocks: (259 MB/247 MiB)
sd 6:0:0:1: [sdc] Assuming drive cache: write through
sd 6:0:0:1: [sdc] Assuming drive cache: write through
 sdc: sdc1
EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: 
Le montage automatique effectué :

Code : Tout sélectionner

$ mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdc1 on /media/CF-linux256 type ext4 (rw,nosuid,nodev,uhelper=udisks)
La règle UDEV que j'ai tenté de mettre en place :

Code : Tout sélectionner

$ cat /etc/udev/rules.d/5-usb-special-jb.rules 
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="058f", ATTR{idProduct}=="6362", MODE="0666", GROUP="plugdev"
Les droits modifiés par ma règle UDEV (mon lecteur est en 002:002)

Code : Tout sélectionner

$ ls -Al /dev/bus/usb/002/
total 0
crw-rw-r-- 1 root root    189, 128 10 sept. 10:10 001
crw-rw-r-- 1 root plugdev 189, 129 10 sept. 10:10 002
A noter que les droits devraient être 666 et qu'ils sont probablement écrasés par une règle intervenant après (ils sont bien ceux que je demande si je mets ma règle en 95 au lieu de 5). Le groupe est Ok, j'ai créé ce groupe (plugdev) pour que les utillisateurs autorisés puissent avoir accès au lecteur.

Les droits obtenus automatiquement :

Code : Tout sélectionner

$ ls -Al /dev/sd*
brw-rw---- 1 root disk 8,  0 10 sept. 10:10 /dev/sda
brw-rw---- 1 root disk 8,  1 10 sept. 10:10 /dev/sda1
brw-rw---- 1 root disk 8,  2 10 sept. 10:10 /dev/sda2
brw-rw---- 1 root disk 8,  3 10 sept. 10:10 /dev/sda3
brw-rw---- 1 root disk 8,  4 10 sept. 10:10 /dev/sda4
brw-rw---- 1 root disk 8,  5 10 sept. 10:10 /dev/sda5
brw-rw---- 1 root disk 8, 16 10 sept. 10:10 /dev/sdb
brw-rw---- 1 root disk 8, 32 10 sept. 10:37 /dev/sdc
brw-rw---- 1 root disk 8, 33 10 sept. 10:37 /dev/sdc1
brw-rw---- 1 root disk 8, 48 10 sept. 10:10 /dev/sdd
brw-rw---- 1 root disk 8, 64 10 sept. 10:10 /dev/sde

Code : Tout sélectionner

$ ls -Al /media
total 1
drwx------ 3 10000 10004 1024 22 avril 18:39 CF-linux256
Dernière modification par jibe le 11 septembre 2013, 19:07, modifié 1 fois.

Avatar de l’utilisateur
nouvo09
Messages : 2183
Inscription : 20 octobre 2009, 08:14
Localisation : Paris, France

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par nouvo09 » 10 septembre 2013, 17:22

Bonjour

Tu as regardé dans /etc/passwd et /etc/group à qui appartiennent ces numéros ?
C'est pas parce que c'est difficile qu'on ose pas,
c'est parce qu'on ose pas que c'est difficile !

jibe
Messages : 17
Inscription : 10 septembre 2013, 10:48

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par jibe » 10 septembre 2013, 22:13

C'est justement ce qui m'étonne : ils n'appartiennent à personne ! En plus, des numéros si élevés, ce n'est pas très courant ! On dirait presque des utilisateurs de domaine Samba, sauf que je n'ai pas rattaché ce poste à un domaine...

Je ne l'ai pas précisé, mais lorsque j'introduis une carte SD, j'ai bien sûr la même chose.

J'aimerais bien comprendre comment ça se passe lors de l'introduction d'une carte : il doit bien y avoir une règle udev ou autre qui définit cela ? Je n'ai pas su trouver de doc sur ce sujet... Si quelqu'un en connaît une, je suis très volontiers preneur !

Avatar de l’utilisateur
nouvo09
Messages : 2183
Inscription : 20 octobre 2009, 08:14
Localisation : Paris, France

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par nouvo09 » 11 septembre 2013, 08:36

Tu n'as pas plus d'infos en consultant /var/log/messages ?
C'est pas parce que c'est difficile qu'on ose pas,
c'est parce qu'on ose pas que c'est difficile !

jibe
Messages : 17
Inscription : 10 septembre 2013, 10:48

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par jibe » 11 septembre 2013, 10:42

Salut,

Merci de t'intéresser à mon problème !

Non, rien de plus dans /var/log/messages que ce que me donne dmesg. Je viens de refaire l'essai pour mettre le contenu exact :

Code : Tout sélectionner

Sep 11 10:11:49 localhost kernel: sd 6:0:0:1: [sdc] 507024 512-byte logical blocks: (259 MB/247 MiB)
Sep 11 10:11:49 localhost kernel: sd 6:0:0:1: [sdc] Assuming drive cache: write through
Sep 11 10:11:49 localhost kernel: sd 6:0:0:1: [sdc] Assuming drive cache: write through
Sep 11 10:11:49 localhost kernel: sdc: sdc1
Sep 11 10:11:49 localhost kernel: EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: 
Je pense que c'est plutôt au niveau des fichiers de config ou des règles udev qu'on trouvera la solution. Il doit certainement être paramétré quelque part ce qui doit être fait lorsqu'une carte est introduite ou retirée, l'événement correspondant déclenchant la lecture de cette configuration puis le mount correspondant.

Peut-être est-ce tout simplement une règle udev, malheureusement je ne sais pas comment on sait laquelle correspond à un tel événement (pour la prise en compte d'un périphérique nouvellement connecté, on vérifie les ID vendeur et produit, mais là les mêmes ID correspondent à toutes les cartes...). Je ne sais pas non plus ce que déclenche la règle udev (script ou autre...), donc je ne vois pas bien comment repérer laquelle fait ça ou comment en créer une traitant les événements correspondant aux cartes...

Tout cela est certainement documenté quelque part, mais je n'arrive pas à trouver la moindre explication. Qui sait ou sera plus malin que moi pour trouver où ?

Avatar de l’utilisateur
nouvo09
Messages : 2183
Inscription : 20 octobre 2009, 08:14
Localisation : Paris, France

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par nouvo09 » 11 septembre 2013, 11:08

Il en manque là. L'évènement commence par un message du style :

Code : Tout sélectionner

kernel: [  388.866774] usb 1-5.1.4: new high-speed USB device number 5 using ehci_hcd
C'est pas parce que c'est difficile qu'on ose pas,
c'est parce qu'on ose pas que c'est difficile !

MarbolanGos
Messages : 341
Inscription : 26 octobre 2009, 19:03

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par MarbolanGos » 11 septembre 2013, 16:29

Les droits en lecteur et écriture sur un système de fichier en ext4 comme c'est le cas ici : Sep 11 10:11:49 localhost kernel: EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: sont directement sur le système de fichier donc si l'utilisateur qui créé le fichier a un UID de 1004 et que l'on amène cette carte sur un ordinateur où l'utilisateur a un UID à 1000 il ne pourra pas lire ou écrire sur cette carte.

Pour éviter ce genre de problème, je passe (malheureusement) souvent le système de fichier en FAT32 ou NTFS. Sinon, quand on est en entreprise, avec le LDAP on n'a pas ce problème vu qu'on garde l'UID entre les machines donc pas de soucis !
Il y a la possibilité de fixer le sticky bit sur un groupe commun aux deux systèmes (en numéral) pour ne pas avoir de problèmes mais je gère pas trop cette méthode.
http://rarebril.com/blog
http://www.smolts.org/client/show/pub_d44745d4-fc38-4d31-a94c-499e6e1838ea

jibe
Messages : 17
Inscription : 10 septembre 2013, 10:48

Re: Lecteur de cartes mémoire : comment changer les droits ?

Message par jibe » 11 septembre 2013, 19:05

:oops: La bourde du siècle ! :oops: :oops: :oops:
MarbolanGos a écrit :Les droits en lecteur et écriture sur un système de fichier en ext4 comme c'est le cas ici : Sep 11 10:11:49 localhost kernel: EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: sont directement sur le système de fichier
Evidemment !!!

J'avais un doute sur ma carte SD, mais j'étais tellement persuadé que cette carte CF était en FAT32 que ni le nom "CF-linux256" ni même la mention EXT4-fs ne m'ont mis la puce à l'oreille...

On va mettre ça sur le compte d'Alzeimer, pour m'éviter la honte de m'entendre dire ce que je ne cesse de répéter : tout vérifier systématiquement même si ça parait idiot ou inutile, et surtout ne jamais partir sur une idée préconçue :oops:

Avec une carte formatée en FAT, ça marche nickel... Tout est normal !
nouvo09 a écrit :Il en manque là. L'évènement commence par un message du style :

Code : Tout sélectionner

kernel: [  388.866774] usb 1-5.1.4: new high-speed USB device number 5 using ehci_hcd
Là, désolé, mais non : la ligne précédente date de 10h08, donc nettement avant que j'introduise la carte. (et ce coup là, j'ai regardé de très près :P )

Je n'ai pas fait l'essai, mais je pense que ce type de message apparaît à la détection d'un nouveau périphérique USB et donc qu'il est normal que je ne l'aie pas, mon lecteur multicartes intégré étant détecté une fois pour toutes lors du boot. Me trompe-je ?

En tous cas, merci pour votre aide et vraiment désolé pour le bruit inutile !

Avatar de l’utilisateur
nouvo09
Messages : 2183
Inscription : 20 octobre 2009, 08:14
Localisation : Paris, France

Re: [RESOLU]Lecteur cartes mémoire: comment changer les droi

Message par nouvo09 » 11 septembre 2013, 20:17

Ma foi,

j'avais jamais vu d'UID ni de GID avec des numéros à 10 000
C'est pas parce que c'est difficile qu'on ose pas,
c'est parce qu'on ose pas que c'est difficile !

jibe
Messages : 17
Inscription : 10 septembre 2013, 10:48

Re: [RESOLU]Lecteur cartes mémoire: comment changer les droi

Message par jibe » 12 septembre 2013, 08:23

Salut,

C'est vrai que ces seuls numéros auraient dû me faire tiquer !

En fait, j'ai certainement reformaté cette carte sur mon poste de travail habituel, sur lequel je m'authentifie via SAMBA sur un serveur linux monté en contrôleur de domaine. Et dans la config, les UID et GID obtenus via cette authentification sont numérotés à partir de 10000 (défini dans smb.conf, pour ne pas risquer de chevauchement).

Comme le poste CentOS sur lequel j’essayais de monter ce lecteur n'avait pas cette authentification par le contrôleur de domaine, forcément ces numéros >= 10000 lui étaient inconnus.

Comme quoi, quand on part sur une idée préconçue, on devient vraiment aveugle à tout le reste !

Répondre