Eu quero substituir as permissões de uma pasta. Primeiro eu fiz isso:
icacls folder /grant user:(oi)(ci)f
Depois, quero alterar as permissões e a herança para:
icacls folder /grant:r user:(oi)(io)rx
Depois disso, as permissões para o usuário ainda são (oi)(ci)f
.
Por que as permissões não são substituídas?
A substituição de permissões e herança por setacl funciona como esperado:
setacl -on folder -ot file -actn ace -ace
"n:user;p:read_ex;i:io,so;m:set;w:dacl"
obrigado pela sua resposta. Mas isso é por design? Ou isso é um bug?
Qual é a utilidade da opção ": r" se a única maneira de garantir a substituição de permissões (e herança) é essa?
icacls folder /remove user
icacls folder /grant user:(oi)(io)rx
Eu tenho testado como o "icacls / grant" funciona e descobri que o icacls escreve uma entrada para cada tipo de herança.
Tente isto:
md test
icacls test /inheritance:r
icacls test /grant user:f
icacls test /grant:r user:(oi)rx
icacls test /grant:r user:(ci)rx
icacls test /grant:r user:(oi)(ci)rx
icacls test /grant:r user:(ci)(oi)(io)rx
icacls test /grant:r user:(io)(oi)rx
icacls test /grant:r user:(io)(ci)rx
Então, para ver a ACL:
icacls test
O resultado é:
test PC\user:(F)
PC\user:(OI)(IO)(RX)
PC\user:(OI)(RX)
PC\user:(CI)(IO)(RX)
PC\user:(CI)(RX)
PC\user:(OI)(CI)(IO)(RX)
PC\user:(OI)(CI)(RX)
Descobri que icacls /grant:r
substitui as permissões apenas pelo mesmo tipo de herança. Em minha pergunta original:
md test
icacls test /inheritance:r
icacls test /grant user:(oi)(ci)f
icacls test /grant:r user:(oi)(io)rx
teste icacls dá a saída
test PC\user:(OI)(IO)(RX)
PC\user:(OI)(CI)(F)
E eu acho que a GUI mostra apenas (OI) (CI) (F) porque inclui (OI) (IO) (RX)
Estou faltando alguma coisa? Isso é um bug ou por design?