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= 4w= 2x= 1-= 0
Ejemplos:
rwx= 4+2+1 = 7r-x= 4+0+1 = 5r--= 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