miércoles, 19 de agosto de 2020

Qué es un bind mount y cómo crearlo en Linux



¿Qué es un bind mount? ¿Qué diferencia hay entre un bind mount y un enlace simbólico?



Los montajes "bind" (bind mounts) de Linux permiten montar una ruta del sistema de archivos en otra ubicación, es decir, hacen que dos rutas vayan al mismo directorio. Se suelen usar para restringir el acceso de usuarios específicos a ciertas rutas de un servidor.

Por ejemplo, si queremos que un usuario sólo pueda acceder a una ruta específica vía SFTP y esta muestre archivos contenidos en otra parte del sistema, podemos usar un bind mount, lo cual le permitirá al usuario ver los archivos de esa ruta a la que no tendría acceso de otra forma.


Configurar bind mount



Para crear un bind mount, debemos usar la siguiente sintaxis:

HOST# mount --bind /ruta/original/ /nueva/ruta

Tambien podemos usar esta otra sintaxis:

HOST# mount -o bind /ruta/original/ /nueva/ruta

Una vez hecho esto, cada vez que nos dirijamos a /nueva/ruta, veremos los archivos situados en /ruta/original, como si hubieramos accedido a /ruta/original.


Montaje persistente



Cuando reiniciemos la máquina, los bind mount se perderán. Para hacerlos persistentes (perdurables después de reinicios), deberemos editar el archivo /etc/fstab del sistema y decirle a este que los monte:

/ruta/original /nueva/ruta none bind,nobootwait 0 0

Agregar nobootwait a la sección de opciones de la configuración de fstab garantiza que el sistema se inicie incluso si el directorio original se ha eliminado del sistema.


Diferencias entre bind mount y enlaces simbólicos



Un enlace simbólico es un inodo que apunta a un determinado objeto del sistema de archivos. Por otro lado, si se monta un directorio con un bind mount, se crea un segundo punto de montaje para un directorio ya existente dentro del sistema de archivos.

Si un enlace simbólico se podría ver como una redirección, un bind mount se podría ver como otra puerta de enlace a los datos de un directorio ya existente.

Varios programas pueden distinguir entre enlaces simbólicos y directorios o archivos reales. Pocos pueden distinguir entre un directorio o archivo y el que está montado en él (bind mount). Un software de backup, por ejemplo, creará dos copias de cada archivo ubicado en un directorio doblemente montado mediante bind mount, ya que tratará a ambos directorios como rutas independientes.

En un chroot, por su parte, si el objetivo del enlace está fuera del chroot, el enlace simbólico quedará muerto. El bind mount, en cambio, funcionará y permitirá que se acceda a los datos ubicados fuera del chroot. Además, los enlaces simbólicos sobreviven a un reinicio mientras que los mount bind no lo hacen a menos que se edite /etc/fstab para hacerlos persistentes.

Por último, los bind mount permiten un acceso más rápido a su destino que los enlaces simbólicos.


Fuentes:

https://support.rackspace.com/how-to/bind-mounts-in-linux/
https://serverfault.com/questions/613179/how-do-i-do-mount-bind-in-etc-fstab
https://unix.stackexchange.com/questions/53456/what-is-the-difference-between-nobootwait...
0

0 comentarios:

Publicar un comentario