En las unidades NTFS, el comportamiento solía ser que, cuando se movía un archivo, conservaba los permisos del archivo original, si el movimiento se realizaba a una carpeta en el mismo volumen.
Lo sé por experiencia y se puede ver aquí: https://support.microsoft.com/en-us/kb/310316
Pero hoy estaba tratando de mostrarle este comportamiento a un colega y simplemente no funcionó. Cada vez, el archivo simplemente tendría los permisos de la nueva carpeta asociada.
Lo he probado en 3 máquinas diferentes y ya no funciona así. ¿Cuándo cambió? Y no, la configuración de registro mencionada anteriormente no está configurada.
¿Alguna idea de cuándo cambió esto?
[Editar]
Solo un ejemplo para que quede más claro.
Supongamos que tengo estas carpetas en mi unidad C.
- C:\Compartido
- \Laboral
- \Final
Y tengo cuatro grupos: - Pasantes - Empleados - Gerentes - Staff (que tiene como miembros a los 3 anteriores).
Ahora, consideremos los permisos (simplificados).
- C:\Compartido
- no hereda
- Permite explícitamente el control total a los administradores
- Permite explícitamente modificar a administradores
- C:\Compartido\Trabajando
- Hereda de compartido
- Permite explícitamente modificar a empleados
- C:\Compartido\Final
- Hereda de compartido
- Permite explícitamente leer al personal
Ahora, supongamos que tengo un archivo en la carpeta de trabajo, llamado Bullshit.doc.
Anteriormente, si el archivo se movía (cortaba/pegaba) de la carpeta de trabajo a la carpeta final, conservaría los permisos originales, es decir, los gerentes y el personal podrían modificarlo y los pasantes no tendrían permisos.
Ahora, cuando intento mover Bullshit.doc, al moverlo, simplemente heredará los permisos de la carpeta Final, es decir, simplemente perdona que los pasantes no tengan acceso.
Mi pregunta es: esto cambió, ¿no? ¿O me estoy volviendo loco? Estoy 99% seguro de que funcionó tal como se describe en la base de conocimiento.
Sé que tuve problemas similares a este en el pasado, cuando los usuarios de nivel superior movían archivos entre carpetas (con diferentes conjuntos de permisos) y luego se quejaban de que los pasantes no podían leer los archivos. Tuve que explicar más de una vez que cortar/pegar no funcionaría, que necesitan copiar/pegar/eliminar. Seguramente estaba en Windows 2003, pero podría ser al menos 2008 R2.
[Edición 2] ¡¡¡Ahora con fotos!!!
Ok, entonces decidí intentar replicar. Con archivos reales y no simples ejemplos. Aquí lo tienes...
Entonces esta es la carpeta de origen. Vea todos los permisos implícitos y el único permiso explícito.
Ahora, creemos un archivo allí. Y verifique sus permisos.
Es hora de mover el archivo al destino. La carpeta original era sólo una carpeta temporal. Comprobemos los permisos de la carpeta de destino.
Después de mover la carpeta, verifiquemos sus permisos...
Hum... no es lo que esperaba. Incluso si fuera solo un archivo, por lo que recopilé en la base de conocimiento anterior, debería conservar los permisos. Y así es como recuerdo que se comportó.
Pero parece que cambió. Y no puedo encontrar una fuente oficial de cuándo sucedió.
Esto me hace dudar de mi cordura.
Respuesta1
NTFStodavía está evolucionando y cambiando. Creo que los cambios en el manejo de los permisos heredados aparecieron por primera vez en Vista y han evolucionado aún más en Windows 7. La configuración del registro en su enlace data de XP, por lo que yo sé, se ignora en las versiones más nuevas.
Para comprender lo que sucede cuando uno copia/mueve un archivo, primero debe comprender la diferencia entre permisos implícitos y explícitos.
Permisos implícitosse heredan de la carpeta principal, por lo que se almacenan con la carpeta principal. No se guardan con los niños y, por lo tanto, no se pueden mover ni copiar. En otras palabras, estos permisos sólo se aplican mientras el niño está en su carpeta principal, porque provienen del padre.
Permisos explícitosse entregan manualmente a la carpeta/archivo y se almacenan en Listas de control de acceso(ACL) como atributos NTFS. Se pueden considerar como pertenecientes al elemento y, en algunos casos, se pueden mover con él si el sistema de archivos de destino también es NTFS.
Algunas consecuencias de esta arquitectura NTFS son:
- Cuando una carpeta/archivo escopiado, se crean nuevas entradas de destino en las tablas NTFS de la carpeta de destino. Por lo tanto, el archivo copiado perderá todos los permisos explícitos y solo heredará de su nueva carpeta principal.
- Cuando un archivo/carpeta esmovido dentro del mismo volumen, se mueve su entrada NTFS, completa con todos los atributos y permisos contenidos. Por lo tanto, conservará todos los permisos explícitos, pero perderá sus antiguos permisos heredados y obtendrá en su lugar los de su nueva carpeta principal.
- Cuando una carpeta/archivo esmovido entre diferentes volúmenes, la mudanza se trata como una copia y no conservará ninguno de los permisos originales. La única diferencia con la copia es que la fuente se elimina cuando se completa la copia.
- Un archivo/carpeta que sólo tiene permisos heredados, no tiene permisos para mover. Un elemento de este tipo siempre heredará sus permisos de la carpeta principal.
- Una carpeta/archivo puede marcarse como permisos que no heredan de su padre. En ese caso, todos sus permisos se almacenan como ACL, es decir, permisos explícitos.
Esto va en contra de la mayoría de la documentación establecida, donde generalmente se afirma que cuando una carpeta/archivo se mueve dentro del mismo volumen, conservará sus permisos NTFS originales, tanto implícitos como explícitos. Esto tal vez alguna vez fue cierto en versiones anteriores de Windows, pero el autor y yo verificamos que ya no es el caso para los permisos implícitos en Windows 7 y Windows 10.
Para ver un ejemplo de reglas de movimiento documentadas erróneamente, consulte el artículo Cómo se manejan los permisos de archivos y carpetas al mover o copiar archivos en Windows 2008 R2 y Windows 7. Este artículo fue la fuente de mi discusión a continuación con el cartel, donde descubrimos juntos las verdaderas reglas que rigen la copia y el movimiento en NTFS.
Respuesta2
Hay un detalle importante adicional que agregar a la excelente y completa explicación de harrymc, y este detalle termina causando un comportamiento dividido, donde un movimiento de archivo a veces se comporta al estilo 2003 y otras veces al estilo 2008.
La forma en que NTFS se mueve dentro del volumen se actualizó en 2008/Vista y versiones posteriores no es una revisión completa, sino que simplemente agrega un segundo paso en segundo plano.
Paso 1)MFT se actualiza; el archivo se mueve y conserva los permisos originales
(Al igual que en 2003/XP y anteriores. Los movimientos en esos sistemas operativos se detienen en este paso).
Paso 2)Las ACL se actualizan para eliminar los permisos heredados de la carpeta principal original y aplicar los permisos heredados de la nueva carpeta principal.
(Este es el paso adicional que agregó 2008/Vista para que los archivos tengan los permisos de la carpeta de destino).
Sin embargo, si el usuario que está realizando el movimiento tieneModificarderechos y no tiene expresamente laCambiar permisosBien, el paso 2 fallará (pero no te lo diré) y terminarás con el comportamiento de la vieja escuela, por lo que parecerá que las cosas están nuevamente en 2003.
En este mismo escenario, si alguien copia el archivo y luego elimina el original (de la misma manera que el sistema de archivos maneja un movimiento entre volúmenes), todo funciona de la manera esperada.
No existe ninguna solución elegante: o les das a los usuariosCambiar permisosderechos asiPaso 2puede tener éxito, o cualquier archivo movido entre carpetas con diferentes permisos en el mismo volumen del servidor de archivos conservará sus permisos originales hasta que se vuelva a propagar por la fuerza.