Permisos de archivos en Linux/Unix: ¿Cómo leer, escribir y cambiar?

Linux es un clon de UNIX, el sistema operativo multiusuario al que pueden acceder muchos usuarios simultáneamente. Linux también se puede utilizar en mainframes y servidores sin necesidad de realizar ninguna modificación, pero esto plantea problemas de seguridad, ya que un usuario no deseado o malintencionado puede corromper, cambiar o eliminar datos cruciales. Para lograr una seguridad eficaz, Linux divide la autorización en dos niveles.

  1. Propiedad del activo:
  2. Permiso

El concepto de archivo Linux (permission) y propiedad es crucial en Linux. Aquí, explicaremos los permisos y la propiedad de Linux y discutiremos ambos. Comencemos con el Propiedad.

Haga clic aquí si el video no es accesible

Propiedad de archivos de Linux

A cada archivo y directorio de su sistema Unix/Linux se le asignan 3 tipos de propietarios, que se detallan a continuación.

User

Un usuario es el propietario del archivo. De forma predeterminada, la persona que creó un archivo se convierte en su propietario. Por lo tanto, a veces a un usuario también se le llama propietario.

Grupo procesos

Un grupo de usuarios puede contener varios usuarios. Todos los usuarios que pertenecen a un grupo tendrán los mismos permisos de grupo de Linux para acceder al archivo. Suponga que tiene un proyecto en el que varias personas requieren acceso a un archivo. En lugar de asignar permisos manualmente a cada usuario, puede agregar todos los usuarios a un grupo y asignar permisos de grupo para archivar de modo que solo los miembros de este grupo y nadie más puedan leer o modificar los archivos.

Otros

Cualquier otro usuario que tenga acceso a un archivo. Esta persona no ha creado el archivo ni pertenece a un grupo de usuarios que pueda ser propietario del archivo. Prácticamente significa todos los demás. Por lo tanto, cuando configura el permiso para otros, también se lo conoce como establecer permisos para el mundo.

Ahora surge la gran pregunta: ¿cómo Linux distingue entre estos tres tipos de usuarios para que un usuario 'A' no pueda afectar un archivo que contenga información/datos vitales de otro usuario 'B'. Es como si no quisieras que tu colega, que trabaja en tu Computadora Linux, para ver tus imágenes. Aquí es donde Permisos se establecen y definen comportamiento del usuario.

Entendamos el Sistema de permisos en Linux.

Permisos de archivos de Linux

Cada archivo y directorio en su sistema UNIX/Linux tiene los siguientes 3 permisos definidos para los 3 propietarios discutidos anteriormente.

  • Leer: Este permiso le otorga la autoridad para abrir y leer un archivo. El permiso de lectura en un directorio le brinda la posibilidad de enumerar su contenido.
  • Escribir: El permiso de escritura le otorga la autoridad para modificar el contenido de un archivo. El permiso de escritura en un directorio le otorga la autoridad para agregar, eliminar y cambiar el nombre de los archivos almacenados en el directorio. Considere un escenario en el que tiene que escribir permiso en un archivo pero no tiene permiso de escritura en el directorio donde está almacenado el archivo. Podrás modificar el contenido del archivo. Pero no podrá cambiar el nombre, mover ni eliminar el archivo del directorio.
  • Ejecutar: In Windows, un programa ejecutable suele tener una extensión “.exe” y puedes ejecutarlo fácilmente. En Unix/Linux, no puede ejecutar un programa a menos que esté configurado el permiso de ejecución. Si el permiso de ejecución no está configurado, es posible que aún pueda ver/modificar el código del programa (siempre que los permisos de lectura y escritura estén configurados), pero no ejecutarlo.

Permisos de archivos de Linux
Permisos de archivos en Linux/Unix

Veamos los permisos de archivos en Linux con ejemplos:

ls-l en la terminal da

ls - l

Permisos de archivos de Linux

Aquí hemos resaltado '-rw-rw-r–'y este código de aspecto extraño es el que nos informa sobre los permisos de Unix otorgados al propietario, al grupo de usuarios y al mundo.

Aquí, el primero''implica que hemos seleccionado un archivo.p>

Permisos de archivos de Linux

De lo contrario, si fuera un directorio, d se habría mostrado.

Permisos de archivos de Linux

Los personajes son bastante fáciles de recordar.

r = permiso de lectura
w = permiso de escritura
x = ejecutar permiso
= sin permiso

Veámoslo de esta manera.

La primera parte del código es 'rw-'. Esto sugiere que el propietario de la “Casa” puede:

Permiso de archivos de Linux

  • Leer el archivo
  • Escribir o editar el archivo
  • No puede ejecutar el archivo porque el bit de ejecución está establecido en "-".

Por diseño, muchas distribuciones de Linux como Fedora, CentOS, Ubuntu, etc. agregará usuarios a un grupo con el mismo nombre de grupo que el nombre de usuario. Por lo tanto, un usuario "tom" se agrega a un grupo llamado "tom".

La segunda parte es 'rw-'. Para el grupo de usuarios "Inicio" y los miembros del grupo pueden:

  • Leer el archivo
  • Escribir o editar el archivo

La tercera parte es para el mundo, es decir, cualquier usuario. Dice 'r–'. Esto significa que el usuario sólo puede:

  • Leer el archivo

Permisos de archivos de Linux

Cambiar permisos de archivos/directorios en Linux usando el comando 'chmod'

Digamos que no quiere que su colega vea sus imágenes personales. Esto se puede lograr cambiando los permisos de los archivos.

Podemos usar el 'chmod' comando que significa "cambiar modo". Usando el comando, podemos establecer permisos (lectura, escritura, ejecución) en un archivo/directorio para el propietario, el grupo y el mundo.

Sintaxis:

chmod permissions filename

Hay 2 maneras de utilizar el comando

  1. modo absoluto
  2. Modo simbólico

Modo absoluto (numérico) en Linux

En este modo, archivo los permisos no se representan como caracteres sino como un número octal de tres dígitos.

La siguiente tabla proporciona números para todos los tipos de permisos.

Número Tipo de permiso Símbolo
0 Sin autorización -
1 Implementación -X
2 Escribe. -w-
3 Ejecutar + Escribir -wx
4 Leer r–
5 Leer + Ejecutar rx
6 Leer +Escribir rw-
7 Leer + Escribir + Ejecutar rwx

Veamos el comando de permisos chmod en acción.

Modo absoluto (numérico) en Linux

En la ventana de terminal anterior, hemos cambiado los permisos del archivo "muestra a" 764 ".

Modo absoluto (numérico) en Linux

El código absoluto '764' dice lo siguiente:

  • El propietario puede leer, escribir y ejecutar
  • El grupo de usuarios puede leer y escribir.
  • El mundo sólo puede leer

Esto se muestra como '-rwxrw-r–

Así es como puede cambiar los permisos de usuario en Linux en el archivo asignando un número absoluto.

Modo simbólico en Linux

En el modo Absoluto, cambia los permisos para los 3 propietarios. En el modo simbólico, puedes modificar los permisos de un propietario específico. Hace uso de símbolos matemáticos para modificar los permisos de los archivos Unix.

Operator Descripciones

+

Agrega un permiso a un archivo o directorio

Quita el permiso

=

Establece el permiso y anula los permisos establecidos anteriormente.

Los distintos propietarios están representados como:

Denotaciones de usuario

u

usuario / propietario

g

grupo de XNUMX

o

Otros

a

todas

No utilizaremos permisos en números como 755 sino en caracteres como rwx. Veamos un ejemplo

Modo simbólico en Linux

Cambio de propiedad y grupo en Linux

Para cambiar la propiedad de un archivo/directorio, puede utilizar el siguiente comando:

chown user filename

En caso de que desee cambiar el usuario y el grupo de un archivo o directorio, utilice el comando

chown user:group filename

Veamos esto en acción

Cambio de propiedad y grupo en Linux

En caso de que desee cambiar únicamente el propietario del grupo, use el comando

chgrp group_name filename

"chgrp' significa grupo de cambio.

Cambio de propiedad y grupo en Linux

Consejo

  • El archivo /etc/group contiene todos los grupos definidos en el sistema
  • Puede utilizar el comando "grupos" para encontrar todos los grupos de los que es miembro.
  • Cambio de propiedad y grupo en Linux

  • Puede utilizar el comando newgrp para trabajar como miembro de un grupo que no sea su grupo predeterminado.
  • Cambio de propiedad y grupo en Linux

  • No puede haber 2 grupos que posean el mismo archivo.
  • No tienes grupos anidados en Linux. Un grupo no puede ser subgrupo de otro.
  • x- Ejecutar un directorio significa tener permitido "ingresar" un directorio y obtener posible acceso a subdirectorios
  • Hay otros permisos que puedes configurar en Archivos y Directorios que se tratarán en un tutorial avanzado posterior.

Resumen:

  • Linux, al ser un sistema multiusuario, utiliza permisos y propiedad por motivos de seguridad.
  • Hay tres tipos de usuarios en un sistema Linux: Usuario, Grupo y Otros.
  • Linux divide los permisos de archivos en lectura, escritura y ejecución indicados por r, w y x.
  • Los permisos de un archivo se pueden cambiar mediante el comando "chmod", que se puede dividir en modo absoluto y simbólico.
  • El comando 'chown' puede cambiar la propiedad de un archivo o directorio. Utilice los siguientes comandos: chown user file o chown user:group file
  • El comando 'chgrp' puede cambiar la propiedad del grupo nombre de archivo del grupo chrgrp
  • ¿Qué significa x – ejecutar un directorio? R: Tener permiso para "ingresar" a un directorio y obtener posible acceso a subdirectorios.