Aşağıdaki durumun üstesinden gelmeye çalışıyorum.'Kırık' izinlere sahip dosyaların sahiplenilmesi
Verilen bir NTFS birimindeki, saklanan bir dizin:
- dizin sahibi başkası (örneğin olmayan bir ayrıcalıklı kullanıcı) DACL erişime izin şekilde yapılandırılır
- dizin olarak ayarlanır dizin sistemi veya Yöneticiler
- DACL içermez insanların belirli bir grup aslında DACL'yi
Ama!
- ben altında çalıştırıyorum hesap, ben diğer araçları (takeown.exe) kullanarak yine
- yenisini yazıyorum olarak
- mevcut dacl göz ardı edilebilir yönetici haklarına (SeBackupPrivilege, SeSecurityPrivilege) vardır ben söz konusu dizine erişebilir.
(veya kısaca ben DACL'yi/sahibi düzeltmek için erişebilir) Aşağıdaki kod ile hiçbir sorun olmalı
:
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);
Ama SetAccessControl çağrı atar UnauthorizedAccessException. Sadece sahibi ayarlamak için değiştirdiğimde, aynı şey olur. Sadece DACL'yi ayarlamaya çalıştığımda aynı şey.
İşlem Gezgini'nde sonuç işlemlerini denetleyerek sorunun UAC olmadığını doğruladı ve Yöneticiler grubunun "Devre Dışı" yerine "Sahip" olarak ayarlandığını doğruladı. I 'un bunu yapması için gereken tüm haklara sahip olması gerekir (Yedekleme Yöneticileri, Yöneticiler karşısında karşıdan gelmemelidir, ancak bunu test için ekledim) - ancak erişim engelleniyor.
İlgili technet belgeleri: http://technet.microsoft.com/en-us/library/cc783530%28WS.10%29.aspx
- "Bir nesne sahibiyseniz, sahipliğini almak için izin dahil olmak üzere bu nesne üzerinde herhangi bir kullanıcı veya güvenlik grubunu daha izni verebilir."
- Sahipliği aşağıdaki şekillerde aktarılabilir:
- şimdiki sahibi o kullanıcı istediği zaman sahipliğini almak için izin başka bir kullanıcıya alın sahiplik izni verebilir. Kullanıcının aktarımı tamamlamak için sahipliğini alması gerekir. (Maalesef, sahip bu durumun sahipliğini yeniden atayamaz.)
- Bir yönetici, sahipliğini alabilir.
- Dosyaları ve dizinleri geri yükleme hakkına sahip olan bir kullanıcı, sahipliğini herhangi bir kullanıcıya veya gruba atayabilir.
- Dosyaların ve diğer nesnelerin sahipliğini alma yeteneği, bir yöneticinin sistemi koruma gereksiniminin, bir sahibin erişimi denetleme hakkının önceliği üzerinde olduğu başka bir durumdur. Normalde, bir nesnenin sahipliğini yalnızca mevcut sahibi size izin verdiyse verir. NTFS nesnelerinin sahipleri, diğer kullanıcının Sahip Olma izni izni vererek başka bir kullanıcının sahipliğini almasına izin verebilir; Active Directory nesnelerinin sahipleri başka bir kullanıcı Sahibi Yetkisini değiştirebilir. Bu ayrıcalığa sahip bir kullanıcı, mevcut sahibin izni olmadan bir nesnenin sahipliğini alabilir. Varsayılan olarak, ayrıcalık yalnızca yerleşik Yöneticiler grubuna atanır. Normalde, yöneticiler, mevcut sahipleri artık mevcut olmadığında, kaynakların sahipliğini alması ve yeniden ataması için kullanılır.
Burada nelerin eksik?
Tam olarak aynı sorundan. Buna bir çözüm bulmayı başardın mı? – Maverik
Ayrıca bkz. Http://stackoverflow.com/questions/5368825/taking-ownership-of-a-file-or-folder ve http://stackoverflow.com/questions/153087/getting-setting-file-owner-in -c-keskin –