MS-DOS : changer les sécurités d'un dossier
Tuesday, 27. May 2008, 06:28:00
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Groumphy>cacls
Affiche ou modifie les listes de contrôle d'accès (ACL) des fichiers
CACLS nom_de_fichier [/T] [/E] [/C] [/G util:perm] [/R util [...]]
[/P util:perm [...]] [/D util [...]]
nom_de_fichier Affiche les ACL.
/T Modifie les ACL des fichiers spécifiés dans le
répertoire en cours et tous les sous-répertoires.
/E Édite l'ACL au lieu de la remplacer.
/C Continue la modification des ACL en ignorant les erreurs.
/G util:perm Donne à l'utilisateur spécifié les droits d'accès.
Perm peut être : R Lecture
W Écriture
C Modification (en écriture)
F Contrôle total
/R util Retire les droits d'accès de l'utilisateur (avec /E).
/P util:perm Remplace les droits d'accès de l'utilisateur spécifié.
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 spécifié.
Des caractères génériques peuvent être utilisés pour préciser plusieurs
fichiers dans une commande. Vous pouvez spécifier plus d'un utilisateur dans
une commande.
Abréviations :
CI - Héritage de conteneur (Container Inherit).
Les répertoires héritent de l'entrée de contrôle d'accès.
OI - Héritage d'objet (Object Inherit).
Les fichiers héritent de l'entrée de contrôle d'accès.
IO - Héritage uniquement (Inherit Only).
L'entrée de contrôle d'accès ne s'applique pas au fichier ou
répertoire en cours.
C:\Documents and Settings\Groumphy>
Cette commande permet donc d'être rapide et efficace dans une modification de permissions.
CACLS C:\Windows\Temps /E /G Groumphy:F
J'attire toutefois l'attention que tout ce qui est autre utilisateur autorisé avec l'argument /E est littéralement supprimé.
De fait, il est préférable d'utiliser l'argument /T sur un utilisateur présent afin de conserver les propriétés existantes.
De ce fait, il est préférable de d'abord rajouter l'utilisateur (avec l'argument /G comme montré ci-dessus) puis de les éditer (avec /T en argument).
CACLS C:\Windows\Temps /T /G Groumphy:W CACLS C:\Windows\Temps /T /G Groumphy:F
Bien entendu tout cela doit être exécuté en mode administrateur... Petit inconvénient toutefois la commande RUNAS qui exécute en mode administrateur (par exemple) doit avoir les mots de passe et login ; mais inscrit en clair !
Pas très drôle.
Alors il est parfois utile de constituer un petit script AutoIt permettant de donner en paramètres les mots de passe et login... Ce qui ne sera jamais affiché en clair pour l'utilisateur !
; Auteur : Groumphy
; Licence : CC-Share-Alike 2.0
; 2008
Dim $s_Login, $s_Mdp
$s_Login = InputBox("Nom d'utilisateur", "Quel est le nom d'utilisateur pour l'exécution du script ?")
$s_Mdp = InputBox("Mot de passe", "Quel est le mot de passe pour l'exécution du script (rappel : nom d'utilisateur = " & $s_Login)
RunWait(@ScriptDir & "nomDuScript.bat" & $s_Login & " " & $s_Mdp, @ScriptDir)
Exit
Alors maintenant il faut bien entendu modifier le script. Ou plutôt de rajouter une petite ligne :
RUNAS /USER:%1@MONDOMAINE:%2 REM %1 = login REM %2 = mot de passe
Plus simple... Et surtout les scripts sont réutilisable.
P.S. : fait à chaud... Je n'ai pas testé ! Si des erreurs subsistent n'hésitez pas !

