Changer le propriétaire d'un fichier windows
Par PlaceOweb le lundi, janvier 18 2010, 00:17 - Système - Lien permanent
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".
Dans l'onglet "Sécurité", cliquer sur le bouton "Avancé".
Vous constater l'utilisateur actuel et inexistant suite à une migration de Windows XP vers un autre Windows (ici Windows 7)
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".
On constate que le nouvel utilisateur a changé pour celui que l'on avait précédemment sélectionné.
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".
Confirmez
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
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é.
merci pour ce très bon boulot.
J'ai résolu un problème de migration Vista vers Seven
grâce à cet article.
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 ;-)
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.
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.
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
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