Saltar al contenido principal

Capítulo 3.5 - Permisos de Archivos

Objetivos de Aprendizaje​

Al final de este capítulo, usted será capaz de:

  • Comprender el sistema de permisos de Linux
  • Leer e interpretar los permisos
  • Modificar los permisos con chmod
  • Cambiar propietario y grupo con chown

¿Qué son los Permisos?​

Los permisos en Linux controlan quién puede leer, escribir o ejecutar un archivo. Es un sistema de seguridad fundamental.

Tres niveles:

  • Owner (Propietario): Creador del archivo
  • Group (Grupo): Grupo propietario
  • Other (Otros): Todos los demás usuarios

Tipos de Permisos​

r (Read - Lectura)​

Para archivos:

  • Leer el contenido
  • Mostrar con cat, less, etc.

Para directorios:

  • Listar el contenido (ls)

w (Write - Escritura)​

Para archivos:

  • Modificar el contenido
  • Sobrescribir el archivo

Para directorios:

  • Crear archivos
  • Eliminar archivos

x (Execute - Ejecución)​

Para archivos:

  • Ejecutar como programa
  • Scripts, binarios

Para directorios:

  • Acceder al directorio (cd)
  • Necesario para navegar

Lectura de Permisos​

Formato Largo (ls -l)​

$ ls -l fichier.txt
-rwxr-xr-- 1 user group 1024 Jan 1 12:00 fichier.txt

Desglose:

- rwx r-x r-- 1 user group 1024 Jan 1 12:00 fichier.txt
│ ││ ││ ││ │ │ │ │ │
│ ││ ││ ││ │ │ │ │ └─ Nombre
│ ││ ││ ││ │ │ │ └────── Tamaño
│ ││ ││ ││ │ │ └──────────── Grupo
│ ││ ││ ││ │ └───────────────── Propietario
│ ││ ││ ││ └─────────────────── Enlaces
│ ││ ││ │└────────────────────── Otros: r--
│ ││ ││ └─────────────────────── Grupo: r-x
│ ││ │└────────────────────────── Propietario: rwx
│ ││ └─────────────────────────── Tipo: - (archivo)
│ └─────────────────────────────── Tipo: d (directorio), l (enlace)

Formato Octal​

# rwx = 111 (binario) = 7 (decimal)
# r-x = 101 (binario) = 5 (decimal)
# r-- = 100 (binario) = 4 (decimal)

# Ejemplo: rwxr-xr-- = 754

Correspondencia:

  • r = 4
  • w = 2
  • x = 1
  • - = 0

Ejemplos:

  • rwx = 4+2+1 = 7
  • r-x = 4+0+1 = 5
  • r-- = 4+0+0 = 4
  • --- = 0+0+0 = 0

Modificar los Permisos (chmod)​

Método Simbólico​

# Agregar permisos
chmod u+x fichier.txt # Propietario: +x
chmod g+w fichier.txt # Grupo: +w
chmod o+r fichier.txt # Otros: +r
chmod a+x fichier.txt # Todos: +x

# Quitar permisos
chmod u-x fichier.txt # Propietario: -x
chmod g-w fichier.txt # Grupo: -w

# Definir permisos
chmod u=rwx fichier.txt # Propietario: rwx
chmod g=rx fichier.txt # Grupo: r-x
chmod o=r fichier.txt # Otros: r--

# Combinaciones
chmod u+x,g+w fichier.txt
chmod u=rwx,g=rx,o=r fichier.txt

Símbolos:

  • u: User (propietario)
  • g: Group (grupo)
  • o: Other (otros)
  • a: All (todos)

Operadores:

  • +: Agregar
  • -: Quitar
  • =: Definir

Método Octal​

# Formato: chmod ABC archivo
# A = Propietario, B = Grupo, C = Otros

chmod 755 fichier.txt # rwxr-xr-x
chmod 644 fichier.txt # rw-r--r--
chmod 600 fichier.txt # rw------- (privado)
chmod 777 fichier.txt # rwxrwxrwx (todos los permisos)

# Recursivo
chmod -R 755 repertoire/

Permisos comunes:

  • 755: Ejecutable (scripts, programas)
  • 644: Archivos normales (lectura/escritura)
  • 600: Archivos privados (solo propietario)
  • 700: Directorio privado

Cambiar Propietario y Grupo (chown)​

chown​

# Cambiar propietario
chown user fichier.txt

# Cambiar propietario y grupo
chown user:group fichier.txt

# Cambiar solo el grupo
chown :group fichier.txt
chgrp group fichier.txt

# Recursivo
chown -R user:group repertoire/

Ejemplos:

# Asignar a user1
chown user1 fichier.txt

# Asignar a user1, grupo users
chown user1:users fichier.txt

# Recursivo en un directorio
chown -R www-data:www-data /var/www/

Permisos Especiales​

SUID (Set User ID)​

Ejecutar con los permisos del propietario:

chmod u+s fichier
# Ejemplo: /usr/bin/passwd (s en lugar de x)

SGID (Set Group ID)​

Ejecutar con los permisos del grupo:

chmod g+s fichier

Sticky Bit​

Impide la eliminación por parte de otros:

chmod +t repertoire/
# Ejemplo: /tmp (t en lugar de x)

Máscara por Defecto (umask)​

El umask determina los permisos predeterminados de los nuevos archivos:

# Ver el umask actual
umask

# Definir umask
umask 022 # Archivos: 644, Directorios: 755
umask 002 # Archivos: 664, Directorios: 775

Cálculo:

  • Archivos: 666 - umask
  • Directorios: 777 - umask

Ejemplos Prácticos​

Archivo Privado​

chmod 600 fichier.txt
# Solo el propietario puede leer/escribir

Script Ejecutable​

chmod 755 script.sh
# Todos pueden ejecutar, el propietario puede modificar

Directorio Compartido​

mkdir shared
chmod 775 shared
chgrp developers shared
# El grupo developers puede leer/escribir

Archivos Web​

chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;

Resumen​

En este capítulo, usted ha aprendido:

Permisos: r (lectura), w (escritura), x (ejecución)
Niveles: Propietario, Grupo, Otros
Lectura: ls -l, formato simbólico y octal
chmod: Modificar permisos (simbólico u octal)
chown: Cambiar propietario y grupo
Especiales: SUID, SGID, Sticky Bit
umask: Permisos predeterminados


Próximos Pasos​

Capítulo 3.6: Búsqueda de Archivos
Capítulo 3.7: Enlaces Simbólicos y Duros


Capítulo creado el: Diciembre 2024