Opções ICACLS: Por que é / t necessário com (OI) (OC)?

3

Se eu usar o ICACLS.exe para definir permissões em uma pasta com um comando como

icacls "C:\Some\Directory" /grant "somedomain\someUser:(OI)(CI)F" /t

por que a opção / t é necessária? Não é o caso que (OI) (CI) fará com que as permissões sejam herdadas para todos os objetos dentro da árvore C:\Some\Directory ?

Para ser um pouco mais específico, suponha que no meu exemplo acima eu tenha um diretório C:\Some\Directory\Tree . Suponha que este diretório tenha no permissões explícitas definidas. Adicionando a permissão explícita "somedomain \ someUser: (OI) (CI) F" para aquele diretório não realizaria nada, desde que já é herdado. Os icacls fazem isso mesmo? (Edit: sim, se você esperar o suficiente!) Então, se eu sei que uma árvore de diretórios não tem permissões explícitas, eu realmente não preciso da opção / t (que desperdiça uma enorme quantidade de tempo em uma árvore de diretórios de 8TB com centenas de milhões de arquivos ...)

    
por David I. McIntosh 13.07.2017 / 22:44

2 respostas

0

Algumas experiências em uma árvore de diretórios triviais mostram que:

1) O (OI) (CI) realmente faz com que as permissões sejam herdadas - como ACEs herdadas na DACL, é claro, não ACE explícitas - para todos os sub-objetos (dado que a herança não foi desabilitada no sub -objeto), como seria de esperar.

2) A opção / t faz com que os icacls percorram a árvore e adicionem exatamente a mesma permissão a cada subdiretório como uma permissão explícita .

O resultado é que, se olharmos para as permissões de segurança em um subdiretório, você verá duas entradas idênticas , sendo uma a permissão herdada e a outra a configuração de permissão explícita do diretório (a menos que herança foi desabilitada no subdiretório ou em algum outro diretório interveniente).

Se alguém quer isso ou não é outra questão, mas provavelmente não. Ter a permissão especificada duas vezes não é particularmente útil, a menos que haja algumas alterações futuras que você precisa proteger.

Em um sistema de arquivos massivo, isso pode levar um tempo loooooooong para ser concluído.

O fato de a documentação informar "se estão ou não configurados para herdar permissões" talvez seja para alertá-lo para:

1) copiar como permissões explícitas para todos os subdiretórios pode não ser necessário se a permissão contiver (OI)(CI)

mas

2) se um subdiretório for configurado para não herdar permissões, isso realmente realiza algo significativo: em tal diretório, a permissão não seria herdada do pai (ou seja, a (OI)(CI) herança é suprimida), mas ainda assim seria estar lá em virtude de ser adicionado como uma permissão explícita.

    
por 15.07.2017 / 04:56
2

Não é o caso que (OI) (CI) fará com que as permissões sejam herdadas?

Não. Isso é explicado pela descrição de /t :

Traverse all subfolders to match files/directories. This will apply permission changes to all subfolders whether or not they are set to inherit permissions from the parent.

Fonte icacls

    
por 13.07.2017 / 22:53