Control de Acceso a Archivos
Mi Viaje por Linux: Control de Acceso a Archivos - La Seguridad es lo Primero
¡Hola otra vez, entusiastas de Linux! En la entrada anterior exploramos la gestión de usuarios y grupos. Hoy vamos a sumergirnos en algo igualmente crucial: el control de permisos en archivos y directorios. ¡Es como establecer las reglas de quién puede entrar en cada habitación de nuestra casa digital!
Los Tres Pilares de Permisos
En Linux, cada archivo tiene tres niveles de permisos:
- Usuario (u): El dueño del archivo
- Grupo (g): Los miembros del grupo al que pertenece el archivo
- Otros (o): Todos los demás usuarios
Y para cada nivel, hay tres tipos de permisos:
- Lectura (r): Ver el contenido
- Escritura (w): Modificar el contenido
- Ejecución (x): Ejecutar el archivo o acceder al directorio
Interpretando los Permisos
Cuando ejecutamos ls -l
, vemos algo así:
-rw-r--r-- 1 nacho developers 1234 Jan 1 12:00 document.txt
Desglosémoslo:
- rw- r-- r--
│ │ │ │
│ │ │ └── Permisos para otros
│ │ └────── Permisos para grupo
│ └────────── Permisos para usuario
└──────────── Tipo de archivo
Cambiando Permisos: chmod
Hay dos formas de cambiar permisos:
1. Método Simbólico
chmod u+x script.sh # Dar permiso de ejecución al usuario
chmod g-w archivo.txt # Quitar permiso de escritura al grupo
chmod o=r archivo.txt # Establecer solo lectura para otros
2. Método Octal
chmod 644 archivo.txt # rw-r--r--
chmod 755 script.sh # rwxr-xr-x
Permisos Especiales
Además de los permisos básicos, existen permisos especiales:
-
SetUID (u+s)
chmod u+s program # El programa se ejecuta como el propietario
-
SetGID (g+s)
chmod g+s directory # Los nuevos archivos heredan el grupo
-
Sticky Bit (o+t)
chmod o+t directory # Solo el propietario puede borrar archivos
La Máscara de Permisos (umask)
El umask
es como un filtro que determina los permisos predeterminados:
umask # Ver máscara actual
umask 022 # Establecer nueva máscara
Por defecto:
- Archivos: 666 - umask
- Directorios: 777 - umask
Ejemplos Prácticos
-
Configurar un directorio compartido:
mkdir /shared chmod 775 /shared chown :developers /shared
-
Hacer un script ejecutable:
chmod u+x script.sh # o chmod 755 script.sh
-
Proteger archivos sensibles:
chmod 600 ~/.ssh/id_rsa
Tips de Seguridad
-
Usar permisos restrictivos por defecto:
umask 027 # Restringe acceso a "otros"
-
Revisar permisos regularmente:
find /home -type f -perm -0777
-
Mantener los permisos especiales bajo control:
find / -type f -perm /6000