Assumir a propriedade de arquivos com permissões 'quebradas'

Estou tentando superar a seguinte situação.

Dado um diretório armazenado em um volume NTFS, em que:

O proprietário do diretório está definido para outra pessoa (um usuário não privilegiado, por exemplo)O diretório DACL está configurado para permitir o acesso a um grupo específico de pessoas que não inclui o sistema ou AdministradoresNa verdade, a DACL no diretório não concede acesso a ninguém para se apropriar ou alterar a DACL

(ou, resumindo, todos os administradores foram bloqueados para fora da pasta)

Mas!

A conta em que estou executando possui direitos administrativos (SeBackupPrivilege, SeSecurityPrivilege)A DACL existente pode ser ignorada, pois estou escrevendo uma nova de qualquer maneiraUsando outras ferramentas (takeown.exe), posso obter acesso ao diretório em questão.

(ou, resumindo, tenho acesso para corrigir o DACL / proprietário)

Eu não deveria ter nenhum problema com o seguinte código:

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);

Mas oSetAccessControl lances de chamadaUnauthorizedAccessException. Quando eu o altero para ajustar apenas o proprietário, acontece a mesma coisa. Quando apenas tento ajustar a DACL, a mesma coisa.

Verifiquei que o problema não é o UAC verificando o processo resultante no Process Explorer e verifiquei se o grupo Administradores está definido como "Proprietário" em vez de "Desativado". Eudevemos tem todos os direitos necessários para fazer isso (os operadores de backup devem ser estranhos diante dos administradores, mas eu o adicionei para teste) - mas ele continua jogando o acesso negado.

Documentação relevante do technet:http://technet.microsoft.com/en-us/library/cc783530%28WS.10%29.aspx

"Se você possui um objeto, pode conceder a qualquer usuário ou grupo de segurança qualquer permissão para esse objeto, incluindo a permissão para se apropriar."A propriedade pode ser transferida das seguintes maneiras:O proprietário atual pode conceder a permissão Adquirir propriedade para outro usuário, permitindo que ele adquira a propriedade a qualquer momento. O usuário deve realmente assumir a propriedade para concluir a transferência.(Infelizmente, o proprietário não pode reatribuir propriedade nesta situação.)Um administrador pode se apropriar.Um usuário com o direito de usuário Restaurar arquivos e diretórios pode atribuir propriedade a qualquer usuário ou grupo.A capacidade de se apropriar de arquivos e outros objetos é outro caso em que a necessidade de um administrador de manter o sistema tem prioridade sobre o direito do proprietário de controlar o acesso. Normalmente, você pode se apropriar de um objeto apenas se o proprietário atual lhe der permissão. Os proprietários de objetos NTFS podem permitir que outro usuário se aproprie, concedendo ao outro usuário a permissão de posse de propriedade; os proprietários de objetos do Active Directory podem conceder a outro usuário a permissão Modificar Proprietário. Um usuário que tenha esse privilégio pode se apropriar de um objeto sem a permissão do proprietário atual. Por padrão, o privilégio é atribuído apenas ao grupo Administradores interno. Normalmente, é usado pelos administradores para assumir e reatribuir a propriedade dos recursos quando o proprietário atual não está mais disponível.

O que estou perdendo aqui?

questionAnswers(2)

yourAnswerToTheQuestion