¿Es posible acceder a archivos "sombreados" por una montura?

18

En Linux, ¿hay alguna manera de acceder a los archivos en un sistema de archivos montado que se ha "sombreado" cuando otro sistema de archivos se montó sobre un subdirectorio?

P.ej

cd /
mkdir /foo
touch /foo/bar
mount /dev/sda1 /foo
# now, can I still get to /foo/bar on the / filesystem?

La solución de mis sueños no requeriría permisos elevados o ser específico para un determinado sistema de archivos, pero tomaré los desechos que pueda obtener sin arriesgar un sistema de archivos dañado.

themel
fuente

Respuestas:

28

Puede usar el comando mount para acceder al sistema de archivos subyacente.

$ mkdir /mnt/root
$ sudo mount --bind / /mnt/root
$ cat /mnt/root/foo/bar

No hay problema con la corrupción al hacer esto, pero requiere permiso para montar el sistema de archivos.

Pablo
fuente
+1, pensé que esa mount --bindera la respuesta. Pero no estaba seguro.
Dan D.
1
+0.95, olvidé por completo que los enlaces no son recursivos por defecto. Sin embargo, la última vez que lo monté en otro lugar, no pude desmontarlo sin reiniciar; Sin embargo, podría haber sido algún componente de la GUI que lo haya tomado ¿Has probado eso?
user1686
¡Gracias! Pensé en montaje de vínculos para un segundo, pero pensé que iba a trabajar en base a nombre de ruta reescritura y por lo tanto ser recursivo ...
themel
5

Si tiene root, puede mount --movecolocar el sistema de archivos montado en la parte superior de un directorio temporal y luego volverlo a mover.

mkdir /bar
mount --move /foo /bar

Tener root también permite acceder a los dispositivos de bloque subyacentes, si los hay, directamente. Para ext4, puede usar debugfspara exportar archivos.

El acceso de solo lectura nunca puede dañar el sistema de archivos.


Los directorios pueden tener identificadores o descriptores de archivo, obtenidos para ellos. El "directorio actual" también es un identificador, no una ruta. Si tiene un identificador para un directorio, puede acceder a los archivos dentro, incluso si esa ubicación se ha montado. Esto no necesita privilegios especiales, solo preparación especial.

usuario1686
fuente