Elimine los permisos NTFS en archivos de datos de la instalación anterior de Windows

Elimine los permisos NTFS en archivos de datos de la instalación anterior de Windows

Recientemente hice una instalación limpia de Windows 10 en un nuevo SSD y restauré mis archivos de datos antiguos en el disco. El problema es que, aunque le dije al programa de respaldo que NO restaurara los permisos, terminaron estropeándose de todos modos.

ya he ejecutadotakeown /f c:\src /r /d Y

Intenté acceder a las propiedades del Explorador -> seguridad, agregué mi usuario con permiso "CONTROL COMPLETO" a la carpeta y lo apliqué a los niños. Windows funcionó durante media hora supuestamente haciéndolo, pero Atributos: "Solo lectura" TODAVÍA estaba completado con un cuadrado.

Borré el cuadro "Solo lectura", lo apliqué recursivamente, Windows se ejecutó durante otros 15 a 20 minutos... y el cuadro de mierda TODAVÍA está completo.

Creo que necesito usar ICACLS... pero tengo miedo de hacerlo, sin orientación. Literalmente, cada vez que alguna vez usé ICACLS en el pasado para intentar solucionar una situación como esta, terminó empeorando el problema. Entiendo muy bien los permisos y la propiedad de estilo Unix, pero los permisos NTFS me han derrotado cada vez que he cometido el error de enredarme con ellos.

En el pasado, he usado mi solución tradicional para solucionar este problema mediante fuerza bruta: iniciar en Linux, copiar recursivamente el directorio (guardando marcas de tiempo) en un volumen FAT32, reiniciar en Windows, eliminar el directorio original del volumen NTFS. , luego cópielo nuevamente desde el volumen FAT32 con los permisos NTFS eliminados. No puedo hacer eso ahora... el directorio contiene demasiados archivos de 4 gigas o más.

Entonces... ¿cómo puedo lograr algo comparable (presumiblemente, usando ICACLS)?

Solución:

Según la respuesta a continuación, esto es lo que funcionó.

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

takeown /f c:\src /r /d Y(Volví a ejecutar Takeown después de icacls, por si acaso)

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

Resulta que, segúnesta respuesta, este es solo un caso en el que el Explorador de Windows tiene un diseño de interfaz de usuario extraordinariamente deficiente. En pocas palabras, Windows NUNCA informará que el contenido de una carpeta "no es de sólo lectura". Puede utilizar la casilla de verificación para intentar borrar o establecer el estado de solo lectura de los archivos contenidos en la carpeta, pero el estado de la casilla de verificación en sí no indica nada significativo sobre su estado actual.

Aparentemente, el razonamiento de Microsoft es que cada carpeta del Explorador contiene un archivo de sistema oculto que, desde la perspectiva de un usuario, es de sólo lectura (y si el archivo no está allí, el Explorador finge que sí). Por lo tanto, cada carpeta contiene al menos un archivo de solo lectura, incluso si ningún archivo colocado allí deliberadamente por el usuario es de solo lectura. Suspiro.

De todos modos, mi problema ya está solucionado. Gradle y Android Studio pueden compilar los archivos sin morir debido a un error de permisos, por lo que restablecer las ACL, tomar posesión y borrar los indicadores de solo lectura y del sistema (si es que estaban allí) resolvió el problema.

Respuesta1

Para empezar, "Atributos: [✔] Sólo lectura" no es un indicador de permiso NTFS. Es un conjunto completamente separado de indicadores por archivo, a menudo conocidos como "atributos de MS-DOS". (Compare el chat de Linux).

Este atributo, junto con "Oculto", "Sistema" y "Archivo", en realidad se origina en el sistema de archivos FAT de DOS, por lo que no podrá deshacerse de ellos copiando archivos a un volumen FAT32 y viceversa.

Para eliminarlos de forma recursiva,

  1. Debe tener el permiso "Escribir atributos" para esos archivos y carpetas.

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


Se puede acceder a estos atributos en Linux como system.ntfs_attrib_bexattr, por ejemplo:

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

información relacionada