Est-il possible d'accéder à des fichiers «masqués» par un montage?


18

Sous Linux, existe-t-il un moyen d'accéder à des fichiers sur un système de fichiers monté qui ont été "masqués" lorsqu'un autre système de fichiers a été monté sur un sous-répertoire?

Par exemple

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

La solution de mes rêves ne nécessiterait pas d'autorisations élevées ou ne serait pas spécifique à un certain système de fichiers, mais je prendrai tous les morceaux que je peux obtenir sans risquer un système de fichiers corrompu.

Réponses:


28

Vous pouvez utiliser la commande mount pour accéder au système de fichiers sous-jacent.

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

Cela ne pose aucun problème de corruption, mais cela nécessite l'autorisation de monter le système de fichiers.


+1, je pensais que mount --bindc'était la réponse. Mais je n'étais pas sûr.
Dan D.

1
+0,95, j'ai complètement oublié que les liaisons ne sont pas récursives par défaut. Cependant, la dernière fois que j'ai monté / ailleurs, je ne pouvais pas le démonter sans redémarrer; peut-être qu'un composant de l'interface graphique l'a saisi. L'avez-vous testé?
user1686

Merci! J'ai pensé à lier les montages pendant une seconde, mais j'ai pensé qu'ils fonctionneraient sur la base de la réécriture des noms de chemin et seraient donc récursifs ...
themel

5

Si vous avez root, vous pouvez mount --moveplacer le système de fichiers monté au-dessus d'un répertoire temporaire, puis le déplacer ensuite.

mkdir /bar
mount --move /foo /bar

Avoir root permet également d'accéder directement aux périphériques de blocs sous-jacents, le cas échéant. Pour ext4, vous pouvez utiliser debugfspour exporter des fichiers.

L' accès en lecture seule ne peut jamais corrompre le système de fichiers.


Les répertoires peuvent avoir des descripteurs ou des descripteurs de fichiers pour eux. Le "répertoire courant" est aussi un handle, pas un chemin. Si vous avez un descripteur sur un répertoire, vous pouvez accéder aux fichiers à l'intérieur même si cet emplacement a été monté. Cela n'a pas besoin de privilèges spéciaux, seulement une préparation spéciale.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.