Privilèges/propriétaire problème lors de l'écriture dans C:\ProgramData\

Comme l'a souligné dans L'écriture dans le fichier de config C:\Program Files (x86)\MyApp\myapp.cfg, contre des privilèges d'Administrateur, il est pas une bonne idée d'écrire un fichier de config dans C:\Program Files (x86)\MyApp\myapp.cfg.

Au lieu de cela, mon logiciel enregistre ses données dans un sous répertoire de %ALLUSERSPROFILE% (ex : C:\ProgramData\MyApp\myapp.cfg sur Win7)

[J'utilise myfile = open(filename, 'a') en Python pour ce faire.]

Maintenant, je rencontre un problème sur ce fichier :

  • J'ai installé le logiciel avec User A, et il a couru, puis le fichier C:\ProgramData\MyApp\myapp.cfg a été écrit.
  • Puis, j'ai changé d'utilisateur pour User B, et a couru de nouveau mon logiciel : maintenant, une erreur s'affiche : User 2 n'a pas le droit d'écrire dans C:\ProgramData\MyApp\myapp.cfg (Permission denied).

Pourquoi? N'est-ce pas %ALLUSERSPROFILE% un lieu qui peut être écrit par tous les utilisateurs?
Comment résoudre ce problème ?

  • Réitérer l'un de David points qui peut avoir été perdu dans la discussion suivante, assurez-vous que c'est vraiment ce que vous devriez faire avant de le faire. C'est assez rare pour qu'elle ait un sens pour une application de configuration de partage de données entre utilisateurs. Habituellement, chaque utilisateur doit avoir son propre fichier de configuration. (Si Fred et George partagez un ordinateur, et Fred veut de votre application pour avoir un fond bleu, mais George veut avoir un rouge?)
InformationsquelleAutor Basj | 2014-02-28