Lire et modifier les permissions et les audits des fichiers et dossiers sous nt/2000/xp (sacl et dacl)

4/5 (14 avis)

Vue 14 145 fois - Téléchargée 4 131 fois

Description

Ce code permet de lire les permissions et les audits sur un fichier ou dossier pour savoir quels utilisateurs ont quels droits sur le fichier ou le dossier.
Il permet aussi de modifier ces droits d'accès.

Vous pouvez ajouter, modifier ou supprimer les droits pour un utilisateur.

Vous pouvez ajouter, modifier ou supprimer les audits d'accès pour un utilisateur.

Ce code a été testé seulement sous XP mais devrait fonctionner sous NT et 2000. Il ne fonctionne pas sous 9x/ME. De plus, il est nécessaire d'avoir les droits suffisants sur le fichier (Administrateur ou Propriétaire)

Mise en garde : je ne serais être tenu responsable des effets de ce code (perte des droits d'accès...) dus à une mauvaise utilisation ou à un bug.

Conclusion :


Comme tous les codes sur la sécurité : attention à ne pas créer de faille en ajoutant des utilisateurs qui n'ont pas normalement de droits d'accès...

Ce code expose à peu près les fonctionnalités des 2 premiers Autorisations et Audit (Propriétés d'un fichier, onglet Sécurité, Paramètres avancés)

sous XP Familiale : il faut télécharger scesp4i.exe sur le FTP de Microsoft
(instructions d'installation :http://www.bellamyjc.net/fr/windowsxp2003.html#securitytabXPHOME)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
15 juil. 2004 à 13:59
Cette source m'a été utile, et jai eue le plaisir de ne pas rencontrer de bugs génants... Donc bravo à toi.
cs_Keneyda Messages postés 41 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 27 mars 2009
15 juil. 2004 à 15:31
Excellent, trés bien pour comprendre les dessous des permissions et les utilisateurs

On pourrait juste rajouter : une drivelistbox et une dirlistbox et le code:
-------------------------------------------------------
Private Sub Dir1_Change()
txtFile = Dir1
ViewUsers
End Sub

Private Sub Drive1_Change()
Dir1 = Drive1
End Sub
-------------------------------------------------------
Juste pour une utilisation plus simple... mais bon c'est du chipotage ;)

Keneyda
winsave Messages postés 21 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 1 septembre 2005
3 mars 2005 à 10:23
J'ai trouvé un petit bug ; en effet si on a 2 comptes qui ont le même nom sur des domaines diffèrents ce n'est pas forcément le bon compte qui est utilisé.

Bref à chaque appel de
LookupAccountName il faut préciser le domaine ; ce qui donne :

LookupAccountName vbNullString, Aces(X).lpReferencedDomainName & "" & Aces(X).User, ByVal 0&, cbSID, lpRef, cbRef, peUSe

au lieu de

LookupAccountName vbNullString, Aces(X).User, ByVal 0&, cbSID, lpRef, cbRef, peUSe

Documentation ici de l'API http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/lookupaccountname.asp

lpAccountName
[in] Pointer to a null-terminated string that specifies the account name.

Use a fully qualified string in the domain_name\user_name format to ensure that LookupAccountName finds the account in the desired domain.

Voili voilou.
cs_antoine76 Messages postés 30 Date d'inscription mardi 24 mai 2005 Statut Membre Dernière intervention 20 juillet 2005
20 juil. 2005 à 15:19
Tres bon code, est ce qu''il serait possible de l'appliquer sur une clé de registre au lieu d'un fichier?
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
21 juil. 2005 à 09:06
oui, on peut :
->GetFileSecurity pour les fichiers
->RegGetKeySecurity pour les clés de registre
->GetKernelObjectSecurity pour tout autre handle (ca marche peut etre meme avec les handles de registres et de fichiers)

ShareVB

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.