Quando eu removo um arquivo que é um hard link para outro arquivo, ele redefine as permissões no outro arquivo. Como posso evitar isso?
Passos para reproduzir:
- crie um diretório d
- defina algumas permissões específicas nele (com herança habilitada)
- adicionar um arquivo a em d
- mklink /H ba
- a e b devem ter permissões herdadas de d
- remover a ou b
- o arquivo restante não mantém as permissões de d
A exclusão de qualquer um dos objetos envia o nó do arquivo referenciado para a lixeira, o que retira as permissões herdadas.
Se essa foi a última ação para atualizar as permissões, então essa ACL removida continua a ser aplicada ao objeto restante (até que a ACL seja processada e reaplicada novamente). Veja a resposta aqui para mais detalhes: https://superuser.com/a/1597524/673426 .
Você pode evitar isso usando links simbólicos (sem
/H
) ou excluindo os objetos de uma forma que não os envie para a lixeira, como Shift+ Deleteou linha de comandoO oposto também é verdade. Excluir um hard link (sem enviá-lo para a lixeira) não atualiza a ACL do alvo, então você pode acabar com entradas de permissão "fantasmas". Não há uma maneira fácil de lidar com isso, então tenha cuidado ao criar hardlinks entre pastas com permissões diferentes