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 conumask.
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
octale inspecciona sus datos y permisos iniciales: - Aplica permisos de sólo lectura (4) para el propietario, el grupo y otros (equivalente a
444): - 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): - Asigna acceso total o full permisos (777) para todos los colectivos:
touch octal && ls -l octal
chmod 444 octal && ls -l octal
chmod 760 octal && ls -l octal
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
octalasignando la combinación octal000: - Intenta leer el contenido del archivo con el comando
cat: - 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 000 octal && ls -l octal
cat octal
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
defectoy un directorio llamadodir-defectopara observar sus permisos base: - Inspecciona los permisos otorgados automáticamente por el sistema operativo:
- Consulta el valor de la máscara de usuario actual ejecutando:
- Observa el valor devuelto (por defecto suele ser
0022o022) y comprende cómo resta valor a la base666para ficheros y777para directorios.
touch defecto && mkdir dir-defecto
ls -l defecto && ls -ld dir-defecto
umask
Fase 4: Modificación de la máscara por defecto (umask)
- Establece una nueva máscara de usuario con valor
002para permitir escritura al grupo por defecto: - Crea un nuevo fichero
documento1y un directoriodirectorio1, y comprueba sus nuevos permisos por defecto: - Cambia la máscara a
222para forzar a que todos los elementos creados tengan permisos de sólo lectura: - Crea el fichero
directorio3(o archivo de prueba) y el directoriodirectorio4para validar el resultado de la resta:
umask 002
touch documento1 && ls -l documento1
mkdir directorio1 && ls -ld directorio1
umask 222
touch directorio3 && ls -l directorio3
mkdir directorio4 && ls -ld directorio4
Preguntas de reflexión:
- En la notación octal, ¿qué valor numérico representa el permiso de lectura (
r), la escritura (w) y la ejecución (x)? - ¿Qué valor octal debemos asignar con
chmodpara configurar un archivo con permisos de lectura y escritura para el propietario, solo lectura para el grupo y ningún permiso para otros? - ¿A qué equivale en caracteres una configuración octal
755aplicada a un archivo o carpeta? - Si a un archivo le aplicamos
chmod 000, ¿por qué el usuario propietario recibe un error de Permission denied al intentar leerlo concat? - En el escenario anterior (
chmod 000), ¿por qué el propietario puede volver a ejecutarchmod 777sobre el archivo sin necesidad de recurrir asudooroot? - ¿Cuáles son los valores máximos base de permisos a partir de los cuales se calcula la resta de la máscara
umaskpara ficheros y para directorios? - Si la máscara activa del sistema es
umask 022, ¿qué permisos octales y en caracteres tendrá un nuevo directorio recién creado? - Si deseamos que todos los ficheros nuevos que creemos nazcan con permisos octales
664(rw-rw-r--), ¿qué valor numérico deumaskdebemos configurar? - Si aplicamos una máscara
umask 222, ¿cuál será el resultado octal de permisos para un fichero recién creado partiendo de la base666? - ¿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:
- Rellena los campos y responde en este formulario desde tu navegador.
- Pulsa el botón de imprimir al final de la página.
- Selecciona "Guardar como PDF" en el diálogo de impresión.
- Entrega el archivo PDF en el aula virtual.
Alumno/a: Fecha:
Grupo:
Completa la ficha realizando las siguientes actividades:
- Asignación de permisos mediante notación octal (
chmod).
Escribe el comandochmoden notación octal utilizado para asignar permisos full al usuario, lectura y escritura al grupo, y ningún permiso a otros sobre el archivooctal:
Copia la salida devuelta por el comandols -l octal:
Explica cómo se calcula matemáticamente el valor numérico octal para cada bloque (propietario, grupo y otros):
- Prueba de blindaje total de un archivo (
chmod 000).
Escribe la orden ejecutada para retirar todos los permisos del archivooctaly la orden usada para intentar leerlo:
Copia el mensaje recibido al ejecutar el comandocat octal:
Explica por qué razón el usuario propietario sí puede restaurar los permisos conchmod 777 octala pesar de no tener permisos de lectura ni escritura:
- 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):
- Modificación de permisos por defecto para dar permisos de escritura al grupo.
Escribe la orden empleada para establecer la máscara en002y la orden de creación del ficherodocumento1:
Copia la salida del comandols -l documento1:
Muestra la resta matemática efectuada para calcular los permisos finales resultantes (666 - 002):
- Configuración de permisos de sólo lectura mediante
umask 222.
Escribe los comandos utilizados para cambiar la máscara a222y crear el directoriodirectorio4:
Copia la línea devuelta porls -ld directorio4:
Explica qué permisos resultan para el directorio tras aplicar la resta (777 - 222) en formato en caracteres y en octal: