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, cambiar, navegar y ejecutar el contenido del sistema de archivos. En algunos casos, las opciones o funciones del menú pueden hacerse visibles u ocultarse según el nivel de permiso del usuario; Este tipo de interfaz de usuario se conoce como basada en permisos .

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

Variaciones del sistema de archivos

El sistema de archivos original de la tabla de asignación de archivos 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+ , implementados en los sistemas operativos Mac OS clásicos , no admiten permisos.

macOS utiliza permisos compatibles con POSIX. A partir de la versión 10.4 ("Tiger"), también admite el uso de ACL 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 sólo permisos tradicionales de Unix si es posible. macOS también sigue siendo compatible con el atributo "Protegido" del Mac OS clásico.

La compatibilidad con Solaris ACL 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 ACL POSIX.1e. Existe soporte experimental para 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]

El sistema de archivos 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/banderas de Archivar, Leer, Escribir, Ejecutar y Eliminar (conocidos colectivamente como ARWED). En AmigaOS 2.x y superiores, se agregaron permisos/indicadores Hold, Script y Pure adicionales.

El sistema operativo OpenHarmony junto con su ecosistema del lado del cliente en Oniro OS y HarmonyOS con HarmonyOS NEXT y también el sistema operativo de servidor openEuler basado en Linux utiliza de forma nativa su sistema de archivos distribuido Harmony (HMDFS) que admite la gestión de permisos del administrador de tokens de acceso con excepción de openEuler. [8]

permisos POSIX

Los permisos en sistemas de archivos tipo Unix se definen 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 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 permisos distintos al propietario.

A los archivos y directorios se les asigna un grupo , que define la clase de grupo del archivo . Se aplican permisos distintos 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 la clase otros de un archivo . Se aplican distintos permisos a otros.

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 luego otros. Por ejemplo, el usuario propietario del archivo tendrá los permisos otorgados a la clase de usuario independientemente de los permisos asignados a la clase de grupo o a otras clases.

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 más frecuentemente mal entendidos". [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 adhesivos

Los sistemas tipo Unix suelen emplear tres modos adicionales. En realidad, estos son atributos, pero se denominan permisos o modos. Estos modos especiales son para un archivo o directorio en general, no por 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 El bit pegajoso se establece en la tríada para los demás.

Estos modos adicionales también se conocen como bit setuid , bit setgid y bit pegajoso , debido a que cada uno de ellos 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 están 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 grupal . El tercer conjunto representa la clase de los demás .

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, los 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 adhesivo o de texto modifica el Carácter ejecutable en la tríada para otros. Para los atributos setuid o setgid, en la primera o segunda tríada, se xconvierte sy se -convierte S. Para el atributo adhesivo o de texto, en la tercera tríada, se xconvierte ty se -convierte T. Aquí hay un ejemplo:

Notación numérica

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

Cada uno de estos dígitos es la suma de los bits que lo componen en el sistema de numeración binario . Como resultado, 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. Más técnicamente, esta es una representación octal de un campo de bits : cada bit hace referencia a un permiso separado, 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 dada en notación octal:

Grupo privado de usuarios

Algunos sistemas se diferencian del modelo POSIX tradicional de usuarios y grupos al crear 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 umask de 002 sin permitir que otros usuarios escriban en archivos recién creados en directorios normales porque dichos archivos están asignados al grupo privado del usuario creador. Sin embargo, cuando es deseable compartir archivos, el administrador puede crear un grupo que contenga los usuarios deseados, crear un directorio de escritura grupal asignado al nuevo grupo y, lo más importante, configurar el directorio como gid. Hacerlo setgid hará que los archivos creados en él se asignen al mismo grupo que el directorio y la umask 002 (habilitada mediante el uso de grupos privados de usuarios) garantizará que otros miembros del grupo puedan escribir en esos archivos. [11] [12]

Ver también

Referencias

  1. ^ "Permisos de archivos y carpetas". Microsoft.
  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. ^ "ACL nativas de NFSv4 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". Subpila . Blog Vivir en armonía . Consultado el 13 de marzo de 2024 .
  9. ^ "Definiciones, 3,175 bits de permiso de archivo". pubs.opengroup.org . 2018-07-22 . Consultado el 24 de junio de 2023 .
  10. ^ Escotilla, Bri. "Confusión de permisos de archivos de 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". seguridad.ias.edu . Instituto de Seguridad de Redes de Estudios Avanzados . Consultado el 5 de agosto de 2014 .
  12. ^ "Guía del administrador del sistema Red Hat Enterprise Linux 7, 4.3.4 Creación de directorios de grupo". Portal del cliente de Red Hat . Sombrero rojo.

enlaces externos