Maison >développement back-end >Tutoriel Python >Python affiche les groupes d'autorisations de dossiers et utilise les modules du système d'exploitation pour gérer les dossiers
@Il est recommandé de mapper le lecteur réseau lors de l'utilisation du dossier du serveur
import win32security
import ntsecuritycon as con
FILENAME = r'D:tmpacc_test' #Folder path
sd = win32security.GetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION)
dacl = sd.GetSecurityDescriptorDacl()
ace_count = dacl.GetAceCount() #Afficher les utilisateurs (groupes) avec des autorisations de dossier Quantité
print('Ace count:', ace_count)
for i in range(0, ace_count):
rev, access, usersid = dacl.GetAce(i)
user, group , tapez = win32security.LookupAccountSid('', userid)
print('User: {}/{}'.format(group, user), rev, access)
User: user (0, 0) 1179817 #Uniquement ce dossier, affichage des autorisations
Utilisateur : admin (0, 0) 1245631 #Uniquement ce dossier, modification des autorisations
Utilisateur : administrateur (0, 3) 2032127 #Ce dossier, sous-dossiers Toutes les autorisations
#Supprimer les autorisations du dossier
Vous pouvez désormais lire les anciens ACE et supprimer les anciens est assez simple :
pour i in range(0, ace_count) :
dacl.DeleteAce (0)
#Utilisez add pour ajouter des autorisations
Et après cela, vous pouvez simplement ajouter des privilèges en appelant AddAccessAllowedAceEx() [MSDN]:
userx, domain, type = win32security.LookupAccountName ("", "your.user")
usery, domain, type = win32security.LookupAccountName ("", "other.user")
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3 , 2032127, userx) # Full control @middle 3 signifie que les autorisations seront héritées par les dossiers suivants 0 : Non
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3, 1179785, usery) # Autorisations en lecture seule
sd.SetSecurityDescriptorDacl(1, dacl, 0) #Peut ne pas être nécessaire
win32security.SetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION, sd)
J'ai pris les numéros 3, 2032127 et 1179785 de la liste dans la première moitié du script (avant d'exécuter le script J'ai configuré des privilèges dans l'Explorateur->Clic droit->Propriétés->Sécurité->Avancé) :
#
#
#Exemple
# essayez :
# permit = '1179817'
# acegroup = 'Users'
# dossier = 'Z:\50.Test Folder\01.2'
# sd = win32security.GetFileSecurity (dossier, win32security.DACL_SECURITY_INFORMATION )
# dacl = sd.GetSecurityDescriptorDacl()
# user1, domain, type = win32security.LookupAccountName('', acegroup)
#
# permisson = int(permit )
# dacl .AddAccessAllowedAceEx(win32security.ACL_REVISION, 0, permisson, user1) #Le 0 au milieu signifie que seul le dossier 3 représente ce dossier, le sous-fichier
# sd.SetSecurityDescriptorDacl(1, dacl, 0) # peut ne pas être nécessaire
# win32security.SetFileSecurity(folder, win32security.DACL_SECURITY_INFORMATION, sd)
# except Exception as e:
# print(e)
#Dossier de contrôle du module OS de Python
#import os
#importshuil
# try:
# os.mkdir(r'Z:50. Dossier de test
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!