cloner des ACL'l
Le
jbongran
Bonjour,
Alors là, j'ai beau chercher, je suis sec !
Suite à une réorganisation, je dois modifier des permissions ntfs en masse
En gros j'ai des file server avec une structure comme ça:
racine du partage
|_ Folder1
| |_ Sub1
| |_ Sub2
|_ Folder2
| |_ Sub1
| |_ Sub2
etc
J'ai une arborescence d'une branche dite modèle avec les nouvelles
permissions (les dossiers Sub1, Sub2, etc ont le même nom dans toutes les
branches)
|_ FolderModel
|_ Sub1
|_ Sub2
|_
|_
Et là, ben rien, je trouve pas comment cloner les acls du modèle sur leur
équivalents en production.
La seule solution trouvée, mais pas jouable compte tenu du nombre de
dossiers à traiter, c'est d'utiliser security explorer.
Y a pas un outil ou un script pour ce genre de chose, une idée ?
Merci
Ps: il peut y avoir coupure de l'héritage.
--
Jerome Bongran - MVP IIS
Alors là, j'ai beau chercher, je suis sec !
Suite à une réorganisation, je dois modifier des permissions ntfs en masse
En gros j'ai des file server avec une structure comme ça:
racine du partage
|_ Folder1
| |_ Sub1
| |_ Sub2
|_ Folder2
| |_ Sub1
| |_ Sub2
etc
J'ai une arborescence d'une branche dite modèle avec les nouvelles
permissions (les dossiers Sub1, Sub2, etc ont le même nom dans toutes les
branches)
|_ FolderModel
|_ Sub1
|_ Sub2
|_
|_
Et là, ben rien, je trouve pas comment cloner les acls du modèle sur leur
équivalents en production.
La seule solution trouvée, mais pas jouable compte tenu du nombre de
dossiers à traiter, c'est d'utiliser security explorer.
Y a pas un outil ou un script pour ce genre de chose, une idée ?
Merci
Ps: il peut y avoir coupure de l'héritage.
--
Jerome Bongran - MVP IIS

Poser une question


As-tu testé avec SUBINACL (je sais, c'est veillot)? Tu peux prendre un dump
détaillé des permissions vers un fichier-texte, ensuite re-travailler ce
fichier afin de l'adapter aux nouveaux chemins et le l'appliquer sur le
serveur de destination.
--
Marc Lognoul [MCSE, MCTS, MVP]
Heureux celui qui a pu pénétrer les causes secrètes des choses
Happy is the one who could enter the secret causes of things
Blog EN: http://www.marc-antho-etc.net/blog/
Blog FR: http://www.marc-antho-etc.net/blogfr/
"jbongran" news:
Pas de solution magique avec un beau script ?
je suis décu ... car
ce problème m'intéresse aussi ...
mais ... à scripter ...
.... c'est "chaud" comme disent les jeunes.
HB
jbongran wrote:
Bonjour Marc,
Aie, pas la tête !
Bien vu, j'ai fini mes tests avec subinacl sur une arborescence dissociée de
la production ;-)
En gros, voici la solution retenue:
En vbscript, je liste les sous-dossiers de mon arborescence modele, puis
genère un playfile subinacl par dossier avec son arborescence.
Un deuxième script (cela me permet de voir les playfile avant de les
appliquer) parcours les sous dossiers de l'arborescence de production et
pour chaque dossier prend le fichier playfile correespondant, change le
chemin du modele par celui de production et sauvegarde un nouveau play file,
en même temps je cree un batch contenant la ligne subinacl permettant de
rejour le playfile ainsi généré.
Cela fonctionne comme ça (ouf)
Si j'ai un peu de temps, je vais tester pour voir si je peux directement
générer le playfile avec les chemin de productions en utilsant la fonction
/replaceonoutput (de mémoire) de subinacl...
Subsiste deux questions:
1 - Lorsque je génère le "playfile", je n'ai pas trouvé le moyen de faire en
sorte de dire à subinacl de prendre le dossier toto ET les sous-dossiers ET
les fichiers
Si je fait /subdirectories jtoto il ne retourne que les acls de toto
Si je fait /subdirectories jtoto*.* il ne me retourne pas les acls pour
toto (mais bien tout ce qui est dessous)
J'ai contourné en faisant une passe pour le dossier vers un playfile
toto.tmp, puis une 2 eme passe vers un fichier toto1.tmp, puis je concatène
toto.tmp et toto1.tmp.
2 - Dans l'arborescence qui me sert de modele, l'objet SYSTEM à été oublié.
Si je le rajoute manuellment dans le playfile, il arrive (c'est pas
systématique) qu'une fenêtre me disant que les acls ne sont pas dans le bon
ordre. Je clique sur OK, à l'ouverture suivante tout va bien.
De quel ordre me parle t-il, alaphabétique ?
Ps: suivant la qualité du script final et son possible usage dans un autre
contexte, je posterai ici si cela interesse quelqu'un.
J'avoue que pour l'instant ma priorité est de faire en sorte que la
moulinette tourne, afin de modifier des listes d'acls nombreuses et
complexes sur un grand volume de données (+ ou - 7 To à faire en "one shot"
quand même)
Encore merci à toi Marc.
Je procède de la même manière pour contourner ce problème.
J'ai testé avec un script WSH+WMI puis Powershell en remplacement mais les
performances sont loin derrière celles de SUBINACL (2ème traitement inclus)
-> pas de solution de mon côté
Non, l'odre de précédence des ACEs qui détermine les permissions réelles.
L'explorateur Windows les trie autrement, pour des raisons cosmétiques (?)
Je suis intéressé par les résultats en terme de de temps d'éxécution ;)
--
Marc Lognoul [MCSE, MCTS, MVP]
Heureux celui qui a pu pénétrer les causes secrètes des choses
Happy is the one who could enter the secret causes of things
Blog EN: http://www.marc-antho-etc.net/blog/
Blog FR: http://www.marc-antho-etc.net/blogfr/
[...]
La aussi j'ai contourné (en test) en faisant une passe sur tous les volumes
avec /grant=SYSTEM=F
Et moi plutôt, disons tendu ;-)
Une fois que ce chamboulement sera passé et les effets de bord résolus, je
ferais le retour.
--
Jerome Bongran - MVP IIS
Bon ça y est, le plus gros est passé, et comme j'avais promis un retour :-)
J'ai finalement scindé le traitement en trois scripts vbs:
Le premier parcours une arborescence complète dite modèle afin de créer à
certains endroits un fichier et/ou un dossier nommé "a_supprimer"
Le deuxième script génère en deux passes (une pour le répertoire racine et
une autre pour l'arborescence) un "playfile" de l'arborescence modèle dont
je modifie le nom de repertoire racine par une chaine fixe ($MODELE$) et les
lignes qui contiennent "a_supprimer" par +SUBDIREC au lieu de +File (ou
l'inverse, je ne sais plus), ce qui permet d'appliquer des droits par
héritage aux fichiers et répertoires existants dans les arborescence cibles
mais pas dans celle du modèle.
Le troisième charge en mémoire le playfile modèle, parcours une arborescence
afin de générer un playfile par sous répertoire (dont la structure est la
même que celle modèle) en remplaçant $MODELE$ par le chemin de chaque sous
répertoire. Il génère aussi un fichier cmd contenant les lignes permettant
d'appliquer les playfiles créés.
Côté performance, c'est assez variable, mais en gros sur une arborescence de
presque 1 Téra, avec environ 1,2 million de fichiers et des droits
explicites au niveaux 2 et 3 avec en moyenne une dizaines de groupe, il faut
compter 45 minutes sur un Xeon quad Core, 8 Go de RAM et des baies de
disques en fibre channel 4Gb sans surcharge notable de la RAM et les
processeurs qui plafonnent au maximum à 70%, machine toujours en production
avec les utilisateurs connectés.
Les scripts ne sont pas parfaits mais fonctionnent dans mon contexte. De
plus je n'ai pas eu le temps de fignoler la syntaxe ou d'optimiser au
maximum et pour finir ils sont vraiment "custom" mais si cela interesse
quelqu'un je peux les poster.
En tout cas, à la main, j'y serais encore, et en cas d'erreur ou de
modification des ACL's, hop juste à corriger le playfile modèle et 45
minutes plus tard toute l'arborescence est "up and running".
PS: quelques tests avec xcacls.vbs m'ont convaincu de laisser tomber,
beaucoup trop lent.
Security explorer aurait pu convenir mais je suis toujours réticent pour
installer une "mini usine à gaz", alors qu'il y a des moyens quasi natif de
le faire.
Il s'agit toutefois d'un excellent produit pour les allergiques de la ligne
de commande lorsqu'il s'agit de sauvegarder, modifier ou appliquer des ACL's
sur des arborescences ayant des ACL's nombreuses et/ou complexes.
--
Jerome Bongran - MVP IIS
instructif et je te rejoins sur tous les points (structure des scripts,
performances décevantes du VBS...)
--
Marc Lognoul [MCSE, MCTS, MVP]
Heureux celui qui a pu pénétrer les causes secrètes des choses
Happy is the one who could enter the secret causes of things
Blog EN: http://www.marc-antho-etc.net/blog/
Blog FR: http://www.marc-antho-etc.net/blogfr/