Permisos de administrador y symlinks en Windows: ¿Qué necesitas saber?

Has notado que Windows te pide permisos de administrador para crear enlaces simbólicos (symlinks) entre particiones distintas, y te has preguntado si esto cambia cuando los archivos están en la misma unidad. Es una duda muy común, pero el comportamiento del sistema es bastante más complejo de lo que parece a simple vista.

Visual representation of Windows requiring administrator permissions to create symbolic links between different partitions.
Windows prompting for admin privileges when crossing partition boundaries.

Para entender por qué ocurre esto, primero hay que aclarar la diferencia entre los distintos tipos de enlaces que soporta Windows. Es muy fácil confundirlos porque el comportamiento cambia drásticamente según el tipo:

  • Hard links (`mklink /H`): Estos solo funcionan dentro del mismo volumen, es decir, en la misma partición. No requieren privilegios especiales y apuntan directamente al registro MFT.
  • Junctions (`mklink /J`): Están diseñados específicamente para directorios entre volúmenes locales y tampoco necesitan el mismo tratamiento que los symlinks.
  • Symbolic links (`mklink`): Estos son los enlaces simbólicos verdaderos, capaces de funcionar entre particiones e incluso hacia recursos de red. Históricamente, requieren el privilegio SeCreateSymbolicLinkPrivilege, que por defecto solo tienen los administradores.

Si estás utilizando la herramienta mklink sin parámetros específicos, lo que estás haciendo es crear un symlink. Por eso, Windows exige permisos elevados para ejecutar el comando.

¿Y qué pasa con el Modo de desarrollador?

No todo es blanco o negro en este asunto. Existe una excepción importante: desde la versión 1703 de Windows 10 y en Windows 11, puedes activar el Modo de desarrollador. Si lo haces, los usuarios normales pueden crear symlinks sin necesidad de elevar sus privilegios.

Es una curiosidad interesante: esta restricción no es una limitación técnica del sistema de archivos NTFS, que soporta perfectamente los enlaces entre volúmenes. Es simplemente una decisión de seguridad de Microsoft para dificultar ciertos ataques que abusaban de la creación de estos enlaces simbólicos.

¿Afecta esto a los permisos de mis archivos?

Muchas personas, incluido el usuario original de este análisis, se preocupan por si crear un symlink como administrador va a dejar sus archivos con problemas de acceso o propiedad. La respuesta corta es no: puedes estar tranquilo.

Diagram showing that the target file's permissions are not altered by the symlink creation process.
The target file's ownership and ACLs remain unchanged after creating a symlink.

Cuando ejecutas mklink, lo único que se crea con privilegios elevados es el propio enlace. El enlace es simplemente un objeto muy pequeño del sistema de archivos y no altera en absoluto la propiedad ni los permisos (ACLs) del archivo de destino.

Por ejemplo, si tu usuario puede leer o escribir en D:datosarchivo.txt, seguirá pudiendo hacerlo a través del enlace que crees. Si el sistema te pide permisos para crear el symlink, es porque Windows exige ese permiso para la acción de creación, no para permitirte usarlo.

En resumen, si estás usando mklink entre particiones distintas, estarás creando un symlink que requerirá administrador (a menos que tengas activado el modo de desarrollador), pero tus archivos seguirán teniendo exactamente los mismos permisos y propietario que tenían antes de crear el enlace.