Heim > Artikel > Backend-Entwicklung > Python zeigt Ordnerberechtigungsgruppen an und verwendet Betriebssystemmodule, um Ordner zu verwalten
@Es wird empfohlen, beim Betrieb des Serverordners die Netzwerklaufwerksfestplatte zuzuordnen
win32security importieren
ntsecuritycon als con importieren
FILENAME = r'D:tmpacc_test' #Ordnerpfad
sd = win32security.GetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION)
dacl = sd.GetSecurityDescriptorDacl()
ace_count = dacl.GetAceCount() #Benutzer (Gruppen) mit Ordnerberechtigungen anzeigen Menge
print('Ace count:', ace_count)
for i in range(0, ace_count):
rev, access, usersid = dacl.GetAce(i)
user, Gruppe, Typ = win32security.LookupAccountSid('', Benutzer-ID)
print('Benutzer: {}/{}'.format(Gruppe, Benutzer), Rev, Zugriff)
Benutzer: Benutzer (0, 0) 1179817 #Nur dieser Ordner, Anzeigeberechtigungen
Benutzer: admin (0, 0) 1245631 #Nur dieser Ordner, Berechtigungen ändern
Benutzer: Administrator (0, 3) 2032127 #Dieser Ordner, Unterordner Alle Berechtigungen
#Ordnerberechtigungen löschen
Jetzt können Sie alte ACEs lesen und alte löschen ist ganz einfach:
for i in range(0, ace_count):
dacl.DeleteAce (0)
#Verwenden Sie „add“, um Berechtigungen hinzuzufügen
Und danach können Sie einfach Berechtigungen hinzufügen, indem Sie AddAccessAllowedAceEx() [MSDN] aufrufen:
userx, domain, type = win32security.LookupAccountName ("", "your.user" )
usery, domain, type = win32security.LookupAccountName ("", "other.user")
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3 , 2032127, userx) # Volle Kontrolle @middle 3 bedeutet, dass die Berechtigungen von nachfolgenden Ordnern geerbt werden 0: Nein
dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 3, 1179785, usery) # Schreibgeschützte Berechtigungen
sd.SetSecurityDescriptorDacl(1 , dacl, 0) #Kann möglicherweise nicht notwendig sein
win32security.SetFileSecurity(FILENAME, win32security.DACL_SECURITY_INFORMATION, sd)
Ich habe die Nummern 3, 2032127 und 1179785 aus der Auflistung in der ersten Hälfte des Skripts (vor der Ausführung) übernommen das Skript, das ich im Explorer eingerichtet habe->Rechtsklick->Eigenschaften->Sicherheit->Erweitert):
#
#
#Beispiel
# ausprobieren :
# erlauben = '1179817'
# acegroup = 'Benutzer'
# Ordner = 'Z:\50.Test Ordner\01.2'
# sd = win32security.GetFileSecurity (Ordner, win32security. DACL_SECURITY_INFORMATION)
# dacl = sd.GetSecurityDescriptorDacl()
# user1, domain, type = win32security.LookupAccountName('', acegroup)
#
# permisson = int(permit )
# dacl.AddAccessAllowedAceEx(win32security.ACL_REVISION, 0, permisson, user1) #Die 0 in der Mitte bedeutet, dass nur der Ordner 3 diesen Ordner darstellt, die Unterdatei
# sd.SetSecurityDescriptorDacl(1, dacl, 0) # darf nicht notwendig sein
# win32security.SetFileSecurity(folder, win32security.DACL_SECURITY_INFORMATION, sd)
# außer Exception as e:
# print(e)
#Pythons OS-Modul-Steuerungsordner
#import os
#import Shutil
# try:
# os.mkdir(r'Z:50. Testordner
Das obige ist der detaillierte Inhalt vonPython zeigt Ordnerberechtigungsgruppen an und verwendet Betriebssystemmodule, um Ordner zu verwalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!