¿Por qué puedo escribir archivos en una carpeta de solo lectura?

39

He intentado esto en Windows 7 y Windows XP. Inicie el Explorador de Windows y cree una nueva carpeta en alguna ubicación temporal llamada (digamos) NonWriteable. Haga clic derecho en la carpeta y establezca las propiedades de la carpeta en Read-only.

Carpeta configurada para ser de solo lectura

Ahora abra la carpeta y cree un nuevo archivo .txt. Esto esta permitido. ¿Por qué? ¿Cómo se configura una carpeta para que no se pueda modificar nada dentro de ella?

Nota: si hago clic con el botón derecho en el archivo .txt y lo configuro para que Read-onlyel sistema evite correctamente las actualizaciones del archivo.

AlainD
fuente
3
Verifique las opciones avanzadas y denegue activamente los permisos de escritura. ¿Qué tipo de cuenta estás usando? Una cuenta administrativa siempre debe poder cambiar las cosas.
Seth
@Seth ¿Una cuenta administrativa siempre debe poder cambiar las cosas? ¿Qué pasa si uno está intentando acceder a una carpeta en una máquina diferente?
InterLinked
2
Windows parece nunca haber usado esta configuración para directorios. Si está dentro de una unidad compartida, encontrará que Linux no podrá crear, eliminar o renombrar archivos a menos que se borre solo lectura.
AFH
2
@Seth: buena llamada. Después de modificar los permisos avanzados en la Securitypestaña para denegar el acceso Create Files / Write Data, ahora no puedo crear nuevos archivos. Esto parece ser un error / limitación de Windows. Si llamo programáticamente a la GetFileAttributesAPI en la carpeta, el FILE_ATTRIBUTE_DIRECTORYatributo se establece ... pero no FILE_ATTRIBUTE_READONLY.
AlainD
2
Tenga en cuenta que a partir de Windows 7, el cuadro de diálogo se cambió Read-only (Only applies to files in this folder)para que quede más claro qué hace realmente esta opción. Hay una captura de pantalla del nuevo diálogo en esta respuesta .
ComicSansMS

Respuestas:

56

A diferencia del atributo de solo lectura para un archivo, Windows, componentes y accesorios de Windows y otros programas suelen ignorar el atributo de solo lectura para una carpeta. Por ejemplo, puede eliminar, cambiar el nombre y cambiar una carpeta con el atributo de solo lectura mediante el Explorador de Windows.

El Explorador de Windows solo usa los atributos de Solo lectura y Sistema para determinar si la carpeta es una carpeta especial, como una carpeta del sistema que Windows tiene su vista personalizada (por ejemplo, Mis documentos, Favoritos, Fuentes, Archivos de programa descargados) o una carpeta que personalizó utilizando la pestaña Personalizar del cuadro de diálogo Propiedades de la carpeta. Como resultado, el Explorador de Windows no le permite ver ni cambiar los atributos de solo lectura o del sistema de las carpetas. Cuando una carpeta tiene establecido el atributo de solo lectura, hace que Explorer solicite el Desktop.ini de esa carpeta para ver si es necesario establecer alguna configuración especial de carpeta.

Fuente: https://support.microsoft.com/en-gb/help/326549/you-cannot-view-or-change-the-read-only-or-the-system-attributes-of-fo

Este es un artículo antiguo pero sigue siendo cierto para todas las versiones de Windows.

Para evitar la creación de archivos en una carpeta, cambie los permisos utilizando la Securitypestaña en las propiedades de la carpeta. Haga clic en el Advancedbotón y agregue una regla para denegar el acceso Create Files / Write Data.

David Marshall
fuente
1
@AlainD Sí. Es un artículo antiguo pero aún se aplica a las versiones más nuevas de Windows. Volveré y ampliaré la respuesta más tarde.
David Marshall
1
Entonces, ¿el atributo "solo lectura" de una carpeta no tiene absolutamente nada que ver con que sea de solo lectura? ¿No es más que una falla de UX huuuuuge?
Pedro A
66
@Hamsteriffic Es un legado de un sistema de archivos FAT. FAT solía soportar solo unos pocos atributos de archivo, siendo RO uno de ellos. NTFS presenta un mecanismo ACL sofisticado para el control de acceso, por lo que los atributos FAT no tienen importancia cuando se emplea NTFS. Sin embargo, el diálogo particular en cuestión fue diseñado hace muchos años cuando FAT todavía prevalecía y nunca cambió desde entonces.
oakad
44
@Hamsteriffic Entonces, para resumir el comentario de Oakads: Sí.
Alexander Kosubek
2
@jrh Escribió uno en 2003 blogs.msdn.microsoft.com/oldnewthing/20030930-00/?p=42353
David Marshall