icacls

Exibe ou modifica DACLs (listas de controle de acesso condicional) em arquivos especificados e aplica a DACLs armazenadas a arquivos nos diretórios especificados.

Observação

Esse comando substitui o comando cacls preterido.

Sintaxe

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

Parâmetros

Parâmetro Descrição
<filename> Especifica o arquivo do qual exibir ou modificar DACLs.
<diretório> Especifica o diretório do qual exibir ou modificar DACLs.
/t Executa a operação em todos os arquivos especificados no diretório atual e em seus subdiretórios.
/c Continua a operação, apesar de quaisquer erros de arquivo. As mensagens de erro ainda serão exibidas.
/l Executa a operação em um link simbólico em vez de seu destino.
/q Suprime as mensagens de sucesso.
[/save <ACLfile> [/t] [/c] [/l] [/q]] Armazena DACLs para todos os arquivos correspondentes em um arquivo de ACL (lista de controle de acesso) para uso posterior com /restore.
[/setowner <username> [/t] [/c] [/l] [/q]] Altera o proprietário de todos os arquivos correspondentes para o usuário especificado.
[/findsid <sid> [/t] [/c] [/l] [/q]] Localiza todos os arquivos correspondentes que contêm uma DACL mencionando explicitamente o SID (identificador de segurança) especificado.
[/verify [/t] [/c] [/l] [/q]] Localiza todos os arquivos com ACLs que não são canônicas ou têm comprimentos inconsistentes com contagens de ACE (entrada de controle de acesso).
[/reset [/t] [/c] [/l] [/q]] Substitui ACLs por ACLs herdadas padrão para todos os arquivos correspondentes.
[/grant[:r] <sid>:<perm>[...]] Concede direitos de acesso de usuário especificados. As permissões substituem as permissões explícitas concedidas anteriormente.

Não adicionar o :r significa que as permissões são adicionadas a quaisquer permissões explícitas concedidas anteriormente.

[/deny <sid>:<perm>[...]] Nega explicitamente os direitos de acesso do usuário especificado. Uma ACE de negação explícita é adicionada para as permissões declaradas e as mesmas permissões em qualquer concessão explícita são removidas.
[/remove[:g | :d]] <sid>[...] [/t] [/c] [/l] [/q] Remove todas as ocorrências das SID especificada da DACL. Esse comando também pode usar:
  • :g - remove todas as ocorrências de direitos concedidos à SID especificada.
  • :d - remove todas as ocorrências de direitos negados à SID especificada.
[/setintegritylevel [(CI)(OI)] <Level>:<Policy>[...]] Adiciona explicitamente uma ACE de integridade a todos os arquivos correspondentes. O nível pode ser especificado como:
  • l - Baixo
  • m- Médio
  • h - Alto
As opções de herança para a ACE de integridade podem preceder o nível e são aplicadas somente a diretórios.
[/substitute <sidold><sidnew> [...]] Substitui uma SID existente (sidold) por uma nova SID (sidnew). Requer o uso com o parâmetro <directory>.
/restore <ACLfile> [/c] [/l] [/q] Aplica DACLs armazenadas de <ACLfile> a arquivos no diretório especificado. Requer o uso com o parâmetro <directory>.
/inheritancelevel: [e | d | r] Define o nível de herança, que pode ser:
  • e - habilita a herança
  • d - desabilita a herança e copia os ACEs
  • r - desabilita a herança e remove somente ACEs herdadas

Comentários

  • As SIDs podem estar no formato numérico ou de nome amigável. Se você usar um formato numérico, afixe o caractere curinga * no início da SID.

  • Esse comando preserva a ordem canônica das entradas de ACE como:

    • Negações explícitas

    • Concessões explícitas

    • Negações herdadas

    • Concessões herdadas

  • A opção <perm> é uma máscara de permissão que pode ser especificada em uma das seguintes formas:

    • Uma sequência de direitos simples (permissões básicas):

      • F - acesso completo

      • M - modificar o acesso

      • RX - acesso de leitura e execução

      • R - acesso somente leitura

      • W - acesso somente gravação

    • Uma lista separada por vírgulas entre parênteses de direitos específicos (permissões avançadas):

      • D - exclusão

      • RC - controle de leitura (permissões de leitura)

      • WDAC - gravar DAC (permissões de alteração)

      • WO - proprietário da gravação (assumir a propriedade)

      • S - sincronizar

      • AS - segurança do sistema de acesso

      • MA - máximo Permitido

      • GR - leitura genérica

      • GW - gravação genérica

      • GE - execução genérica

      • GA - todos genéricos

      • RD - ler dados/listar diretório

      • WD - gravar dados/adicionar arquivo

      • AD - acrescentar dados/adicionar subdiretório

      • REA - ler atributos estendidos

      • WEA - atributos estendidos de gravação

      • X - executar/percorrer

      • DC - excluir filho

      • RA - atributos de leitura

      • WA - atributos de gravação

    • Os direitos de herança podem preceder qualquer forma de <perm>:

      • (I) - herança. ACE herdada do contêiner pai.

      • (OI) - herança de objeto. Os objetos nesse contêiner herdarão essa ACE. Aplica-se apenas a diretórios.

      • (CI) - herança de contêiner. Os contêineres nesse contêiner pai herdarão essa ACE. Aplica-se apenas a diretórios.

      • (IO) - somente herança. ACE herdada do contêiner pai, mas não se aplica ao objeto em si. Aplica-se apenas a diretórios.

      • (NP) - não propagar herança. ACE herdada por contêineres e objetos do contêiner pai, mas que não se propaga para contêineres aninhados. Aplica-se apenas a diretórios.

Exemplos

Para salvar as DACLs de todos os arquivos no diretório C:\Windows e seus subdiretórios no arquivo ACLFile, digite:

icacls c:\windows\* /save aclfile /t

Para restaurar os DACLs de cada arquivo no ACLFile que existe no diretório C:\Windows e seus subdiretórios, digite:

icacls c:\windows\ /restore aclfile

Para conceder ao User1 as permissões de exclusão e gravação de DAC para um arquivo chamado Test1, digite:

icacls test1 /grant User1:(d,wdac)

Para conceder ao usuário definido pela SID S-1-1-0 as permissões de exclusão e gravação de DAC para um arquivo chamado Test2, digite:

icacls test2 /grant *S-1-1-0:(d,wdac)