Elimine as permissões NTFS em arquivos de dados da instalação anterior do Windows

Elimine as permissões NTFS em arquivos de dados da instalação anterior do Windows

Recentemente fiz uma instalação limpa do Windows 10 em um novo SSD e restaurei meus arquivos de dados antigos na unidade. O problema é que, embora eu tenha dito ao programa de backup para NÃO restaurar as permissões, elas acabaram ficando confusas de qualquer maneira.

eu já executeitakeown /f c:\src /r /d Y

Tentei entrar nas propriedades do Explorer -> segurança, adicionei meu usuário com permissão "FULL CONTROL" à pasta e apliquei ao filho. O Windows funcionou por meia hora, supostamente fazendo isso, mas Atributos: "Somente leitura" AINDA estava preenchido com um quadrado.

Limpei o quadrado "Somente leitura", apliquei-o recursivamente, o Windows funcionou por mais 15 a 20 minutos... e o quadrado fscking AINDA está preenchido.

Acho que preciso usar o ICACLS... mas tenho medo de fazer, sem orientação. Literalmente, todas as vezes que usei ICACLS no passado para tentar consertar uma situação como essa, acabei piorando o problema. Eu entendo perfeitamente as permissões e propriedade do estilo Unix, mas as permissões NTFS me derrotaram todas as vezes que cometi o erro de me envolver com elas.

No passado, usei minha solução alternativa tradicional para corrigir isso por meio de força bruta: inicializar no Linux, copiar recursivamente o diretório (salvando carimbos de data e hora) para um volume FAT32, inicializar novamente no Windows, excluir o diretório original do volume NTFS e copie-o de volta do volume FAT32 com as permissões NTFS limpas. Não posso fazer isso agora... o diretório contém muitos arquivos de 4 GB ou mais.

Então... como posso conseguir algo comparável (presumivelmente, usando ICACLS)?

Solução:

Com base na resposta abaixo, aqui está o que funcionou.

icacls c:\src /reset /T /L /Q

takeown /f c:\src /r /d Y(Eu executei novamente o takeown depois do icacls, só para garantir)

attrib -r -h -s c:\src /s /d

Acontece que, conformeEsta resposta, este é apenas o caso do Windows Explorer ter um design de interface de usuário extraordinariamente ruim. Simplificando, o Windows NUNCA informará que o conteúdo de uma pasta "não é somente leitura". Você pode usar a caixa de seleção para tentar limpar ou definir o status somente leitura dos arquivos contidos na pasta, mas o estado da caixa de seleção por si só não indica nada significativo sobre seu estado atual.

Aparentemente, o raciocínio da Microsoft é que cada pasta do Explorer contém um arquivo de sistema oculto que, da perspectiva do usuário, é somente leitura (e se o arquivo não estiver lá, o Explorer finge que existe). Portanto, cada pasta contém pelo menos um arquivo somente leitura, mesmo que nenhum arquivo colocado ali deliberadamente pelo usuário seja somente leitura. Suspirar.

De qualquer forma, meu problema já foi resolvido. Gradle e Android Studio são capazes de criar os arquivos sem morrer devido a um erro de permissão, portanto, redefinir as ACLs, assumir a propriedade e limpar os sinalizadores somente leitura e do sistema (se eles estivessem lá) resolveram o problema.

Responder1

"Atributos: [✔] Somente leitura" não é um sinalizador de permissão NTFS para começar. É um conjunto completamente separado de sinalizadores por arquivo – geralmente conhecido como "atributos do MS-DOS". (Compare o bate-papo do Linux.)

Este atributo, junto com "Oculto" e "Sistema" e "Arquivo", na verdade se origina no sistema de arquivos DOS FAT, então você não se livrará deles copiando arquivos para um volume FAT32 e vice-versa.

Para removê-los recursivamente,

  1. Você deve ter a permissão "Gravar atributos" para esses arquivos e pastas.

  2. attrib -r -h -s c:\src /s /d


Esses atributos podem ser acessados ​​no Linux como system.ntfs_attrib_bexattr, por exemplo:

setfattr -n system.ntfs_attrib_be -h -v 0x00000020 <filename>

informação relacionada