IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Droits d'écriture d'un compte utilisateur


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 72
    Points : 77
    Points
    77
    Par défaut Droits d'écriture d'un compte utilisateur
    Bonjour,
    Lorsqu'un programme s'exécute dans un compte aux droits limités, je souhaiterai savoir dans quels répertoires et branches de la base de registre ce compte (ou plutôt, le programme que je développe) a le droit d'écrire/modifier des données et fichiers.
    Merci!

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Sous NT, tu peux utiliser plusieurs méthodes pour tester.
    • Tenter d'ouvrir en écriture et voir si ça passe
    • Utiliser des fonctions du genre GetFileSecurity() pour lire les listes de contrôle d'accès.



    Si tu demandes juste "quels sont, en théorie, les répertoires et clés auxquels on a accès en écriture", je dirais, en règle générale:
    • Pour les fichiers, tout sauf la racine de C: (on peut y créer des répertoires mais pas des fichiers), les dossiers systèmes (Program Files, Windows) et bien sûr les dossiers des autres utilisateurs.
    • Pour le registre, tu as le droit d'écrire dans HKEY_CURRENT_USER, mais pas dans HKEY_LOCAL_MACHINE ni HKEY_CLASSES_ROOT.
      Pour HKEY_CURRENT_CONFIG, je pense que non (d'ailleurs, HKCC doit être mappé sur certaines clés de HKLM) et pour HKEY_USERS, je pense que tu n'as le droit que pour ton dossier (Celui sur lequel HKCU est mappé).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 72
    Points : 77
    Points
    77
    Par défaut
    Merci pour ta réponse.
    En effet j'ai oublié de préciser que le programme s'exécutera sur du Windows 2000, XP et peut-être Vista à l'avenir.

    Pour la base de registre, je veux m'en servir pour y stocker les informations de configuration (à la place d'un fichier INI). HKEY_CURRENT_USER me paraît bien mais à l'installation comment faire si je veux configurer pour "tous les utilisateurs" ? En effet, quand j'installe le programme (avec un compte administrateur), aujourd'hui les données sont placées dans HKLM\SOFTWARE\NomEntreprise\NomLogiciel. Par contre dans HKEY_USERS je ne vois pas de clé qui corresponde à chaque compte enregistré sur la machine.

    Pour les répertoires, ce serait pour les fichiers de travail (essentiellement temporaires mais pas uniquement). A priori la fonction d'API GetTempPath() donne effectivement un chemin vers le répertoire de l'utilisateur courant.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Il me parait normal que seul un administrateur puisse régler des paramètres "pour tous les utilisateurs". Ceux-ci seront alors dans HKLM.

    Si tu veux faire des données partagées accessibles en écriture aux utilisateurs, tu peux toujours faire un sous-répertoire dans All Users\Application Data (ou une sous-clé dans HKLM\Ton Logiciel) et donner aux utilisateurs les droits en écriture dessus. Et ce, aussi bien manuellement que logiciellement.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Par contre dans HKEY_USERS je ne vois pas de clé qui corresponde à chaque compte enregistré sur la machine.
    En effet Windows ne monte pas les ruches de chaque utilisateur à la connexion d’un seul de ces utilisateurs même si il s’agit d’un compte admin.

    Le plus simple est de ne pas configurer tous les utilisateurs à l’installation, mais lors du premier lancement de l’application par l’utilisateur qui, dans ce cas, dispose directement de sa partie dans le registre. Cependant il reste possible de réaliser ce que tu demandes (si j’ai bien compris...) à savoir accéder aux autres utilisateurs via le registre.

    Pour accéder aux ruches des autres utilisateurs :

    1. Dans la base de registre les profils utilisateurs se trouvent sous forme de SID (cf. http://fr.wikipedia.org/wiki/Security_Identifier) dans : HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    2. La propriété ProfileImagePath d’un SID te permet de retrouver le répertoire de l’utilisateur.
    3. Dans ce répertoire se trouve le fichier NTUSER.DAT qui contient la ruche du profile.
    4. Il ne te reste plus qu’à monter cette ruche pour y accéder. Malheureusement il n’existe pas à ma connaissance de fonction permettant de monter directement un fichier .dat dans le registre. Pour contourner le problème tu peux utiliser reg.exe dans ce style :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      objshell.Run "%comspec% /c reg.exe load HKU\" & strSID & " """ & strProfilePath & "\ntuser.dat""",0,true


    Voilà qui représente un bon début si tu veux te lancer. À+

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 72
    Points : 77
    Points
    77
    Par défaut
    Je vous remercie de vos réponses, j'ai une bonne base de travail maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] compte utilisateur et droit associé
    Par Abou Zar dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/11/2009, 09h30
  2. Réponses: 2
    Dernier message: 01/08/2008, 11h12
  3. [serveur ftp] Problème de droit d'écriture pour un utilisateur
    Par Louis-Guillaume Morand dans le forum Administration système
    Réponses: 39
    Dernier message: 02/07/2007, 09h30
  4. [compte utilisateur] problème de droit
    Par moulefrite dans le forum Windows XP
    Réponses: 1
    Dernier message: 22/03/2007, 15h04
  5. Droits limités pour un compte utilisateur
    Par gothikth dans le forum Windows XP
    Réponses: 3
    Dernier message: 13/07/2006, 10h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo