GNU/Linux >> Tutoriales Linux >  >> Linux

Conceptos de permisos de archivos de Linux

Este artículo explora los conceptos básicos de los permisos de archivo de Linux®. Comienza con lo básico y continúa con temas más avanzados. También proporciona algunos ejemplos prácticos. Para obtener una introducción a los permisos de archivos y aprender a ver los permisos de archivos, consulte Comprobar los permisos de archivos de Linux con ls.

Acceso a archivos

En un entorno multiusuario como Linux, es importante controlar qué usuarios pueden modificar o eliminar varios archivos del sistema. Este control no es solo una precaución de seguridad necesaria, sino que previene accidentes catastróficos. Si un usuario solo puede afectar una cantidad mínima de archivos, hay menos posibilidades de que un comando mal escrito o un error tipográfico en una secuencia de comandos destruya un archivo esencial o publique información confidencial en un sitio web público.

Antes de explorar cómo Para administrar el acceso a archivos, primero debe comprender los conceptos de propiedad de archivos y permisos de archivos. Tenga en cuenta que la propiedad y los permisos también se aplican a los directorios porque los directorios son básicamente un tipo especial de archivo en lo que respecta al sistema de archivos. Aunque existen algunas diferencias para los directorios, los conceptos básicos son los mismos, por lo que la mayoría de los conceptos o comandos de permisos de archivo que se analizan en este artículo también se aplican a los directorios.

Conceptos básicos de propiedad

Cada archivo y directorio en un sistema de archivos Linux tiene un propietario. El propietario de un archivo puede asignar permisos para el archivo. Si el usuario mom123 posee el archivo lawdarts , necesitas permiso de mom123 jugar con lawdarts . Puede que le dé acceso, se lo niegue por completo o simplemente le permita mirar lawdarts sin llegar a jugar con él.

El usuario propietario de un archivo puede establecer o cambiar sus permisos, determinando quién (incluido incluso el propietario) puede leer el archivo, ejecutarlo, cambiarlo o eliminarlo. Es un privilegio simple, pero tiene un impacto de largo alcance.

Grupo de archivos

Si bien cada archivo tiene un usuario que es propietario y puede controlar sus permisos, cada archivo también pertenece a un grupo . Un grupo describe un conjunto de usuarios que comparten permisos de archivo que pueden ser diferentes a los del usuario típico. Un usuario puede pertenecer a más de un grupo, pero un archivo puede estar en un solo grupo.

La propiedad grupal es una forma práctica de permitir que el propietario de un archivo asigne un conjunto de permisos a un archivo para personas que no conoce ("Puede mirar, pero no puede tocar") y otro conjunto de permisos para personas en las que confía con el archivo. (“Puedes mirar y tocar. Pero nadie más puede hacerlo”).

Cambio de propiedad

Un usuario típico puede controlar los permisos de un archivo pero no puede asignar la propiedad a otro usuario. Para cambiar la propiedad, debe usar el superusuario, comúnmente conocido como root .

Si no ha iniciado sesión como root , debe usar sudo comando para usar privilegios de root para cambiar el propietario de un archivo.

El sistema de archivos es más flexible a la hora de cambiar el grupo de un archivo. Todavía puede usar privilegios de raíz para cambiar el grupo, pero si el propietario del archivo pertenece al grupo de destino, el propietario del archivo también puede cambiar un archivo al grupo de destino.

El comando chown

El comando principal utilizado para cambiar el propietario o el grupo de un archivo es chown . La sintaxis más común usada con chown se muestra en el siguiente ejemplo:

chown user:group file1 file2 file3

El user en el ejemplo anterior es el usuario del que desea que sea propietario del archivo y el group es el grupo al que desea que pertenezca el archivo. Dos puntos separan los dos elementos del comando. Siguiendo el par de usuario y grupo, lista uno o más archivos afectados por el cambio.

Nota :chown también acepta un punto en lugar de los dos puntos al separar los nombres de usuario y de grupo. El uso del período está desactualizado pero aún se admite, y es posible que lo vea en scripts o documentación antiguos. Debe usar los dos puntos, si es posible.

Puede omitir el usuario o el grupo, pero no ambos. Si desea cambiar solo el propietario de un archivo, puede usar la siguiente sintaxis:

chown user file1

Si tiene un nombre de usuario que incluye un punto y no desea cambiar el grupo, incluya los dos puntos después del usuario como se muestra en el siguiente ejemplo:

chown john.smith: file1

Si quieres usar chown para simplemente cambiar el grupo, asegúrese de incluir los dos puntos antes del nombre del grupo, aunque no especificará un usuario como se muestra en el siguiente ejemplo:

chown :group file1
El comando chgrp

Si prefiere no usar los dos puntos cuando solo quiere cambiar el grupo por un archivo, puede usar chgrp como se muestra en el siguiente ejemplo:

chgrp group file1

Esto funciona como chown :group file1 , pero es más fácil de escribir y leer.

La opción -R

Si desea cambiar el propietario de un directorio en particular y sus archivos y subdirectorios, use -R opción para hacer un cambio recursivo como se muestra en el siguiente ejemplo:

chown -R user:group directoryname

El -R la opción funciona con chgrp también. Con ambos comandos, el cambio se aplica primero al directorio principal y luego itera a través de todo lo que se encuentra dentro del directorio (incluidos los subdirectorios).

Enlaces simbólicos

Los enlaces simbólicos (symlinks) requieren un manejo especial para chown o chgrp operaciones. Un enlace simbólico es un alias para otro archivo, similar a un acceso directo en Microsoft® Windows®. En lugar de aplicar el cambio al enlace simbólico en sí, el sistema de archivos aplica el cambio al destino del enlace simbólico. Por lo tanto, si el enlace simbólico enlace apunta al archivo thefile.txt , considere el siguiente comando:

chown user:group link

Cuando se ejecuta ese comando, el sistema cambia el propietario y el grupo del archivo de destino thefile.txt . La propiedad del enlace simbólico, enlace permanece sin cambios.

Si desea cambiar el propietario o el grupo de un enlace simbólico, use -h bandera para chown y chgrp , como se muestra en el siguiente ejemplo:

chown -h user:group link

Conceptos básicos de permisos

Hay dos partes en los permisos:lo que alguien puede hacer con un archivo y quién alguien puede ser.

Lo que está permitido

Hay tres categorías de acciones de usuario para archivos y directorios:leer, escribir y ejecutar.

Leer

El permiso de lectura de un archivo controla quién puede abrir o ver el contenido de un archivo.

El permiso de lectura para un directorio controla si puede o no ver una lista de los archivos en el directorio, sin embargo, el permiso de lectura no es suficiente. También necesita permiso de ejecución para que el directorio vea la lista de archivos.

Escribir

El permiso de escritura de un archivo controla si puede o no cambiar el contenido del archivo.

El permiso de escritura para un directorio controla si puede o no agregar, eliminar o renombrar archivos en ese directorio. Para ejercer sus permisos de escritura en un directorio, también necesita permiso de ejecución para el directorio.

Nota :Solo el permiso de escritura en el directorio adjunto afecta si puede o no cambiar el nombre o eliminar un archivo. Algunas operaciones, como rm , haga una verificación y evite que elimine un archivo que no es de su propiedad. No hay nada que impida que otro programa que no tenga un control similar incorporado elimine un archivo en el que no puede escribir y que no es de su propiedad.

Ejecutar

El permiso de ejecución de un archivo le permite ejecutar ese archivo desde la línea de comandos. Para ejecutar cualquier comando (chown , ls , rm , etc.), debe tener permiso de ejecución para el archivo que representa ese comando. Si intenta ejecutar un comando y obtiene un permission denied error, no tiene permiso de ejecución.

El permiso de ejecución para un directorio le permite realizar una operación en ese directorio o cambiar su directorio de trabajo (cd ) a ese directorio.

Incluso si tiene permiso de lectura para un directorio, en realidad no puede ejecutar ls comando en ese directorio para ver la lista de archivos a menos que también tenga el permiso de ejecución. De lo contrario, cuando intente ejecutar ls , está bloqueado antes de que el sistema pueda comprobar si tiene permiso de lectura. Para afectar algo dentro de un directorio, necesita tener permiso de ejecución para el directorio.

Quién puede hacer qué

Ahora que sabe qué permisos están disponibles, considere las categorías utilizadas para controlar quién se ve afectado por esos permisos. Las categorías son usuario, grupo y otros.

La categoría de usuario

El usuario La categoría de permisos hace referencia a los permisos que se aplican al propietario del archivo. Es la única categoría que apunta específicamente a un solo usuario porque solo un usuario puede poseer el archivo.

La categoría del grupo

El grupo categoría se refiere a los usuarios que están en el mismo grupo que el archivo. Si el archivo está en el grupo devs y el archivo tiene permiso de escritura para su grupo, eso significaría que los usuarios de devs el grupo tiene acceso de escritura al archivo.

La otra categoría

El otro categoría es un cajón de sastre para todos los que no pertenecen a las categorías de usuario o grupo. Utilice esta categoría para determinar si otros usuarios pueden leer el archivo, editarlo o ejecutarlo como un comando.

Prioridad de categoría

Es importante tener en cuenta que las categorías de permisos se aplican en el orden usuario, grupo, otro. La primera categoría de permisos que encuentra el sistema para un usuario es la única que aplica. Si usted es el propietario del archivo, sus permisos son los que se establezcan para el usuario, por lo que el sistema no se molestará en verificar el grupo u otros permisos para el archivo; ya ha encontrado lo que va a usar.

Este concepto es importante porque si establece un permiso para otro, ese permiso no se aplica al propietario del archivo ni a nadie en el grupo de ese archivo. Esos usuarios obtienen los permisos establecidos en las categorías de usuario o grupo, respectivamente.

Si no establece un permiso de lectura en un archivo para la categoría de grupo pero lo establece para el usuario y otras categorías, los usuarios en el grupo del archivo no tienen acceso de lectura, pero todos los demás sí.

Permisos más usuarios

La combinación de propiedad, categorías de usuarios y permisos brinda muchas opciones para controlar el acceso a archivos y directorios. Los siguientes ejemplos muestran algunas posibilidades:

  • Si crea un archivo de solo lectura para la otra categoría pero permite que las categorías de usuario y grupo escriban en él, entonces puede establecer un grupo de editores para un archivo y al mismo tiempo permitir que otros usuarios lo lean. Simplemente agregue los usuarios privilegiados al mismo grupo que el archivo.

  • Si configura el permiso de lectura para la categoría de usuario y lo elimina del grupo y otras categorías, se asegura de que solo el propietario del archivo pueda ver su contenido.

  • Cuando configura el permiso de ejecución para un archivo, permite que se ejecute como un comando. Si tiene un comando que solo desea que usuarios específicos puedan ejecutar, elimine el permiso de ejecución en el archivo para la otra categoría.

Los directorios reciben el mismo tratamiento. Muchos directorios de registro del sistema están configurados para leer y ejecutar solo por la categoría de usuario (a menudo root ) y excluya esos permisos de otras categorías para asegurarse de que solo alguien con acceso de superusuario pueda ver los registros, independientemente de los permisos establecidos en los propios archivos.

Por qué existe la raíz

El usuario raíz existe para proporcionar acceso y control. El usuario raíz puede cambiar la propiedad y los permisos de cualquier archivo o directorio del sistema. Ese usuario también puede interactuar con archivos y directorios como si tuviera los permisos más permisivos disponibles.

Incluso si el usuario no puede leer un archivo pero la otra categoría sí puede, root puede leerlo. De manera similar, si el usuario puede leer el archivo pero otros no, root aún puede leer el archivo. Pero si ninguna categoría tiene permiso de lectura (ni de usuario, ni de grupo, ni de otro tipo), entonces root tampoco puede leer el archivo.

Este comportamiento es más útil para los archivos que no desea cambiar accidentalmente. Si se eliminan los permisos de escritura de todas las categorías de un archivo, ni siquiera el root puede cambiar el contenido del archivo sin cambiar esos permisos.

Conclusión

Con una comprensión básica de cómo funcionan los permisos de archivos en Linux, estará mejor preparado para proteger los archivos de daños accidentales o malintencionados. También puede estar atento a los errores causados ​​por permisos de archivo restrictivos, como una aplicación que no puede escribir en su registro (causado por no tener permiso de escritura para el usuario propietario del proceso), o un servidor web que no puede servir un archivo html (causado por no tener permiso de lectura, o el directorio no tiene permiso de ejecución).


Linux
  1. Linux – ¿Todo es un archivo?

  2. Linux – ¿Permiso de archivo para ejecutar solamente?

  3. Listar miembros de un grupo en Linux

  4. Ejemplos de comandos básicos "chmod" en Linux

  5. ¿Cómo borro el permiso s en un directorio en Linux?

Menos comando en Linux

Aprenda el uso del comando chgrp (Change Group) en Linux

Comprender los permisos de archivos de Linux

Un chico de Windows en un mundo Linux:usuarios y permisos de archivo

Permiso de montaje CIFS denegado en Linux - ¡Arreglado!

Comprender los permisos básicos de archivos y la propiedad en Linux