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.
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
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.
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.