Forum Programmation.python gestion des droits os.copy2()

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
23
juin
2020

Bonjour,
j'ai fait un petit script python pour synchroniser des dossiers sur un disque dur en réseau monté avec fusesmb sous linux dans un dossier /home/smb.
J'utilise le script pour copier des fichiers avec la fonction os.copy2() qui conserve les metadonnées telles que la derniere modification et ca ne pose pas de problemes sur mes dossiers "classiques".
En revanche quand je fais la copie dans /home/smb, le script buggue et me dit "access denied"
Jai essayé de modifier le script en créant les dossier avec le code
try:
os.makedirs(newdir, mode='777')
except OSError as err:
return err

mais c'est pareil.

D'où ma question où est ce que python va regarder pour ce qui concerne les "droits" de lecture ecriture dans le module os?
Merci

  • # au pif

    Posté par  . Évalué à 2.

    parce que ton fusesmb ne gere pas les droits sur la destination ?

    tu as essayé à la main de faire un

    cd /home/smb
    touch tonfichier
    chmod 777 tonfichier
    mkdir tondossier
    chmod 777 tondossier
    • [^] # Re: au pif

      Posté par  . Évalué à 1.

      je n'ai pas la permission pour touch
      j'ai la permission pour mkdir
      j'ai la permission pour chmod sur un fichier
      je n'ai pas la permission pour chmod sur un dossier

      comment est ce que je peux remédier à ca avec fusesmb?

      • [^] # Re: au pif

        Posté par  . Évalué à 2. Dernière modification le 25 juin 2020 à 18:39.

        voir les paramètres de ton montage, les droits et/ou les MASK (fichier et dossier) ne sont peut-être pas bons.

        • [^] # Re: au pif

          Posté par  (site web personnel) . Évalué à 2.

          Je ne sais pas avec fusesmb, mais en montage cifs il y a des options style acl,user_xattr à creuser. Il y a aussi des options uid=xxx,gid=xxx mais probable qu'avec fusesbm c'est l'utilisateur courant.

          Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # La réponse est dans smb

    Posté par  . Évalué à 2.

    Le protocole smb ne te permet probablement pas de changer les metadonnées sur les fichiers, or ta copie se fait en deux temps :
    1. copie du document
    2. changement des metadonnées

    ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # Voir shutil

    Posté par  (site web personnel) . Évalué à 2.

    Avec shutil.copy2(). Peut-être (à vérifier) qu'ils ont traité le cas.

    Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

    • [^] # Re: Voir shutil

      Posté par  . Évalué à 1.

      j'ai essayé avec shutil.copy2() cest la meme chose

Suivre le flux des commentaires

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