Übernehmen des Besitzes von Dateien mit 'broken' - Berechtigungen

Ich versuche, zu überwinden, die folgende situation.

Einem gegebenen Verzeichnis gespeichert auf einem NTFS-volume, wo:

  1. Das Verzeichnis Eigentümer festgelegt ist, jemand anderes (ein nicht-privilegierter Benutzer z.B.)
  2. Der Verzeichnis-ACL konfiguriert ist, um Zugriff zu einer bestimmten Gruppe von Menschen, die nicht das system oder Administratoren
  3. Der DACL für das Verzeichnis tatsächlich gewährt keinen Zugang zu entweder den Besitz übernehmen oder ändern der DACL

(oder, kurz gesagt, alle Administratoren gesperrt wurden, aus dem Ordner)

Aber!

  1. Das Konto läuft bei mir unter administrative Rechte besitzt (SeBackupPrivilege, SeSecurityPrivilege)
  2. Der vorhandenen DACL kann ignoriert werden, Schreibe ich einen neuen sowieso
  3. Mit anderen tools (takeown.exe), bekomme ich Zugriff auf das Verzeichnis, in Frage.

(oder in kurz, ich habe Zugang zum fixieren der DACL/Eigentümer)

Sollte ich kein problem haben, mit dem folgenden code:

WindowsIdentity privilegedUser = System.Security.Principal.WindowsIdentity.GetCurrent();

//I cannot use File.GetAccessControl() as I get access denied
//(working as intended! I have no access to read the ACL!)
//so I have to write a new ACL:
FileSecurity acl = new FileSecurity();
acl.SetOwner(admin.User);
acl.AddAccessRule(new FileSystemAccessRule(privilegedUser.User, FileSystemRights.FullControl, AccessControlType.Allow));

File.SetAccessControl("c:\\path\\to\\broken", acl);

Aber, die SetAccessControl Anruf wirft UnauthorizedAccessException. Wenn ich es ändern, nur justieren Sie den Besitzer, das gleiche passiert. Wenn ich nur versuchen Sie die DACL, die gleiche Sache.

Ich habe festgestellt, dass das Problem nicht die UAC durch die überprüfung der resultierenden Prozess im Process Explorer, und verifiziert, dass die Administratoren-Gruppe auf "Besitzer" statt "Deaktiviert." Ich sollte haben alle notwendigen Rechte, dies zu tun (Sicherungs-Operatoren sein sollte Fremdwasser in das Gesicht von Administratoren, aber ich habe es zum testen) - aber es hält nur werfen Zugriff verweigert.

Relevanten technet-Dokumentation: http://technet.microsoft.com/en-us/library/cc783530%28WS.10%29.aspx

  • "Wenn Sie ein Objekt, die Sie gewähren können, alle Benutzer oder die Sicherheit der Gruppe jeder die Berechtigung für dieses Objekt, einschließlich der Genehmigung in Besitz zu nehmen."
  • Eigentum übertragen werden kann, haben Sie folgende Möglichkeiten:
    • Der aktuelle Besitzer gewähren kann, die Take ownership-Berechtigung an einen anderen Benutzer, so dass Benutzer in Besitz zu nehmen und zu jeder Zeit. Der Benutzer muss auch tatsächlich in Besitz nehmen zu übertragen. (Leider ist der Besitzer nicht zuweisen Besitz in dieser situation.)
    • Ein administrator kann den Besitz übernehmen.
    • Ein Benutzer die Dateien und Verzeichnisse user-rechten kann die Inhaberschaft an alle Benutzer oder Gruppe.
  • Die Möglichkeit zum übernehmen des Besitzes von Dateien und anderen Objekten ist ein weiterer Fall, wo ein administrator muss zur Wartung des Systems Vorrang vor einem Eigentümer das Recht auf Zugangskontrolle. Normalerweise können Sie ein Objekt in Besitz nehmen nur zu, wenn seine aktuelle Besitzer gibt Ihnen die Erlaubnis, dies zu tun. Besitzer von NTFS-Objekte können zulassen, dass ein anderer Benutzer den Besitz übernehmen, die durch die Gewährung der andere Benutzer die Take Ownership-Berechtigung; Besitzer der Active Directory-Objekte können erteilen Sie einem anderen Benutzer Ändern Eigentümer Erlaubnis. Ein Benutzer mit diesem Privileg können ein Objekt in Besitz nehmen, ohne den aktuellen Besitzer um Erlaubnis Fragen. Standardmäßig wird die Berechtigung zugewiesen wird, nur um der integrierten Gruppe "Administratoren". Es ist in der Regel von Administratoren verwendet, um zu nehmen, und weisen Sie Eigentum an Ressourcen, wenn Ihre aktuelle Besitzer ist nicht mehr verfügbar.

Was vermisse ich hier?

Schreibe einen Kommentar