¿Qué es un Symlink en Unix?


En sistemas operativos basados en UNIX, un symbolic link o un symlink es un archivo en un directorio que actúa como un puntero a un archivo en otro directorio. Por ejemplo, puede crear un enlace para que todos los accesos al fichero /tmp/foo actúen realmente sobre el fichero /etc/passwd.

Creación de Symlinks

Linux ofrece el comando ln para crear enlaces, con la bandera -s especificando un enlace simbólico. Por ejemplo:

 $ ln -s ~/todo.md /tmp/todo.md

creará un enlace simbólico en el directorio /tmp a un archivo todo.md ubicado en el directorio raíz del usuario.

Seguridad de Symlink

Aunque un usuario no root carece de permiso para escribir en archivos administrativos como /etc/passwd, una cuenta de usuario normal puede crear enlaces a ellos en el directorio /tmp o en el directorio de inicio. SUID – un proceso en el que el sistema operativo establece un ID de usuario específico como usuario de ejecución cuando se accede a un archivo o se ejecuta un comando – puede ser explotado. Esta es la forma principal en que los usuarios locales pueden escalar sus privilegios en un sistema.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *