-->

Permisos en Modo Octal y Máscara de Usuario (UMASK)

Objetivo:

Aprender a gestionar los permisos en sistemas Linux utilizando la notación octal/numérica del comando chmod (asociando los valores 4 para lectura, 2 para escritura y 1 para ejecución) para realizar modificaciones rápidas sobre los tres bloques (propietario, grupo y otros). Comprender el concepto de blindaje de archivos mediante el permiso 000 y dominar el cálculo y cambio de permisos por defecto en ficheros y directorios a través del comando umask.

Escenario:

  • Herramientas: Terminal de Linux en sesión con un usuario estándar.
  • Archivos y directorios de prueba: Ficheros creados en el directorio personal (~/octal, ~/defecto, ~/documento1, etc.) y directorios de prueba (~/dir-defecto, ~/directorio1, etc.).
  • Conceptos clave: Permisos en modo octal (Suma de ponderaciones: r=4, w=2, x=1), blindaje de archivos (chmod 000), permisos base para ficheros (666) y directorios (777), y resta de máscaras con umask.

Instrucciones:

Fase 1: Asignación de permisos mediante notación octal (chmod)

  • Abre tu terminal y asegúrate de situarte en tu directorio personal ejecutando cd ~.
  • Crea un fichero de prueba llamado octal e inspecciona sus datos y permisos iniciales:
  • touch octal && ls -l octal
  • Aplica permisos de sólo lectura (4) para el propietario, el grupo y otros (equivalente a 444):
  • chmod 444 octal && ls -l octal
  • Configura permisos de lectura, escritura y ejecución (7) para el usuario, lectura y escritura (6) para el grupo, y ningún permiso (0) para otros (equivalente a 760):
  • chmod 760 octal && ls -l octal
  • Asigna acceso total o full permisos (777) para todos los colectivos:
  • chmod 777 octal && ls -l octal

Fase 2: Blindaje de ficheros (chmod 000) y recuperación de privilegios

  • Retira absolutamente todos los permisos al archivo octal asignando la combinación octal 000:
  • chmod 000 octal && ls -l octal
  • Intenta leer el contenido del archivo con el comando cat:
  • cat octal
  • Comprueba que la consola devuelve un mensaje de Permiso denegado, incluso siendo tú el usuario propietario del fichero.
  • Recupera el control total del archivo volviendo a otorgarle permisos completos gracias a tu condición de propietario:
  • chmod 777 octal && ls -l octal

Fase 3: Inspección de permisos por defecto y uso del comando umask

  • Crea un fichero de prueba llamado defecto y un directorio llamado dir-defecto para observar sus permisos base:
  • touch defecto && mkdir dir-defecto
  • Inspecciona los permisos otorgados automáticamente por el sistema operativo:
  • ls -l defecto && ls -ld dir-defecto
  • Consulta el valor de la máscara de usuario actual ejecutando:
  • umask
  • Observa el valor devuelto (por defecto suele ser 0022 o 022) y comprende cómo resta valor a la base 666 para ficheros y 777 para directorios.

Fase 4: Modificación de la máscara por defecto (umask)

  • Establece una nueva máscara de usuario con valor 002 para permitir escritura al grupo por defecto:
  • umask 002
  • Crea un nuevo fichero documento1 y un directorio directorio1, y comprueba sus nuevos permisos por defecto:
  • touch documento1 && ls -l documento1
    mkdir directorio1 && ls -ld directorio1
  • Cambia la máscara a 222 para forzar a que todos los elementos creados tengan permisos de sólo lectura:
  • umask 222
  • Crea el fichero directorio3 (o archivo de prueba) y el directorio directorio4 para validar el resultado de la resta:
  • touch directorio3 && ls -l directorio3
    mkdir directorio4 && ls -ld directorio4

Preguntas de reflexión:

  1. En la notación octal, ¿qué valor numérico representa el permiso de lectura (r), la escritura (w) y la ejecución (x)?
  2. ¿Qué valor octal debemos asignar con chmod para configurar un archivo con permisos de lectura y escritura para el propietario, solo lectura para el grupo y ningún permiso para otros?
  3. ¿A qué equivale en caracteres una configuración octal 755 aplicada a un archivo o carpeta?
  4. Si a un archivo le aplicamos chmod 000, ¿por qué el usuario propietario recibe un error de Permission denied al intentar leerlo con cat?
  5. En el escenario anterior (chmod 000), ¿por qué el propietario puede volver a ejecutar chmod 777 sobre el archivo sin necesidad de recurrir a sudo o root?
  6. ¿Cuáles son los valores máximos base de permisos a partir de los cuales se calcula la resta de la máscara umask para ficheros y para directorios?
  7. Si la máscara activa del sistema es umask 022, ¿qué permisos octales y en caracteres tendrá un nuevo directorio recién creado?
  8. Si deseamos que todos los ficheros nuevos que creemos nazcan con permisos octales 664 (rw-rw-r--), ¿qué valor numérico de umask debemos configurar?
  9. Si aplicamos una máscara umask 222, ¿cuál será el resultado octal de permisos para un fichero recién creado partiendo de la base 666?
  10. ¿Por qué los directorios requieren por defecto el permiso de ejecución (x) activo mientras que en los ficheros convencionales no viene activado de forma predeterminada?
Haz clic aquí para ver las soluciones y explicaciones

1. En la notación octal, ¿qué valor numérico representa el permiso de lectura (r), la escritura (w) y la ejecución (x)?

Lectura (r) vale 4, escritura (w) vale 2 y ejecución (x) vale 1.


2. ¿Qué valor octal debemos asignar con chmod para configurar un archivo con permisos de lectura y escritura para el propietario, solo lectura para el grupo y ningún permiso para otros?

El valor octal es 640 (Propietario: 4+2=6; Grupo: 4; Otros: 0).


3. ¿A qué equivale en caracteres una configuración octal 755 aplicada a un archivo o carpeta?

Equivale a rwxr-xr-x (Propietario: lectura, escritura y ejecución; Grupo y Otros: lectura y ejecución).


4. Si a un archivo le aplicamos chmod 000, ¿por qué el usuario propietario recibe un error de Permission denied al intentar leerlo con cat?

Porque el comando retira activamente los bits de lectura, escritura y ejecución para todos los colectivos, incluido el propio propietario. Al intentar leerlo, el sistema operativo comprueba los bits de acceso actuales y deniega la operación.


5. En el escenario anterior (chmod 000), ¿por qué el propietario puede volver a ejecutar chmod 777 sobre el archivo sin necesidad de recurrir a sudo o root?

Porque la propiedad del archivo determina la autoridad para alterar la metainformación y los permisos. Aunque el archivo no tenga permisos de lectura o escritura, el usuario sigue figurando como su propietario en el sistema de archivos.


6. ¿Cuáles son los valores máximos base de permisos a partir de los cuales se calcula la resta de la máscara umask para ficheros y para directorios?

Para ficheros la base es 666 (rw-rw-rw-) y para directorios la base es 777 (rwxrwxrwx).


7. Si la máscara activa del sistema es umask 022, ¿qué permisos octales y en caracteres tendrá un nuevo directorio recién creado?

Tendrá un valor octal de 755 (resultado de restar 777 - 022), lo que equivale en caracteres a rwxr-xr-x.


8. Si deseamos que todos los ficheros nuevos que creemos nazcan con permisos octales 664 (rw-rw-r--), ¿qué valor numérico de umask debemos configurar?

Debemos configurar umask 002, ya que restando la base de ficheros menos el objetivo (666 - 664) se obtiene 002.


9. Si aplicamos una máscara umask 222, ¿cuál será el resultado octal de permisos para un fichero recién creado partiendo de la base 666?

El resultado será 444 (666 - 222), que equivale a permisos de sólo lectura para todos (r--r--r--).


10. ¿Por qué los directorios requieren por defecto el permiso de ejecución (x) activo mientras que en los ficheros convencionales no viene activado de forma predeterminada?

En las carpetas, el permiso x permite la travesía o acceso al directorio con el comando cd. En los ficheros no se activa por defecto por motivos de seguridad, evitando que cualquier archivo de texto común se ejecute accidentalmente como un programa.


Ficha de Laboratorio: Permisos en Modo Octal y Máscara de Usuario (UMASK)

Instrucciones de entrega:

  1. Rellena los campos y responde en este formulario desde tu navegador.
  2. Pulsa el botón de imprimir al final de la página.
  3. Selecciona "Guardar como PDF" en el diálogo de impresión.
  4. Entrega el archivo PDF en el aula virtual.

Alumno/a:      Fecha:      

Grupo:


Completa la ficha realizando las siguientes actividades:

  1. Asignación de permisos mediante notación octal (chmod).
    Escribe el comando chmod en notación octal utilizado para asignar permisos full al usuario, lectura y escritura al grupo, y ningún permiso a otros sobre el archivo octal:

    Copia la salida devuelta por el comando ls -l octal:

    Explica cómo se calcula matemáticamente el valor numérico octal para cada bloque (propietario, grupo y otros):
  2. Prueba de blindaje total de un archivo (chmod 000).
    Escribe la orden ejecutada para retirar todos los permisos del archivo octal y la orden usada para intentar leerlo:

    Copia el mensaje recibido al ejecutar el comando cat octal:

    Explica por qué razón el usuario propietario sí puede restaurar los permisos con chmod 777 octal a pesar de no tener permisos de lectura ni escritura:
  3. Comprobación de la máscara de usuario activa (umask).
    Escribe la orden ejecutada para consultar el valor de la máscara del sistema:

    Copia el valor de la máscara obtenido en la terminal:

    Explica la diferencia entre las bases de permisos iniciales asignadas a los ficheros (666) y a los directorios (777):
  4. Modificación de permisos por defecto para dar permisos de escritura al grupo.
    Escribe la orden empleada para establecer la máscara en 002 y la orden de creación del fichero documento1:

    Copia la salida del comando ls -l documento1:

    Muestra la resta matemática efectuada para calcular los permisos finales resultantes (666 - 002):
  5. Configuración de permisos de sólo lectura mediante umask 222.
    Escribe los comandos utilizados para cambiar la máscara a 222 y crear el directorio directorio4:

    Copia la línea devuelta por ls -ld directorio4:

    Explica qué permisos resultan para el directorio tras aplicar la resta (777 - 222) en formato en caracteres y en octal: