Wie der Titel der Frage vorschlagen könnte, würde ich sehr gerne wissen, wie die ntfs Berechtigungen der angegebenen Datei oder Ordner (Hinweis: das sind diejenigen, die Sie in der Registerkarte "Sicherheit"). Grundsätzlich brauche ich einen Pfad zu einer Datei oder einem Verzeichnis (auf einer lokalen Maschine oder vorzugsweise auf einer Freigabe auf einem entfernten Rechner) und erhalte die Liste der Benutzer/Gruppen und die entsprechenden Berechtigungen für diese Datei/diesen Ordner . Letztendlich wird die Anwendung einen Verzeichnisbaum durchqueren, Berechtigungen für jedes Objekt lesen und sie entsprechend verarbeiten.Überprüfen von Ordner/Datei ntfs Berechtigungen mit Python
Nun, ich von einer Reihe von Möglichkeiten denken können, das zu tun:
- Parse cacls.exe Ausgang - leicht gemacht, aber, es sei denn, im etwas fehlt, cacls.exe gibt nur die Berechtigungen in der Form von R | W | C | F (lesen/schreiben/ändern/voll), was ungenügend ist (Ich brauche die Berechtigungen wie "Ordnerinhalt auflisten", erweiterte Berechtigungen)
- xcacls.exe oder xcacls.vbs Ausgabe - ja, sie geben mir alle Berechtigungen, die ich brauche, aber sie arbeiten schrecklich langsam, es dauert xcacls.vbs über eine Sekunde, um Berechtigungen für eine lokale Systemdatei zu erhalten. Eine solche Geschwindigkeit ist nicht akzeptabel
- win32security (es umschlingt winapi, nicht wahr?) - Ich bin sicher, kann es so gehandhabt werden, aber ich möchte lieber das Rad nicht neu erfinden
Gibt es etwas, was ich bin hier fehlt?
Ich denke, win32security ist was du willst. Es ist in der Tat ein Wrapper um die Windows API. Sind Sie besorgt, dass es zu niedrig ist? –
Nun, wenn es der einzige Weg ist, den ich mit win32security machen könnte, aber das wäre so, als würde ich meine eigenen cabls rollen, deshalb habe ich es als das Rad neu erfinden bezeichnet. – shylent
Nun, vor allem tut cacls nicht alles, was die Win API tut (einschließlich, anscheinend, was Sie tun wollen). Zweitens wird das Aufrufen der API (selbst durch Bindungen) wahrscheinlich viel schneller sein, als wenn sie auf ein anderes Programm verteilt wird und die Ausgabe analysiert. –