Permisos y atributos de archivos de Windows

15

Estoy algo confundido sobre todo el esquema de seguridad de archivos de Windows. Vengo de un fondo de Unix, por lo que no entiendo completamente la relación entre los permisos de archivo / configuración de seguridad y los atributos; específicamente de solo lectura, que puede tener un archivo.

Por ejemplo, si inicio sesión como administrador en mi casilla y tengo un archivo que permite el control total para los administradores, pero tiene el atributo de solo lectura establecido, ¿eso significa que no puedo escribir en ese archivo? ¿Hay alguna forma además de eliminar el atributo de solo lectura sobre el que puedo escribir en archivos sobre los que supuestamente tengo control total? Si no, ¿cuál es la ventaja de tener control total si realmente no lo tiene?

prelic
fuente
1
Fantástica pregunta
Jim B
Los atributos de archivo de Windows son análogos a los indicadores de archivo de Unix
Chris S
He editado esto para que sea más genérico, ya que estos principios se aplican a todas las versiones modernas de Windows, no solo a Server 2003.
MDMarra
En realidad, es posible ser diferente en 2012 en adelante
Jim B

Respuestas:

16

Los permisos de archivo dictan qué acceso tiene a un archivo, tal como suena. El control total le permite crear, eliminar, agregar, cambiar permisos, cambiar atributos, etc.

Los archivos y las carpetas pueden tener atributos adicionales, al igual que los archivos en la mayoría de los sistemas de archivos * nix. "Oculto" viene a la mente como un ejemplo de esto en ambas plataformas.

En Windows, algunos de los atributos adicionales incluyen sistema, solo lectura, archivo, cifrado y comprimido. Cuando tienes control total (o modificas) tienes la capacidad de cambiar estos atributos, pero como has descubierto, un archivo de solo lectura es de solo lectura, incluso para alguien con control total. Si bien el control total le brinda la capacidad de cambiar los atributos de un archivo, no los anula automáticamente, al igual lsque no muestra al usuario raíz un archivo oculto por defecto en * nix.

MDMarra
fuente
No existe un archivo NTFS "oculto" que utilice un atributo. Los archivos se pueden ocultar usando transmisiones. NTFS admite cualquier atributo requerido por cualquier aplicación que utilice el campo de atributos extendidos ($ EA), por lo que puede almacenar permisos de archivos Unix en un sistema de archivos NTFS
Jim B
66
No dije que "oculto" es una función de NTFS en cualquier lugar, pero "oculto" es sin duda un atributo que puede establecer en un archivo o carpeta. Realmente no tengo idea de cuál es el punto que estás tratando de hacer.
MDMarra
¿Qué es este atributo oculto en Unix?
Edward Thomson
Oculto fue posiblemente un mal ejemplo, pero ilustró mi punto. No hay un atributo "oculto" per se, solo archivos que tienen el prefijo de un punto. Los atributos del archivo de Windows en cuestión son en realidad más parecidos a algo parecido a las marcas de archivo en Unix: freebsd.org/cgi/man.cgi?query=chflags&sektion=1 .
MDMarra
4

Un permiso es un control de seguridad. Se aplica un atributo independientemente del principal de seguridad que intente la operación.

Hay muchos más atributos de los que ve en el símbolo del sistema. Estos incluyen si el archivo es un enlace, encriptado, directorio (un tipo de archivo) e integridad (bajo, medio o alto).

Constantes de atributos de archivo
http://msdn.microsoft.com/en-us/library/windows/desktop/gg258117%28v=vs.85%29.aspx

FILE_ATTRIBUTE_ARCHIVE 32 (0x20)

Un archivo o directorio que es un archivo o directorio de archivo. Las aplicaciones suelen usar este atributo para marcar archivos para copia de seguridad o eliminación.

FILE_ATTRIBUTE_COMPRESSED 2048 (0x800)

Un archivo o directorio que está comprimido. Para un archivo, todos los datos en el archivo están comprimidos. Para un directorio, la compresión es el valor predeterminado para los archivos y subdirectorios recién creados.

FILE_ATTRIBUTE_DEVICE 64 (0x40)

Este valor está reservado para uso del sistema.

FILE_ATTRIBUTE_DIRECTORY 16 (0x10)

El identificador que identifica un directorio.

FILE_ATTRIBUTE_ENCRYPTED 16384 (0x4000)

Un archivo o directorio que está encriptado. Para un archivo, todas las secuencias de datos en el archivo están encriptadas. Para un directorio, el cifrado es el valor predeterminado para los archivos y subdirectorios recién creados.

FILE_ATTRIBUTE_HIDDEN2 (0x2) El archivo o directorio está oculto. No está incluido en un listado de directorio ordinario.

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768 (0x8000)

El flujo de datos del directorio o del usuario está configurado con integridad (solo se admite en volúmenes ReFS). No está incluido en un listado de directorio ordinario. La configuración de integridad persiste con el archivo si se renombra. Si se copia un archivo, el archivo de destino tendrá la integridad establecida si el archivo de origen o el directorio de destino tienen la integridad establecida.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: este indicador no es compatible hasta Windows Server 2012.

FILE_ATTRIBUTE_NORMAL 128 (0x80)

Un archivo que no tiene otros atributos establecidos. Este atributo es válido solo cuando se usa solo.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192 (0x2000)

El servicio de indexación de contenido no debe indexar el archivo o directorio.

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072 (0x20000)

La secuencia de datos de usuario no debe ser leída por el escáner de integridad de datos de fondo (depurador AKA). Cuando se establece en un directorio, solo proporciona herencia. Este indicador solo es compatible con espacios de almacenamiento y volúmenes ReFS. No está incluido en un listado de directorio ordinario.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: este indicador no es compatible hasta Windows 8 y Windows Server 2012.

FILE_ATTRIBUTE_OFFLINE 4096 (0x1000)

Los datos de un archivo no están disponibles de inmediato. Este atributo indica que los datos del archivo se mueven físicamente al almacenamiento fuera de línea. Remote Storage, que es el software de administración de almacenamiento jerárquico, utiliza este atributo. Las aplicaciones no deberían cambiar arbitrariamente este atributo.

FILE_ATTRIBUTE_READONLY 1 (0x1)

Un archivo que es de solo lectura. Las aplicaciones pueden leer el archivo, pero no pueden escribirlo ni eliminarlo. Este atributo no se respeta en los directorios. Para obtener más información, consulte No puede ver ni cambiar los atributos de solo lectura o del sistema de las carpetas en Windows Server 2003, en Windows XP, en Windows Vista o en Windows 7.

FILE_ATTRIBUTE_REPARSE_POINT 1024 (0x400)

Un archivo o directorio que tiene un punto de análisis asociado, o un archivo que es un enlace simbólico.

FILE_ATTRIBUTE_SPARSE_FILE 512 (0x200)

Un archivo que es un archivo disperso.

FILE_ATTRIBUTE_SYSTEM 4 (0x4)

Un archivo o directorio del que el sistema operativo usa una parte, o usa exclusivamente.

FILE_ATTRIBUTE_TEMPORARY 256 (0x100)

Un archivo que se está utilizando para almacenamiento temporal. Los sistemas de archivos evitan volver a escribir datos en el almacenamiento masivo si hay suficiente memoria caché disponible, porque normalmente, una aplicación elimina un archivo temporal después de cerrar el identificador. En ese escenario, el sistema puede evitar por completo escribir los datos. De lo contrario, los datos se escriben después de cerrar el identificador.

FILE_ATTRIBUTE_VIRTUAL 65536 (0x10000)

Este valor está reservado para uso del sistema.

Greg Askew
fuente
Esto no responde exactamente la pregunta. Se preguntaban por qué solo lectura estaba reemplazando el privilegio de "control total". Estos atributos se usan dentro de los programas.
Nathan C
1
También ha mezclado los atributos FAT-Style y NTFS; no es que haya una gran diferencia, pero hay momentos en los que es fundamental diferenciar.
Chris S
1
@Nathan C. Esto también responde exactamente la pregunta. Solo lectura no reemplaza el control total. Como dice la respuesta "Un atributo se aplica independientemente del principal de seguridad que intente la operación". Sin embargo, como señaló Chris S, los atributos heredados opcionales se mezclan con los atributos NTFS.
Jim B
-6

Proporcionaré una respuesta más larga, pero en general los atributos a los que se refiere son configuraciones heredadas en un archivo de los días del sistema de archivos FAT de DOS. FAT almacena estos atributos como parte de las entradas del directorio del sistema de archivos para un archivo. NTFS tiene su propio conjunto de atributos que encapsula los atributos más antiguos. Por defecto, cualquier usuario con acceso a archivos puede modificarlos y puede usarse para evitar sobrescrituras accidentales de datos.

Los permisos son específicos de NTFS y los cambios a esos permisos se pueden controlar por usuario (de modo que un usuario no puede cambiar de solo lectura a de escritura). Específicamente, si tuviera que mirar el comando attrib (que muestra las adiciones de atributos nuevos y heredados, como la integridad en versiones posteriores de Windows), es posible tener acceso de solo lectura establecido en permisos pero no tener solo lectura establecido en los atributos. También es interesante (si no importante) comprender que, debido a la abstracción, es técnicamente posible habilitar los atributos heredados (almacenados en el atributo NTFS $ standard_information) sin que se muestren necesariamente en la GUI normal.

Específicamente, los permisos de control total le permiten cambiar cualquier permiso NTFS. Establecer el atributo de solo lectura evita cambios hasta que se elimine.

Los atributos FAT tendrán prioridad sobre los atributos NTFS en Windows.

Jim B
fuente
3
in general attributes are legacy settings- ¿Tiene una fuente para esto, porque creo que esa declaración es incorrecta? Son complementarios a los permisos del sistema de archivos: no han sido reemplazados ni reemplazados por ellos. No hay nada en los permisos estándar que reemplace la funcionalidad de oculto, archivo o sistema.
MDMarra
1
Any user can modify them and can be used to prevent accidental overwrites of data.Además, esto es de hecho incorrecto. Solo los usuarios con "atributo de escritura" en un archivo o directorio pueden cambiar los atributos en ese objeto.
MDMarra
1
i.stack.imgur.com/2fhEr.png para aclaraciones.
Nathan C
2
Jim, tómate un minuto para ver esto desde el principio. Has ido tan lejos en este agujero de conejo "atributo NTFS" que has olvidado que eres el único que habla de los atributos NTFS. El OP claramente está hablando de atributos de archivo globales como "Oculto" y "Solo lectura". Menciona explícitamente "Solo lectura" en la pregunta. No puedo decir si estás tratando de ser pedante y fallando o si legítimamente has perdido este punto. Sí, lo sabemos, los atributos NTFS (extendidos) no son lo mismo que los atributos de archivo / carpeta global (estilo FAT). Nadie está reclamando eso.
MDMarra
3
Creo que claramente has perdido el espíritu y la intención de esta pregunta y estás tratando de adoptar una postura que es una parte incorrecta y una parte inútil. Usted ha demostrado claramente que tiene una idea de cómo funcionan los atributos NTFS, sin embargo, nadie estaba preguntando sobre ellos y nadie los utilizó en una respuesta en primer lugar. Si estaba tratando de mostrar su conocimiento de los atributos NTFS, lo ha hecho bien. El problema es que te has perdido completamente el punto de la pregunta.
MDMarra