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.
mount --bind
c'était la réponse. Mais je n'étais pas sûr.Si vous avez root, vous pouvez
mount --move
placer le système de fichiers monté au-dessus d'un répertoire temporaire, puis le déplacer ensuite.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
debugfs
pour 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.
la source