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

Scripts/Batch Discussion :

Partage réseau et droits NTFS


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut Partage réseau et droits NTFS
    Bonjour à tous !

    Dans le cadre d'un projet virtualisant des serveurs et postes utilisateurs d'une entreprise, je voudrais créer un script batch permettant de créer des répertoires partagés pour chaque utilisateur, puis attribuer des droits NTFS sur chaque répertoire.

    Le but étant de donner full access à l'utilisateur sur son propre dossier, en interdisant toutes les autres personnes, sauf les utilisateurs présents dans l'OU (AD) du service informatique, qui doivent avoir full access sur tous les dossiers partagés, et les utilisateurs de l'OU "Direction" qui doivent avoir un accès en lecture uniquement sur tous les dossiers du personnel.

    J'ai réussi à créer les dossiers et les partages grâce à cette boucle, que je teste tout d'abord en local sur mon poste :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for /f "tokens=3-4 Delims=;" %%i in (info.csv) do (
    	mkdir c:\partage\%%i\%%j
    	net share %%j=C:\partage\%%i\%%j /GRANT:%%j,FULL
    	)

    Je me suis renseigné sur la commande ICACLS, mais je ne comprends pas comment je peux supprimer TOUTES les autorisations de sécurité, pour ensuite mettre les miennes précisées ci-dessus.
    Merci pour votre aide !

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Imposer tes permissions implique de casser l'héritage, et casser l'héritage implique un autre choix : conserver les anciennes permissions ou bien les supprimer.

    Ce qui se traduit par cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    icacls fichier /inheritance:r
    Ensuite tu peux imposer tes permissions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    icacls fichier /grant Ouega:F

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut
    Effectivement, c'était plus simple que je ne pensais !

    Maintenant, il me reste à rajouter les accès à tous les membres de l'OU informatique 'en full) et Direction (en lecture).
    Je voudrais créer une boucle qui va chercher dans mon fichier de peuplement de l'AD les personnes appartenant à l'OU informatique / Direction, et lui applique les droits full/lecture pour TOUS les dossiers réseau, en laissant l'héritage désactivé.

    Pour le moment, j'ai ceci, mais je pense que cela ne va pas marcher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    for /f "tokens=3-4 Delims=;" %%i in (info.csv) do (
    	mkdir c:\partage\%%i\%%j
    	net share %%j=C:\partage\%%i\%%j /GRANT:%%j,FULL
    	iCACLS "C:\partage\%%i\%%j" /setowner "%%j"
    	iCACLS "C:\partage\%%i\%%j" /inheritance:r /grant %%j:F
    	)
    	
    REM attribution des droits d'accès aux users de l'OU Informatique en FULL et aux users de l'OU Direction en lecture.
    for /f "tokens=3-4 Delims=;" %%i in ('Type "info.csv" ^|Find "Informatique"') do (
    	iCACLS "C:\partage\*\*" /grant %%j:F)
    	)
    
    for /f "tokens=3-4 Delims=;" %%i in ('Type "info.csv" ^|Find "Direction"') do (
    	iCACLS "C:\partage\*\*" /grant %%j:R)
    	)
    J'ai déjà constaté que cmd ne prend pas "*" pour "tous les dossiers enfants contenus dans C:\partage".

    Faudrait-il plutôt que je révoque l'héritage du dossier parent C:\partage, que j'y ajoute les users de l'OU Informatique (Full) et Direction (Read), puis activer l'héritage des dossiers enfants, ou bien utiliser tout simplement l'argument /T de iCACLS ?

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Je pense que %%i représente l'UO correspondant à l'utilisateur, peux-tu me confirmer cela ?

    Après quelques dizaines d'essais (sans domaine malheureusement) j'arrive à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    for /f "tokens=3-4 delims=;" %%i in (info.csv) do (
    	mkdir c:\partage\%%i\%%j
    	net user %%j /add /domain
    	net share %%j=C:\partage\%%i\%%j /GRANT:%%j,FULL
    	net group %%i /add /domain
    	net group %%i %%j /add /domain
    	iCACLS "C:\partage\%%i\%%j" /inheritance:r
    	iCACLS "C:\partage\%%i\%%j" /grant Administrateurs:F
    	iCACLS "C:\partage\%%i\%%j" /grant %%j:F
    )
    
    
    for /f "tokens=3-4 delims=;" %%i in (info.csv) do (
    	iCACLS "C:\partage\%%i\%%j" /grant Direction:R
    	iCACLS "C:\partage\%%i\%%j" /grant Informatique:F
    	iCACLS "C:\partage\%%i\%%j" /setowner "%%j"
    )
    Pour mes tests, j'ai eu besoin de créer les utilisateurs avec la commande NET USER, je pense que tu n'as pas besoin de cette ligne.
    J'ai remarqué qu'il faut modifier le propriétaire seulement après avoir changé les permissions, sinon ça empêche la modification des permissions..

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut
    Citation Envoyé par barnabe0057 Voir le message
    Je pense que %%i représente l'UO correspondant à l'utilisateur, peux-tu me confirmer cela ?

    Pour mes tests, j'ai eu besoin de créer les utilisateurs avec la commande NET USER, je pense que tu n'as pas besoin de cette ligne.
    J'ai remarqué qu'il faut modifier le propriétaire seulement après avoir changé les permissions, sinon ça empêche la modification des permissions..
    oui tout à fait, j'ai un fichier csv dans leque la colonne 3 est l'OU de l'utilisateur (%%i), et la colonne 4 le login AD (%%j).
    Je regarde ça dès que j'ai le temps, mais je crois être en bonne voie !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Par défaut
    Juste une précision, à propos des commandes :
    net group %%i /add /domain
    net group %%i %%j /add /domain

    Elles sont ici pour créer des groupes, pour ensuite pouvoir donner des permissions à ces groupes, c'est bien cela ?
    Je comprends la premiere, mais %%i etant la valeur de l'OU dans laquelle est l'utilisateur %%j, que signifie la deuxième ligne ?
    Cela ajoute l'utilisateur %%j au groupe de nom %%i ?

Discussions similaires

  1. [ws2003] [AD] partage et droits NTFS
    Par epc dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 23/09/2008, 21h15
  2. [C#] Attribution de Droits NTFS
    Par dips dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/11/2006, 15h56
  3. Réponses: 3
    Dernier message: 30/05/2006, 12h07
  4. [VBS] droit NTFS sur dossier perso des utilisateurs
    Par Amandine62 dans le forum VBScript
    Réponses: 6
    Dernier message: 02/03/2006, 19h43
  5. Virus + accès partage réseau (fichier et imprimante)
    Par Eagle170 dans le forum Sécurité
    Réponses: 3
    Dernier message: 26/09/2005, 15h57

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