Aller au contenu | Aller au menu | Aller à la recherche


Changer le propriétaire d'un fichier windows

Comment modifier le propriétaire d'un fichier windows ?

Après avoir récupérer un vieux disque, ou avoir ré-installer un Windows différent, les utilisateurs propriétaires de mes fichiers ne sont plus reconnus...

Le PC était en XP familiale, il a planté et j'ai réinstallé Windows 7 par dessus afin de ne pas perdre les données Mais voilà, le problème est que j'ai perdu les droits d'écriture sur mes anciens fichiers....

Maintenant il me faut changer le propriétaire d'un dossier.

Changer le propriétaire des fichiers d'un dossier en récursif ainsi que les autorisations des objets enfants hérités sur Windows (XP, Vista, Seven...)

Changer le propriétaire des fichiers d'un dossier en récursif

Faire un clic droit sur votre dossier (ici "MAISON") et choisir "Propriétés".

Windows7ChangerProprietaire-1.gif

Dans l'onglet "Sécurité", cliquer sur le bouton "Avancé".

Windows7ChangerProprietaire-2.gif

Vous constater l'utilisateur actuel et inexistant suite à une migration de Windows XP vers un autre Windows (ici Windows 7)

Windows7ChangerProprietaire-3.gif

Nous allons donc le "Modifier" en cochant la case "Remplacer le propriétaire des sous conteneurs et des objets", située en bas, avant de valider par un clic sur le bouton "Appliquer".

Windows7ChangerProprietaire-4.gif

On constate que le nouvel utilisateur a changé pour celui que l'on avait précédemment sélectionné.

Windows7ChangerProprietaire-5.gif

Ces étapes auraient pus être réalisées en ligne de commande Icacls :

C:\>Icacls "E:\DATA\MesDocuments\MAISON\Carrefour" /setowner seb /T

Changer autorisations héritées

Aller ensuite sur l'onglet "Autorisations", cliquez sur "Modifier les autorisations" et cocher la case "Remplacer toutes les autorisations des objets enfants par des autorisations pouvant être héritées de cet objet". Puis cliquez sur le bouton "Appliquer".

Windows7ChangerProprietaire-6.gif

Confirmez

Windows7ChangerProprietaire-7.gif

Ressources

  • Sous Windows VIsta et Seven, icacls est l'utilitaire plus complet (remplaçant cacls) en ligne de commande équivalent à chmod et chown
icacls Objets /setowner utilisateur [/T] [/C] [/L]
 Modifie le nom du propriétaire pour tous les fichiers correspondants.
 
 icacls file /grant Administrator:(D,WDAC) 	Grants the user named "Administrator" the Delete and Write permissions to a file named file.
  • Sous MS-DOS et Windows, l'utilitaire attrib permet de changer certains attributs (lecture, écriture, caché, système) des fichiers, non liés au propriétaire.

{{Après beaucoup de recherches j'ai trouvé une solution dont j'étudie encore les applications. En effet la modification des droits en ligne de commande sous windows XP n'est pas inclut dans les commandes standards.

La solution Cygwin ne fonctionne pas non plus. Il faut utiliser l'utilitaire SetACL qui est un programme externe sous licence GPL.}}

Ressources relatives

  • Vista et Windows 7 : liste complète des fonctions de la ligne de commande
    • CACLS : Affiche ou modifie les listes de contrôles d'accès aux fichiers.
    • ICACLS : Affiche, modifie, sauvegarde ou restaure les ACLs (Listes de Contrôle d'Accès) pour des fichiers ou des répertoires.
    • TAKEOWN : Permet à un administrateur de récupérer l'accès à un fichier qui avait été refusé en réassignant l'appartenance de fichier.

De nombreux fichiers ou dossiers systèmes sous Vista ne sont pas modifiables. Il faut comprendre par là que vous n’en êtes pas le propriétaire et ce, pour des raisons de sécurité. Or, il arrive parfois que vous ayez besoin d’outrepasser ces limites. Pour ce faire, un long processus de prise de contrôle s’enclenche ce qui n’est guère très productif. Je vous propose donc d’ajouter une fonction de prise de contrôle dans le menu contextuel de Vista ce qui vous permettra d’éviter ce fastidieux travail.

Détailles des arguments attendus aux programmes gérant les accès fichiers

C:\>cacls

 REMARQUE : Cacls étant désapprouvé, utilisez Icacls.
 
 Affiche/modifie les listes de contrôle d'accès des fichiers
 
 CACLS nomfichier /T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G util:perm]
        [/R util [...]] [/P util:autor [...]] [/D util [...]]
    nomfichier    Affiche les listes ACL.
    /T  Modifie les listes ACL des fichiers dans
        le répertoire et les sous-répertoires.
    /L  Fonctionne sur le lien symbolique par opposition
        à la cible
    /M  Modifie les listes ACL des volumes montés dans un répertoire
    /S  Affiche la chaîne SDDL pour la liste DACL.
    /S:SDDL  Remplace les listes ACL par celles spécifiées dans
        la chaîne SDDL (non valide avec /E, /G, /R, /P ou /D).
    /E  Modifie la liste ACL au lieu de la remplacer.
    /C  Continue la modif. des ACL et ignore les erreurs
    /G util:autor Accorde des accès à l'utilisateur
        Perm : R  Lecture
                     W  Écriture
                     C  Modification (en écriture)
                     F  Contrôle total
    /R util       Révoque les accès de l'utilisateur
        (valide uniquement avec /E).
    /P util:autor Remplace les accès de l'utilisateur
        Perm peut être : N  Aucun
                     R  Lecture
                     W  Écriture
                     C  Modification (en écriture)
                     F  Contrôle total
    /D util       Refuse l'accès à l'utilisateur
 Utilisez des caractères génériques pour spécifier plusieurs
 fichiers dans une commande. Vous pouvez spécifier plusieurs utilisateurs
 dans une commande.
 
 Abréviations :
    CI - Héritage de conteneur.
Les répertoires héritent de l'entrée de contrôle d'accès.
    OI - Héritage d'objet.
Les fichiers héritent de l'entrée de contrôle d'accès.
    IO - Héritage unique.
L'entrée de contrôle d'accès ne s'applique pas au fichier/répertoire
en cours.
    ID - Hérité.
L'entrée de contrôle d'accès a hérité de la liste de contrôle
d'accès du répertoire parent.
C:\>Icacls
 
ICACLS nom /save fichierACL [/T] [/C] [/L] [/Q]
    Stocke les listes de contrôle d'accès discrétionnaire pour les fichiers et
    les dossiers qui correspondent au nom dans fichierACL pour une utilisation
    ultérieure avec /restore.Notez que les SACL, le propriétaire et les noms
    d'intégrité ne sont pas enregistrés.
 
ICACLS répertoire [/substitute AncienSID NouveauSID [...]] /restore fichierACL
    [/C] [/L] [/Q]
    Applique les listes de contrôle d'accès discrétionnaire stockées aux
    fichiers présents dans le répertoire.
 
ICACLS nom /setowner utilisateur [/T] [/C] [/L] [/Q]
    Modifie le propriétaire de tous les noms correspondants. Cette option ne
    force pas la modification du propriétaire ; utilisez pour cela l'utilitaire
    takeown.exe.
 
ICACLS nom /findsid SID [/T] [/C] [/L] [/Q]
    Recherche tous les noms correspondants qui contiennent une liste de
    contrôle d'accès mentionnant de façon explicite le SID.
 
ICACLS nom /verify [/T] [/C] [/L] [/Q]
    Recherche tous les fichiers dont la liste de contrôle d'accès n'est pas
    canonique ou dont les longueurs ne sont pas cohérentes avec les nombres
    d'entrées de contrôle d'accès.
 
ICACLS nom /reset [/T] [/C] [/L] [/Q]
    Remplace les listes de contrôle d'accès par les listes héritées par défaut
    pour tous les fichiers correspondants.
 
ICACLS nom [/grant[:r] SID:autorisation[...]]
       [/deny SID:autorisation [...]]
       [/remove[:g|:d]] SID[...]] [/T] [/C] [/L] [/Q]
       [/setintegritylevel Level:policy [...]]
 
    /grant[:r] SID:autorisation : octroie les droits d'accès utilisateur
        spécifiés. Avec :r, les autorisations remplacent toute autorisation
        explicite précédemment accordée.
        Sans :r, les autorisations sont ajoutées aux autorisations explicites
        précédemment accordées.
 
    /deny Sid:autorisation : refuse de manière explicite les droits d'accès
        utilisateur spécifiés. Une entrée de contrôle d'accès de refus
        explicite est ajoutée aux autorisations mentionnées et les mêmes
        autorisations dans tout accord explicite sont supprimées.
 
    /remove[:[g|d]] SID : supprime toutes les occurrences de SID dans la liste
        de contrôle d'accès. Avec
        :g, toutes les occurrences de droits accordés à ce SID sont
        supprimées. Avec
        :d, toutes les occurrences de droits refusés à ce SID sont supprimées.
 
    /setintegritylevel [(CI)(OI)]Ce niveau ajoute explicitement un ACE
        d'intégrité à tous les fichiers correspondants. Le niveau peut être :
             L[ow]
             M[edium]
        ou   H[igh]
        Les options d'héritage de l'ACE d'intégrité peuvent précéder le niveau
        et ne sont appliquées qu'aux répertoires.
 
    /inheritance:e|d|r
        e - Active l'héritage.
        d - Désactive l'héritage et copie les ACE.
        r - Supprime toutes les ACE héritées.

 
Remarque :
    Les SID peuvent être spécifiés au format numérique ou sous forme de nom
    convivial. Si le format numérique est utilisé, ajoutez un * avant le SID.
 
    /T indique que cette opération est effectuée sur tous les
        fichiers/répertoires correspondants qui se trouvent sous les
        répertoires spécifiés dans le nom.
 
    /C indique que cette opération se poursuivra sur toutes les erreurs de
        fichiers. Les messages d'erreurs continueront à s'afficher.
 
    /L indique que cette opération est effectuée directement sur un
       lien symbolique plutôt que sur sa cible.
 
    /Q indique qu'icacls doit supprimer les messages de réussite.
 
    ICACLS conserve l'ordre canonique des entrées de contrôle d'accès :
            Refus explicites
            Octrois explicites
            Refus hérités
            Octrois hérités
 
    L'argument autorisation est un masque d'autorisation et peut être fourni
    sous deux formes :
        une série de droits simples :
                N - Aucun accès
                F - Accès complet
                M - Accès en modification
                RX - Accès en lecture et exécution
                R - Accès en lecture seule
                W - Accès en écriture seule
                D - Accès en suppression
        une liste séparée par des virgules de droits spécifiques entre
        parenthèses :
                DE - Suppression
                RC - Contrôle en lecture
                WDAC - Accès en écriture à la liste de contrôle d'accès
                WO - Accès en écriture du propriétaire
                S - Synchronisation
                AS - Accès à la sécurité système
                MA - Maximum autorisé
                GR - Lecture générique
                GW - Écriture générique
                GE - Exécution générique
                GA - Générique pour tout
                RD - Lecture de données/Liste du répertoire
                WD - Écriture de données/Ajout de fichiers
                AD - Ajout de données/Ajout de sous-répertoires
                REA - Attributs de lecture étendus
                WEA - Attributs d'écriture étendus
                X - Exécution/Parcours
                DC - Suppression de l'enfant
                RA - Attributs de lecture
                WA - Attributs d'écriture
        Les droits d'héritage peuvent précéder n'importe quelle forme et ne
        sont appliqués qu'aux répertoires :
                (OI) - Héritage d'objet
                (CI) - Héritage de conteneur
                (IO) - Héritage uniquement
                (NP) - Ne pas transmettre l'héritage
                (I) - Autorisation héritée du conteneur parent
 
Exemples :
 
        icacls c:\windows\* /save fichierACL /T
        - Enregistre les listes de contrôle d'accès de tous les fichiers
          sous c:\windows et ses sous-répertoires dans fichierACL.
 
        icacls c:\windows\ /restore fichierACL
        - Restaure les listes de contrôle d'accès pour tous les fichiers
          contenus dans le fichierACL présent dans c:\windows et ses
          sous-répertoires.
 
        icacls fichier /grant Administrateur:(D,WDAC)
        - Octroie à l'utilisateur Administrateur les autorisations d'accès
          en suppression et en écriture à la liste de contrôle d'accès
          au fichier.
 
        icacls fichier /grant *S-1-1-0:(D,WDAC)
        - Octroie à l'utilisateur défini par le SID S-1-1-0 les autorisations
          d'accès en suppression et en écriture à la liste de contrôle
          d'accès au fichier.
C:\>takeown /?
 
TAKEOWN [/S système] [/U utilisateur [/P mot_de_passe]]]
        /F nom_fichier [/A] [/R [/D invite_de_commandes]]
 
Description :
    Cet outil permet à un administrateur de récupérer l'accès à un fichier qui
    avait été refusé en réassignant l'appartenance de fichier.
 
Liste de paramètres :
    /S    système                Spécifie le système distant auquel
                                 se connecter.
 
    /U    [domaine\]utilisateur  Spécifie le contexte utilisateur
                                 sous lequel la commande doit s'exécuter.
 
    /P    [mot_de_passe]         Spécifie le mot de passe du contexte
                                 utilisateur donné.
 
                                 Il est demandé s'il est omis.
 
    /F    nom_fichier            Spécifie le nom de fichier ou le
                                 modèle de nom du répertoire. Un caractère
                                 générique "*" peut être utilisé pour
                                 spécifier le modèle. Autorise
                                 nompartage\nomfichier.
 
    /A                           Donne l'appartenance au groupe
                                 d'administrateurs et non
                                 à l'utilisateur actuel.
 
    /R                           Récursif : force l'outil à traiter tous les
                                 fichiers du répertoire spécifié et tous
                                 ses sous-répertoires.
 
    /D    invite_commandes       Réponse par défaut utilisée
                                 lorsque l'utilisateur actuel ne possède pas
                                 l'autorisation "lister le dossier" sur un
                                 répertoire. Ceci se produit lors du
                                 traitement récursif (/R) sur les
                                 sous-répertoires. Utilisez les valeurs "O"
                                 pour prendre possession ou "N" pour ignorer.
 
    /?                           Affiche ce message d'aide.

    Remarque : 1) Si /A n'est pas spécifié, l'appartenance de fichier
                  sera attribuée à l'utilisateur actuellement connecté.
 
               2) Les modèles mixtes utilisant "?" et "*" ne sont pas pris
               en charge.
 
               3) /D est utilisé pour supprimer la demande de confirmation.
 
Exemples :
    TAKEOWN /?
    TAKEOWN /F lostfile
    TAKEOWN /F \\system\share\lostfile /A
    TAKEOWN /F directory /R /D N
    TAKEOWN /F directory /R /A
    TAKEOWN /F *
    TAKEOWN /F C:\Windows\System32\acme.exe
    TAKEOWN /F %windir%\*.txt
    TAKEOWN /S système /F Mon_Partage\Acme*.doc
    TAKEOWN /S système /U utilisateur /F Mon_Partage\foo.dll
    TAKEOWN /S système /U domaine\utilisateur /P mot_de_passe
    /F partage\nom_fichier
    TAKEOWN /S système /U utilisateur /P mot_de_passe /F Doc\Report.doc /A
    TAKEOWN /S système /U utilisateur /P mot_de_passe /F Mon_Partage\*
    TAKEOWN /S système /U utilisateur /P mot_de_passe /F Base\Connexion /R
    TAKEOWN /S système /U utilisateur /P mot_de_passe
    /F Mon_Partage\répertoire /R /A
 
C:\>

Commentaires

1. Le mercredi, janvier 27 2010, 20:00 par Charly Biteau

Merci beaucoup pour l'astuce, je commençais à m'arracher les cheveux pour pouvoir modifier mon host et voilà qu'en deux clics tout est réglé.

2. Le dimanche, mars 21 2010, 11:32 par Sylvain M

merci pour ce très bon boulot.
J'ai résolu un problème de migration Vista vers Seven
grâce à cet article.

3. Le jeudi, avril 15 2010, 19:38 par Doublec

Bonjours,

Premièrement, merci pour cette procédure qui s'avère des plus pratique et qui mérite à être connu.

je rencontre un problème sur les droits des dossiers Program Files (x86) et Program Files sous Windows 7 (en l'occurrence 64 bit, mais les versions 32 bit me posent le même problème).

En effet à l'inverse de Windows 2000/Xp, il m'est impossible de modifier les droit d'accès sur ces dossiers (ce qui n'est pas sans poser certain soucis).

Histoire de retrouver les même droits que sous Windows 2000/Xp (pour les utilisateurs avec pouvoir / Power users), et dans le but d'impacter l'intégrité des dossiers, sous dossier rt fichiers (parce que le un par un ... pas top), j'zi essayé via ICACLS (d'ailleurs je ne vois rien d'autre).

Ma commande donne :

ICACLS "C:\Program Files (x86)\*.*" /grant "Utilisateurs avec pouvoir":(RE,REA,WD,AD,WA,WEA,DE,RA,GR,X) /T

Malheureusement j'obtiens un Accès refusé à cause de Common Files (la commande marche sur un dossier si je le précise) ... bref c'est la loose.

Peux-t-on dans ICACLS exclure un dossier tout en modifiant les autres ??? Existe-t-il une méthode différente de la mienne (via GPO / Scripts par exemple) ???

Merci par avance ... et bonne soirée ;-)

4. Le vendredi, avril 16 2010, 12:27 par PlaceOweb

Désolé Doublec, je ne suis pas expert Windows, et apres 2 min de recherche, je n'ai pas trouver comment exclure ton dossier problématique.

Par contre essaie de rajout l'option /C pour continuer même en cas d'erreur : 

    /C indicates that this operation will continue on all file errors.

        Error messages will still be displayed.

5. Le jeudi, mars 21 2013, 19:45 par powuser

Bonjour,
Merci tout d'abord pour la qualité de cette page web.
J'aimerais savoir si après avoir sauvegardé un répertoire (et ses sous répertoire) avec 'icacls .../save ...' dans un fichier donc, si on peut restaurer les acl de ce répertoires plus tard en sachant que une personne , entre temps a coupé collé un fichier sur un niveau de ce répertoire, et en sachant que certains containers appliquent ou n'appliquent pas l'héritage. et que les groupes d'utilisateurs peuvent être différend suivant les niveaux.
Est ce que la restauration via icacls va appliquer l'héritage (reset pour chaque niveau indépendamment ?)sur le nouveau répertoire importé , et globalement?
Quel est le comportement de icalcs quand il doit faire une restauration et qu'il rencontre une situation qui a changée et qui est plus ou moins complexe, svp ?
Merci.

6. Le vendredi, février 28 2014, 22:14 par Nabintu

enfin
merci merci tout plein pour cette page
ça fait des semaines et des semaines que je cherche comment ouvrir mes dossiers, bloqués dès que je les déplace.
en-fin
merci merci encore

7. Le vendredi, octobre 24 2014, 19:57 par winuser

Complement d' information pour cas particulier, recalcitrant, etc:
J' ai tout essayé et ça ne marchait toujours pas,
mon soucis venait en fait de AVIRA et d' une case à cocher: proteger fichier hosts de toute modifications etc
....
probleme resolu

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet