Heim >Backend-Entwicklung >Python-Tutorial >Python zeigt Ordnerberechtigungsgruppen an und verwendet Betriebssystemmodule, um Ordner zu verwalten

Python zeigt Ordnerberechtigungsgruppen an und verwendet Betriebssystemmodule, um Ordner zu verwalten

高洛峰
高洛峰Original
2017-03-27 16:26:312405Durchsuche

@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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn