stringtranslate.com

Permisos del sistema de archivos

La mayoría de los sistemas de archivos incluyen atributos de archivos y directorios que controlan la capacidad de los usuarios para leer, modificar, navegar y ejecutar el contenido del sistema de archivos. En algunos casos, las opciones o funciones del menú pueden hacerse visibles u ocultas según el nivel de permiso del usuario; este tipo de interfaz de usuario se conoce como controlada por permisos .

Hay dos tipos de permisos ampliamente disponibles: los permisos del sistema de archivos POSIX y las listas de control de acceso (ACL), que son capaces de realizar un control más específico.

Variaciones del sistema de archivos

El sistema de archivos de la tabla de asignación de archivos original tiene un atributo de solo lectura para todos los usuarios por archivo.

NTFS implementado en Microsoft Windows NT y sus derivados, utiliza ACL [1] para proporcionar un conjunto complejo de permisos.

OpenVMS utiliza un esquema de permisos similar al de Unix. Hay cuatro categorías (sistema, propietario, grupo y mundo) y cuatro tipos de permisos de acceso (lectura, escritura, ejecución y eliminación). Las categorías no están separadas entre sí: Mundo incluye Grupo, que a su vez incluye Propietario. La categoría Sistema incluye de forma independiente a los usuarios del sistema. [2]

HFS y su sucesor HFS+ , tal como se implementaron en los sistemas operativos Mac OS clásicos , no admiten permisos.

macOS utiliza permisos compatibles con POSIX y los admite tanto en HFS+ como en APFS . A partir de la versión 10.4 ("Tiger"), también admite el uso de ACL de NFSv4 además de permisos compatibles con POSIX. El Manual de administración de servicios de archivos de Apple Mac OS X Server versión 10.4+ recomienda utilizar solo permisos tradicionales de Unix si es posible. macOS también sigue siendo compatible con el atributo "Protegido" del Mac OS clásico.

La compatibilidad de ACL de Solaris depende del sistema de archivos que se utilice; el sistema de archivos UFS más antiguo admite ACL POSIX.1e, mientras que ZFS solo admite ACL NFSv4. [3]

Linux admite ext2 , ext3 , ext4 , Btrfs y otros sistemas de archivos, muchos de los cuales incluyen listas de control de acceso (ACL) POSIX.1e. Existe compatibilidad experimental con listas de control de acceso (ACL) NFSv4 para sistemas de archivos ext3 [4] y ext4.

FreeBSD admite ACL POSIX.1e en UFS y ACL NFSv4 en UFS y ZFS. [5] [6]

IBM z/OS implementa la seguridad de archivos utilizando RACF (Resource Access Control Facility) [7] [ enlace muerto permanente ]

El sistema de archivos de AmigaOS, AmigaDOS, admite un sistema de permisos relativamente avanzado para un sistema operativo de un solo usuario. En AmigaOS 1.x, los archivos tenían permisos/indicadores de archivado, lectura, escritura, ejecución y eliminación (conocidos colectivamente como ARWED). En AmigaOS 2.x y versiones posteriores, se agregaron permisos/indicadores adicionales de retención, secuencias de comandos y puros.

El sistema operativo OpenHarmony junto con su ecosistema del lado del cliente en Oniro OS y HarmonyOS con versiones HarmonyOS NEXT y también el sistema operativo de servidor openEuler basado en Linux utiliza de forma nativa su Harmony Distributed File System (HMDFS) que admite el administrador de token de acceso ( control de acceso basado en roles ) y la capacidad de API Core File Kit con administración de permisos granulares con excepción de openEuler. [8] [ verificación fallida ]

Permisos POSIX

Los permisos en sistemas de archivos tipo Unix están definidos en el estándar POSIX.1-2017 [9] , que utiliza tres ámbitos o clases conocidos como propietario , grupo y otros . Cuando se crea un archivo, sus permisos están restringidos por la máscara de usuario del proceso que lo creó.

Clases

Los archivos y directorios son propiedad de un usuario. El propietario determina la clase de usuario del archivo . Se aplican distintos permisos al propietario.

A los archivos y directorios se les asigna un grupo , que define la clase de grupo del archivo. Se aplican distintos permisos a los miembros del grupo del archivo. El propietario puede ser miembro del grupo del archivo.

Los usuarios que no son propietarios ni miembros del grupo forman parte de la clase "otros" de un archivo . A los demás se les aplican permisos distintos.

Los permisos efectivos se determinan en función de la primera clase a la que pertenece el usuario en el orden de usuario, grupo y otros. Por ejemplo, el usuario que es el propietario del archivo tendrá los permisos asignados a la clase de usuario independientemente de los permisos asignados a la clase de grupo o a la clase otros.

Permisos

Los sistemas tipo Unix implementan tres permisos específicos que se aplican a cada clase:

El efecto de establecer los permisos en un directorio, en lugar de en un archivo, es "uno de los problemas de permisos de archivos que más frecuentemente se malinterpretan". [10]

Cuando no se establece un permiso, se deniegan los derechos correspondientes. A diferencia de los sistemas basados ​​en ACL, los permisos en sistemas tipo Unix no se heredan. Los archivos creados dentro de un directorio no necesariamente tienen los mismos permisos que ese directorio.

Cambiar el comportamiento de los permisos con setuid, setgid y bits fijos

Los sistemas tipo Unix suelen emplear tres modos adicionales. En realidad, son atributos, pero se los denomina permisos o modos. Estos modos especiales se aplican a un archivo o directorio en general, no a una clase, aunque en la notación simbólica (ver más abajo) el bit setuid se establece en la tríada para el usuario, el bit setgid se establece en la tríada para el grupo y el bit sticky se establece en la tríada para los demás.

Estos modos adicionales también se denominan bit setuid , bit setgid y bit sticky , debido a que cada uno ocupa solo un bit.

Notación de permisos tradicionales de Unix

Notación simbólica

Los permisos de Unix se representan en notación simbólica o en notación octal.

La forma más común, tal como la utiliza el comando ls -l, es la notación simbólica .

El primer carácter de la lspantalla indica el tipo de archivo y no está relacionado con los permisos. Los nueve caracteres restantes se encuentran en tres conjuntos, cada uno de los cuales representa una clase de permisos como tres caracteres. El primer conjunto representa la clase de usuario . El segundo conjunto representa la clase de grupo . El tercer conjunto representa la clase de otros .

Cada uno de los tres caracteres representa los permisos de lectura, escritura y ejecución:

Los siguientes son algunos ejemplos de notación simbólica:

En algunos sistemas de permisos, símbolos adicionales en la ls -lpantalla representan características de permisos adicionales:

Para representar los atributos setuid , setgid y sticky o text , se modifica el carácter ejecutable ( xo -). Aunque estos atributos afectan al archivo en general, no solo a los usuarios de una clase, el atributo setuid modifica el carácter ejecutable en la tríada para el usuario, el atributo setgid modifica el carácter ejecutable en la tríada para el grupo y el atributo sticky o text modifica el carácter ejecutable en la tríada para los demás. Para los atributos setuid o setgid, en la primera o segunda tríada, el xbecomes sy el -becomes S. Para el atributo sticky o text, en la tercera tríada, el xbecomes ty el -becomes T. A continuación, se incluye un ejemplo:

Notación numérica

Otro método para representar los permisos de Unix es una notación octal (base 8) como se muestra en stat -c %a. Esta notación consta de al menos tres dígitos. Cada uno de los tres dígitos más a la derecha representa un componente diferente de los permisos: propietario, grupo y otros. (Si hay un cuarto dígito, el dígito más a la izquierda (de orden superior) se refiere a tres atributos adicionales, el bit setuid , el bit setgid y el bit sticky ).

Cada uno de estos dígitos es la suma de los bits que lo componen en el sistema de numeración binario . Como resultado, los bits específicos se suman a la suma, tal como se representa mediante un número:

Estos valores nunca producen combinaciones ambiguas; cada suma representa un conjunto específico de permisos. En términos más técnicos, se trata de una representación octal de un campo de bits : cada bit hace referencia a un permiso independiente, y agrupar 3 bits a la vez en octal corresponde a agrupar estos permisos por usuario, grupo y otros.

Estos son los ejemplos de la sección de notación simbólica dados en notación octal:

Grupo privado de usuarios

Algunos sistemas se apartan del modelo POSIX tradicional de usuarios y grupos creando un nuevo grupo (un "grupo privado de usuarios") para cada usuario. Suponiendo que cada usuario es el único miembro de su grupo privado de usuarios, este esquema permite utilizar una máscara de usuario 002 sin permitir que otros usuarios escriban en archivos recién creados en directorios normales, ya que dichos archivos se asignan al grupo privado del usuario creador. Sin embargo, cuando se desea compartir archivos, el administrador puede crear un grupo que contenga los usuarios deseados, crear un directorio en el que el grupo pueda escribir y asignarlo al nuevo grupo y, lo más importante, hacer que el directorio sea setgid. Hacerlo setgid hará que los archivos creados en él se asignen al mismo grupo que el directorio y la máscara de usuario 002 (habilitada mediante el uso de grupos privados de usuarios) garantizará que otros miembros del grupo puedan escribir en esos archivos. [11] [12]

Véase también

Referencias

  1. ^ "Permisos de archivos y carpetas". Microsoft. 9 de diciembre de 2009.
  2. ^ "Documentación de OpenVMS". Archivado desde el original el 5 de marzo de 2012. Consultado el 6 de junio de 2009 .
  3. ^ "Guía de administración de Oracle Solaris ZFS" (PDF) . Septiembre de 2010.
  4. ^ "Listas de control de acceso (ACL) de NFSv4 nativas en Linux". Archivado desde el original el 12 de octubre de 2008. Consultado el 4 de mayo de 2010 .
  5. ^ "NFSv4_ACL – Wiki de FreeBSD".
  6. ^ "Guía del usuario de FreeNAS 9.1.1" (PDF) . 2013.
  7. ^ "Centro de conocimiento de IBM".
  8. ^ "Guía de desarrollo del sistema de archivos distribuido HarmonyOS". Substack . Blog LivingInHarmony. 13 de marzo de 2024 . Consultado el 13 de marzo de 2024 .
  9. ^ "Definiciones, 3.175 Bits de permisos de archivos". pubs.opengroup.org . 2018-07-22 . Consultado el 2023-06-24 .
  10. ^ Hatch, Bri. "Confusión de permisos de archivos en Linux, parte 2", "Hacking Linux Exposed", 24 de abril de 2003, consultado el 6 de julio de 2011.
  11. ^ Epstein, Brian. "El cómo y el por qué de los grupos privados de usuarios en Unix". security.ias.edu . Instituto de Estudios Avanzados de Seguridad de Redes. Archivado desde el original el 8 de agosto de 2014 . Consultado el 5 de agosto de 2014 .
  12. ^ "Guía del administrador del sistema de Red Hat Enterprise Linux 7, 4.3.4 Creación de directorios de grupo". Portal del cliente de Red Hat . Red Hat.

Enlaces externos