Red Hat Training

A Red Hat training course is available for RHEL 8

Capítulo 10. Gestión de los permisos de los archivos

10.1. Introducción a los permisos de los archivos

Cada archivo o directorio tiene tres niveles de propiedad:

  • Usuario propietario (u).
  • Propietario del grupo (g).
  • Otros (o).

A cada nivel de propiedad se le pueden asignar los siguientes permisos:

  • Leer (r).
  • Escribe (w).
  • Ejecutar (x).

Tenga en cuenta que el permiso de ejecución para un archivo le permite ejecutar ese archivo. El permiso de ejecución para un directorio le permite acceder al contenido del directorio, pero no ejecutarlo.

Cuando se crea un nuevo archivo o directorio, se le asigna automáticamente el conjunto de permisos por defecto. El permiso por defecto para un archivo o directorio se basa en dos factores:

  • Permiso de base.
  • El user file-creation mode mask (umask).

10.1.1. Permisos de base

Cada vez que se crea un nuevo archivo o directorio, se le asigna automáticamente un permiso base.

Los permisos base de un archivo o directorio pueden expresarse en valores symbolic o octal.

Permission

Symbolic value

Octal value

No hay permiso

---

0

Ejecutar

--x

1

Escriba

-w-

2

Escribir y ejecutar

-wx

3

Leer

r--

4

Leer y ejecutar

r-x

5

Leer y escribir

rw-

6

Leer, escribir, ejecutar

rwx

7

El permiso base para un directorio es 777 (drwxrwxrwx), que concede a todo el mundo los permisos de lectura, escritura y ejecución. Esto significa que el propietario del directorio, el grupo y otros pueden listar el contenido del directorio, crear, borrar y editar elementos dentro del directorio, y descender en él.

Tenga en cuenta que los archivos individuales dentro de un directorio pueden tener su propio permiso que podría impedirle editarlos, a pesar de tener acceso ilimitado al directorio.

El permiso base para un archivo es 666 (-rw-rw-rw-), que concede a todo el mundo los permisos de lectura y escritura. Esto significa que el propietario del archivo, el grupo y otros pueden leer y editar el archivo.

Ejemplo 1

Si un archivo tiene los siguientes permisos:

$ ls -l
-rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
  • - indica que es un archivo.
  • rwx indica que el propietario del archivo tiene permisos para leer, escribir y ejecutar el archivo.
  • rw- indica que el grupo tiene permisos para leer y escribir, pero no para ejecutar el archivo.
  • --- indica que otros usuarios no tienen permiso para leer, escribir o ejecutar el archivo.
  • . indica que el contexto de seguridad de SELinux está establecido para el archivo.

Ejemplo 2

Si un directorio tiene los siguientes permisos:

$ ls -dl directory
drwxr-----. 1 sysadmins sysadmins 2 Mar 2 08:43 directory
  • d indica que es un directorio.
  • rwx indica que el propietario del directorio tiene los permisos para leer, escribir y acceder al contenido del directorio.

    Como propietario de un directorio, puede enumerar los elementos (archivos, subdirectorios) dentro del directorio, acceder al contenido de esos elementos y modificarlos.

  • r-- indica que el grupo tiene permisos para leer, pero no para escribir o acceder al contenido del directorio.

    Como miembro del grupo propietario del directorio, puede listar los elementos del directorio. No puede acceder a la información de los elementos dentro del directorio ni modificarlos.

  • --- indica que otros usuarios no tienen permiso para leer, escribir o acceder al contenido del directorio.

    Como alguien que no es propietario de un usuario, o como propietario de un grupo del directorio, no puede listar los elementos dentro del directorio, acceder a la información sobre esos elementos o modificarlos.

  • . indica que el contexto de seguridad SELinux está establecido para el directorio.
Nota

El permiso base que se asigna automáticamente a un archivo o directorio es not el permiso por defecto con el que termina el archivo o directorio. Cuando se crea un archivo o directorio, el permiso base es alterado por el umask. La combinación del permiso base y el umask crea el permiso por defecto para los archivos y directorios.

10.1.2. Máscara del modo de creación de archivos del usuario

La umask es una variable que elimina automáticamente los permisos del valor de permiso base cada vez que se crea un archivo o directorio para aumentar la seguridad general de un sistema linux.

El umask puede expresarse en symbolic o octal.

Permission

Symbolic value

Octal value

Leer, escribir y ejecutar

rwx

0

Leer y escribir

rw-

1

Leer y ejecutar

r-x

2

Leer

r--

3

Escribir y ejecutar

-wx

4

Escriba

-w-

5

Ejecutar

--x

6

No hay permisos

---

7

El valor por defecto de umask para un usuario estándar es 0002. El valor por defecto de umask para un usuario root es 0022.

El primer dígito de umask representa los permisos especiales (sticky bit, ). Los tres últimos dígitos de umask representan los permisos que se quitan al usuario propietario (u), al propietario del grupo (g), y a otros (o) respectivamente.

Ejemplo

El siguiente ejemplo ilustra cómo el umask con un valor octal de 0137 se aplica al archivo con el permiso base de 777, para crear el archivo con el permiso por defecto de 640.

Figura 10.1. Aplicación de la umask al crear un archivo

Users Groups Umask Example

10.1.3. Permisos por defecto

El permiso por defecto para un nuevo archivo o directorio se determina aplicando el umask al permiso base.

Ejemplo 1

Cuando un standard user crea un nuevo directory, el umask se establece en 002 (rwxrwxr-x), y el permiso base para un directorio se establece en 777 (rwxrwxrwx). Esto hace que el permiso por defecto sea 775 (drwxrwxr-x).

 

Symbolic value

Octal value

Base permission

rwxrwxrwx

777

Umask

rwxrwxr-x

002

Default permission

rwxrwxr-x

775

Esto significa que el propietario del directorio y el grupo pueden listar el contenido del directorio, crear, borrar y editar elementos dentro del directorio, y descender en él. Los demás usuarios sólo pueden listar el contenido del directorio y descender a él.

Ejemplo 2

Cuando un standard user crea un nuevo file, el umask se establece en 002 (rwxrwxr-x), y el permiso base para un archivo se establece en 666 (rw-rw-rw-). Esto hace que el permiso por defecto sea 664 (-rw-rw-r--).

 

Symbolic value

Octal value

Base permission

rw-rw-rw-

666

Umask

rwxrwxr-x

002

Default permission

rw-rw-r--

664

Esto significa que el propietario del archivo y el grupo pueden leer y editar el archivo, mientras que los demás usuarios sólo pueden leerlo.

Ejemplo 3

Cuando un root user crea un nuevo directory, el umask se establece en 022 (rwxr-xr-x), y el permiso base para un directorio se establece en 777 (rwxrwxrwx). Esto hace que el permiso por defecto sea 755 (rwxr-xr-x).

 

Symbolic value

Octal value

Base permission

rwxrwxrwx

777

Umask

rwxr-xr-x

022

Default permission

rwxr-xr-x

755

Esto significa que el propietario del directorio puede listar el contenido del mismo, crear, borrar y editar elementos dentro del directorio, y descender en él. El grupo y los demás sólo pueden listar el contenido del directorio y descender a él.

Ejemplo 4

Cuando un root user crea un nuevo file, el umask se establece en 022 (rwxr-xr-x), y el permiso base para un archivo se establece en 666 (rw-rw-rw-). Esto hace que el permiso por defecto sea 644 (-rw-r—​r--).

 

Symbolic value

Octal value

Base permission

rw-rw-rw-

666

Umask

rwxr-xr-x

022

Default permission

rw-r-r--

644

Esto significa que el propietario del archivo puede leer y editar el archivo, mientras que el grupo y otros sólo pueden leer el archivo.

Nota

Por razones de seguridad, los archivos normales no pueden tener permisos de ejecución por defecto, incluso si el umask está configurado como 000 (rwxrwxrwx). Sin embargo, se pueden crear directorios con permisos de ejecución.