Forum Linux.général Impossible de donner les droit d'un disque vfat à un utilisateur

Posté par  . Licence CC By‑SA.
0
12
août
2018

J'utilise un raspberry-pi et je veux monter dessus un disque USB qui est en Fat.
Je voudrais que les dossiers et fichiers appartiennent à l'utilisateur pi.

Je fais un

$ sudo mount /dev/sda1 -t vfat /mnt/partage -o uid=pi,gid=pi
mais ensuite, si je liste les fichiers de /mnt/partage, ils ont pour propriétaire root:root. J'ai essayé avec des uid numériques, c'est la même chose. Pareil si j'ajoute d'autre options (fmask, dmask, user, users), rien ne bouge c'est toujours root qui possède les fichiers et les droits ne changent pas. Je n'ai pas vu de log intéressant.
J'ai testé et root à bien le droit de créer des fichiers (donc on est pas en read-only)

Si quelqu'un à une piste de choses à tester, où de ou regarder… je suis preneur !

Infos de version:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.4 (stretch)
Release:    9.4
Codename:   stretch

$ uname -a
Linux raspberrypi 4.14.52+ #1123 Wed Jun 27 17:05:32 BST 2018 armv6l GNU/Linux

$ mount --version
mount from util-linux 2.29.2 (libmount 2.29.2: selinux, btrfs, assert, debug)

EDIT: la solution finalement : https://linuxfr.org/nodes/115075/comments/1747492

  • # Formatage du dique

    Posté par  . Évalué à 2.

    J'ai déjà eu un truc de ce style. Bizarrement, je l'ai réglé en faisant un formatage avec Disques (et non avec GParted, ça ne marche pas). J'avais une zone non formatable de 1 Mo au début du disque (MBR?), elle a dégagé et j'ai recréé une simple partition, comme sur une clé USB, et ça remarchait bien au niveau des droits.

    • [^] # Re: Formatage du dique

      Posté par  . Évalué à 2.

      yep, mon problème c'est que le disque est plein et que j'aurais préféré ne pas le toucher !

      • [^] # Re: Formatage du dique

        Posté par  . Évalué à 2. Dernière modification le 13 août 2018 à 13:19.

        Par contre je suis également dans ce cas d'une partition qui commence à 1049kB selon parted:

        (parted) print                                                            
        Model: ST2000DM 001-1CH164 (scsi)
        Disk /dev/sda: 2000GB
        Sector size (logical/physical): 512B/512B
        Partition Table: msdos
        Disk Flags: 
        
        Number  Start   End     Size    Type     File system  Flags
         1      1049kB  2000GB  2000GB  primary  fat32        lba
        
      • [^] # Re: Formatage du dique

        Posté par  . Évalué à 1. Dernière modification le 13 août 2018 à 17:52.

        Oui, mais à mon avis, tu n'auras pas le choix. Il faut copier ton disque ailleurs et faire la manipulation que je t'ai indiquée.
        Je suis surpris d'avoir des trucs bloquants de ce genre de temps en temps alors que j'utilise Linux depuis 18 ans. Le montage/démontage automatique des disques reste toujours aussi compliqué.

        • [^] # Re: Formatage du dique

          Posté par  . Évalué à 2.

          Le montage/démontage automatique des disques reste toujours aussi compliqué.

          je ne penses pas que reformater un disque simplifie le montage automatique des disques :D

          • [^] # Re: Formatage du dique

            Posté par  . Évalué à 1.

            Dans ce cas, si. Après reformatage avec Disques et suppression de la zone au début du disque, le montage se fera automatiquement avec les bons droits, les droits root disparaîtront.

        • [^] # Re: Formatage du dique

          Posté par  . Évalué à 2.

          Bon finalement après plein de tergiversation (chkdsk, fsck.vfat, plein d'options testées) j'ai trouvé le coupable !!!

          C'est usbmount qui montant le disque (et je ne l'avais pas vu, honte à moi) qui du coup était déjà monté en root.

          Donc quand je montais le disque ensuite avec mon uid/gid ils étaient ignorés (apparemment on doit pas pouvoir monter le disque à deux endroits différents avec des uid/gid différents).

          J'ai donc édité /etc/usbmount/usbmount.conf pour passer ENABLED à 0 (merci à cet échange pour m'avoir suggérer la piste)

          😠😠😠 Mais pourquoi n'ai je eu aucun message d'avertissement ! Même avec les traces de debug 😠😠😠

          Bref maintenant c'est bon… mount à retrouvé un comportement rationnel ou les options uid et gid sont bien prises en compte.

    • [^] # Re: Formatage du dique

      Posté par  . Évalué à 2.

      Pour info, hier j'ai testé le branchement de mon disque sur mon ordinateur sous ubuntu 18.04, et tout c'est très bien passé !

      J'ai recopié les options de la ligne du /etc/mtab:

      rw,nosuid,nodev,relatime,uid=nobody,gid=nogroup,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flus
      Mais voilà, quand je teste sur le raspberrypi, c'est toujours le même problème :-/

      Ce qui me chagrine c'est de n'avoir aucun log de ce non respect des droits !

      J'ai lancé le mount avec LIBMOUNT_DEBUG=all et LIBBLKID_DEBUG=all mais sans rien repérer de spécial, au contraire les options sont bien citées dans les logs.

      • [^] # Re: Formatage du dique

        Posté par  . Évalué à 2.

        la question a se poser c'est :
        1. qui fait le montage ? l'utilisateur ou le systeme (root)
        2. a quel endroit ? /mnt/undossier ou /media/leuser/ledisque
        3. quels sont les droits du dossier de montage du (2) avant le montage, apres le montage

        • [^] # Re: Formatage du dique

          Posté par  . Évalué à 2.

          1. qui fait le montage ? l'utilisateur ou le systeme (root)

          j'ai testé les deux

          1. a quel endroit ? /mnt/undossier ou /media/leuser/ledisque

          hum c'est dans /mnt dans mon cas, tu penses que ça a une influence ? (et dans ce cas, qui empêche d'avoir un montage utilisateur dans /mnt ? udev ? apparmor ?)

          1. quels sont les droits du dossier de montage du (2) avant le montage, apres le montage

          ben pi avant et root après :-(

          Merci de la piste 2, je vais vérifier si mettre dans /media/pi change quelque chose !

          • [^] # Re: Formatage du dique

            Posté par  . Évalué à 2.

            Piste 2 vérifiée également, si je fais /media/pi/partage avec les dossiers pi et partage appartenant à l'utilisateur pi (avant montage), j'ai partage qui, suite au montage, appartient à root, ainsi que les contenus du disque.

            J'ai regardé sur ma distribution ubuntu, et /media/alex appartient à root, par contre il y a un acl étendue.

            $ getfacl /media/alex/
            getfacl : suppression du premier « / » des noms de chemins absolus
            # file: media/alex/
            # owner: root
            # group: root
            user::rwx
            user:alex:r-x
            group::---
            mask::r-x
            other::---
            

            J'ai mimé ça sur le raspberrypi, mais j'obtiens le même problème :-(

            Ce qui m'énerve le plus c'est de n'avoir aucun log qui me dit pourquoi mount n'obéit pas !

  • # Option uid ?

    Posté par  . Évalué à 1. Dernière modification le 13 août 2018 à 09:50.

    Il me semble que l'option uid attends le n° de l'utilisateur et non pas son nom ; tout comme gid.

    • [^] # Re: Option uid ?

      Posté par  . Évalué à 2.

      yop, comme dit plus haut, j'ai testé et c'est pareil :-/

  • # Impossible de donner les droit d'un disque vfat à un utilisateur

    Posté par  . Évalué à 1.

    Peux tu tester en créant un dossier test dans /mnt

    Puis

    sudo mount /dev/sda1 -t vfat /mnt/test -o uid=pi,gid=pi
    Ci ça ne fonctionne pas, peux tu chown ce dossier, juste pour voir si c'est ton utilisateur qui a un problème?

    chown -R pi:pi /mnt/test

    • [^] # Re: Impossible de donner les droit d'un disque vfat à un utilisateur

      Posté par  . Évalué à 2.

      Bonne idée le chown, mais ça ne change rien malheureusement :'(.

      J'ai bien:

      $ ls test/ -ld
      drwxr-xr-x 2 pi pi 4096 août 13 11:09 test/
      Mais:

      $ sudo mount /dev/sda1 /mnt/test -o uid=pi,gid=pi
      $ ls test/ -ld
      drwxr-xr-x 18 root root 32768 août 12 21:26 test/
      $ ls test/{,PHOTOS} -ld
      drwxr-xr-x 18 root root 32768 août 12 21:26 test/
      drwxr-xr-x 69 root root 32768 avril 10 2014 test/PHOTO

  • # la (V)FAT ne gere pas les droits utilisateurs

    Posté par  . Évalué à 4. Dernière modification le 13 août 2018 à 16:23.

    du coup l'appartenance du disque est à celui qui en fait le montage.

    si c'est root (avec ou sans le sudo ) qui fait le montage, alors le disque et les sous dossiers appartiennent à root.

    si tu montes le disque avec ton ubuntu par exemple, et l'interface graphique, c'est l'utilisateur en cours qui fait le montage, et donc c'est lui qui possede le disque et les droits dessus.

    • [^] # Re: la (V)FAT ne gere pas les droits utilisateurs

      Posté par  . Évalué à 2.

      Ben j'ai essayé en mettant l'option users (qui permet de monter avec les users) dans le fstab, mais quand je le monte avec mon utilisateur, il ne lui appartient toujours pas.

      Sous Ubuntu, je pense que c'est une règle udev qui va faire le montage, et s'il y a un seul utilisateur connecté, lui attribuer le disque.

      Par contre tu viens de me donner l'idée de vérifier avec mon portable Ubuntu comment se comporte le disque !

    • [^] # Re: la (V)FAT ne gere pas les droits utilisateurs

      Posté par  . Évalué à 2. Dernière modification le 14 août 2018 à 09:48.

      C'est effectivement le comportement par défaut, mais les options uid et gid (d'après la page de manuel de man) devraient justement permettre de changer ce comportement par défaut.

      Il faudrait voir dans dmesg s'il n'y a pas d'erreur après une tentative de montage.

  • # fstab

    Posté par  . Évalué à 3.

    Je suis d'accord avec NeoX, c'est le sudo qui fait que c'est root qui est le propriétaire.
    Le plus simple c'est de mettre ton disque dans fstab & de mettre user dans les options (attention l'option defaults contient nouser) ainsi l'utilisateur sera autorisé à monter le disque et sera vu comme le proprio.

    • [^] # Re: fstab

      Posté par  . Évalué à 2.

      Comme dit plus haut, non ça ne fonctionne pas, malheureusement (et je pense que c'est indépendant)

      En détail :

      $ cat /etc/fstab
      ...
      PARTUUID=1aa63cdc-01 /mnt/partage     vfat    nofail,uid=pi,gid=pi,user,users,owner=pi,group=pi,umask=0777,dmask=0777,fmask=0777,utf8       0      0
      ...
      

      (ouais j'y suis allé bourrin sur les options :-) )

      mais (en tant que pi) :

      $ umount /mnt/partage 
      $ mount /mnt/partage/
      $ ls -ld /mnt/partage/PHOTOS/ 
      drwxr-xr-x 69 root root 32768 avril 10  2014 /mnt/partage/PHOTOS/
      
      • [^] # Re: fstab

        Posté par  . Évalué à 3.

        Mes options dans fstab sont simplement : noatime,noauto,rw,nosuid,user
        Et user impliquant nosuid, quand je l'ai ajouté, j'aurais pu retirer nosuid. Et j'ai bien l'utilisateur qui monte le disque qui est proprio.
        Après, si les mêmes options fonctionnent sur ton portable & pas sur ton pi, c'est peut-être que sur le pi, il y a une version de mount qui est différente (ou une autre brique du système qui fonctionne différemment).

        • [^] # Re: fstab

          Posté par  . Évalué à 2.

          j'ai testé mais sans succès :-/

  • # Commentaire supprimé

    Posté par  . Évalué à 0. Dernière modification le 15 août 2018 à 10:42.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Can not give the rights of a vfat disk to a user

      Posté par  . Évalué à 2.

      Ce ne sont effectivement pas les droits des fichiers sur la partition fat, mais les options de mount permettent normalement au kernel de te montrer les fichiers avec un certain utilisateur / groupe et avec un certain masque de permissions (mais ça s'applique à tous les fichiers et tu ne peux effectivement pas modifier les permissions / propriétaires localement).

  • # Soyons méthodiques

    Posté par  . Évalué à 2.

    nofail,uid=pi,gid=pi,user,users,owner=pi,group=pi,umask=0777,dmask=0777,fmask=0777,utf8

    Oui, la ça commence a faire beaucoup comme options …
    Déjà si tu pouvais nous donner la version de la distro qui tourne sur ton pi ?

    ensuite nous donner tes id et gid :
    id -u pi
    id -g pi

    puis essayer les options au plus simple : defaults,user,id=XXX,gid=XXX,noauto

    • [^] # Re: Soyons méthodiques

      Posté par  . Évalué à 3.

      Hello,

      Merci de t'intéresser.

      Oui, la ça commence a faire beaucoup comme options …

      Oui bien sur, avant j'avais commencé par les trucs les plus simple, juste uid=pi,gid=pi

      Déjà si tu pouvais nous donner la version de la distro qui tourne sur ton pi ?

      Regarde le post, il y a un lsb_release -a et uname -a + la version de mount qui te dirons que je suis en Raspbian 0.4 (stretch), noyaux 4.14.52+ (armv6l).

      ensuite nous donner tes id et gid

      yep, c'est 1000 et 1000 (et oui j'ai déjà essayé avec uid=1000,gid=1000)

      donc tout de même, je testerais les options préconisées mais pour le moment je soumet le disque à un chkdsk sur une machine windows (mode désespoir !)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.