Como substituir permissões e tudo dentro com icacls no Windows Server 2012?

15

Usando o Windows Server 2012 R2 e o Windows Server 2008 R2.

Eu tenho uma pasta chamada C:\temp\test e desejo conceder acesso a SYSTEM e a um usuário e a todos os arquivos e subdiretórios, além de remover qualquer outra coisa. Eu tentei este comando, mas todas as permissões existentes permanecem:

As permissões existentes são:

Access : NT AUTHORITY\SYSTEM Allow  FullControl
         BUILTIN\Administrators Allow  FullControl
         BUILTIN\Users Allow  ReadAndExecute, Synchronize
         BUILTIN\Users Allow  AppendData
         BUILTIN\Users Allow  CreateFiles
         CREATOR OWNER Allow  268435456

Desejo remover todas as ACLs, exceto SYSTEM , e adicionar <DOMAIN>\<USER>

Eu tentei este comando:

icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t

processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files

Quando olho as permissões depois, o <DOMAIN>\<USER> tem as permissões corretas, mas todas as outras permanecem. Eu pensei que /grant:r substituiu todas as permissões? Você sabe qual comando eu preciso executar para remover todas as outras permissões?

    
por Mark Allison 25.02.2014 / 12:04

2 respostas

16

Como mencionado, você também precisa usar a opção /inheritance:r para remover permissões herdadas.

/grant:r apenas remove permissões explícitas.

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /T

Para conceder também SYSTEM :

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /grant:r SYSTEM:(OI)(CI)F /T
    
por 25.02.2014 / 16:11
7

O parâmetro /grant:r não funcionou para mim. Eu tive que usar /reset para reverter permissões somente para inherintance e, em seguida, remover as permissões herdadas. Não se esqueça de alterar os subdiretórios com /t flag.

    
por 15.09.2014 / 11:57