Calculadora Chmod: Entendiendo los permisos de archivos en Unix
En los sistemas basados en Unix y Linux, los permisos de archivos son un aspecto crítico de la seguridad y la administración del sistema. El comando chmod (change mode) es la herramienta utilizada para gestionar quién puede leer, escribir o ejecutar un archivo o directorio. Aunque el sistema es lógico, las representaciones numéricas y simbólicas pueden resultar confusas para los principiantes e incluso para algunos desarrolladores experimentados.
En esta guía, explicaremos cómo funcionan los permisos de Unix, la diferencia entre los modos octal y simbólico, y proporcionaremos una tabla de referencia completa.
Conceptos básicos de los permisos de Unix
Cada archivo y directorio en un sistema Linux tiene tres tipos de permisos para tres clases diferentes de usuarios.
Las tres clases
- Usuario (u): El propietario del archivo.
- Grupo (g): Miembros del grupo al que pertenece el archivo.
- Otros (o): Todos los demás usuarios del sistema.
Los tres permisos
- Lectura (r): Permiso para ver el contenido de un archivo o listar el contenido de un directorio.
- Escritura (w): Permiso para modificar un archivo o añadir/eliminar archivos en un directorio.
- Ejecución (x): Permiso para ejecutar un archivo como un programa/script o entrar en un directorio.
Modo octal (numérico) explicado
El modo octal utiliza tres dígitos para representar los permisos. Cada dígito es la suma de los valores de los permisos para esa clase.
- Lectura (r) = 4
- Escritura (w) = 2
- Ejecución (x) = 1
- Sin permiso = 0
Cómo calcular un dígito:
Lectura (4) + Escritura (2) + Ejecución (1) = 7(Permisos totales)Lectura (4) + Escritura (2) = 6(Lectura y escritura)Lectura (4) + Ejecución (1) = 5(Lectura y ejecución)Lectura (4) = 4(Solo lectura)
Ejemplo: chmod 755
- Usuario: 7 (4+2+1) -> rwx
- Grupo: 5 (4+1) -> r-x
- Otros: 5 (4+1) -> r-x
Modo simbólico explicado
El modo simbólico utiliza letras para representar las clases y los permisos.
- Clases:
u(usuario),g(grupo),o(otros),a(todos) - Operaciones:
+(añadir),-(eliminar),=(establecer exactamente) - Permisos:
r,w,x
Ejemplo: chmod u+x script.sh
Esto añade permiso de ejecución al propietario del archivo.
Tabla de referencia de Chmod
| Octal | Simbólico | Descripción | Caso de uso común |
|---|---|---|---|
| 777 | a+rwx |
Todos pueden hacer todo | Carpetas públicas (¡Usar con precaución!) |
| 755 | u=rwx,go=rx |
Propietario hace todo, otros leen/ejecutan | Directorios web, Scripts |
| 644 | u=rw,go=r |
Propietario lee/escribe, otros solo leen | Archivos de texto, archivos HTML |
| 600 | u=rw,go= |
Solo propietario lee/escribe | Claves privadas, claves SSH |
| 400 | u=r,go= |
Solo propietario lee | Archivos de configuración sensibles |
| 700 | u=rwx,go= |
Solo propietario hace todo | Scripts o directorios privados |
Casos de uso comunes y ejemplos
Hacer que un script sea ejecutable
chmod +x mi-script.sh
# o
chmod 755 mi-script.sh
Asegurar una clave privada SSH
Las claves SSH no funcionarán si son demasiado accesibles. Deben estar restringidas solo al propietario.
chmod 600 ~/.ssh/id_rsa
Cambiar permisos de forma recursiva
Para cambiar los permisos de un directorio y todo su contenido:
chmod -R 755 /ruta/al/directorio
Permisos especiales: SUID, SGID y Sticky Bit
Los sistemas Linux avanzados utilizan un cuarto dígito inicial para permisos especiales:
- SUID (4): Cuando se ejecuta el archivo, el proceso se ejecuta con los privilegios del propietario.
- SGID (2): El proceso se ejecuta con los privilegios del grupo, o los archivos creados en el directorio heredan el grupo.
- Sticky Bit (1): Solo el propietario de un archivo en un directorio puede eliminarlo o renombrarlo (comúnmente usado en
/tmp).
Ejemplo: chmod 1777 /tmp (Acceso total para todos, pero solo los propietarios pueden eliminar sus archivos).
Preguntas frecuentes (FAQ)
¿Qué significa exactamente "755"?
Significa que el propietario tiene permisos de Lectura, Escritura y Ejecución (4+2+1=7). El grupo y otros tienen permisos de Lectura y Ejecución (4+1=5).
¿Por qué se considera peligroso el 777?
777 permite que cualquier usuario del sistema modifique o elimine sus archivos. En un entorno web, esto podría permitir a un atacante subir scripts maliciosos y ejecutarlos.
¿Cómo verifico los permisos actuales de un archivo?
Usa el comando ls -l en tu terminal. Verás una cadena como -rwxr-xr-x, donde el primer carácter es el tipo de archivo y los siguientes 9 caracteres representan los permisos.
Conclusión
Entender los permisos de archivos es vital para mantener un entorno Linux seguro y funcional. Aunque los códigos numéricos como 644 o 755 son estándar, usar una calculadora online puede ayudarte a visualizar exactamente qué representa cada código.
¿Necesitas encontrar el código de permiso adecuado rápidamente? ¡Usa nuestra Calculadora Chmod (próximamente) para generar el comando perfecto para tus necesidades!