Можно ли получить доступ к файлам, «затененным» при монтировании?


18

В Linux, есть ли способ получить доступ к файлам в смонтированной файловой системе, которые были «затенены», когда другая файловая система была смонтирована в подкаталоге?

Например

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

Решение моей мечты не потребует повышенных разрешений или специфического для определенной файловой системы, но я возьму все, что смогу, не рискуя испортить файловую систему.

Ответы:


28

Вы можете использовать команду mount для доступа к базовой файловой системе.

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

При этом не возникает проблем с повреждением, но для этого требуется разрешение на монтирование файловой системы.


+1, я думал, что это mount --bindбыл ответ. Но я не был уверен.
Дэн Д.

1
+0.95, я полностью забыл, что привязки по умолчанию не являются рекурсивными. Однако, в прошлый раз, когда я привязал / где-то еще, я не смог размонтировать его без перезагрузки; возможно, это был какой-то графический компонент, который его захватывал. Вы проверяли это?
user1686

Благодарность! Я на секунду подумал о bind mounts, но думал, что они будут работать на основе перезаписи имен путей и, следовательно, будут рекурсивными ...
themel

5

Если у вас есть root, вы можете mount --moveсмонтировать файловую систему поверх временной директории, а затем переместить ее обратно.

mkdir /bar
mount --move /foo /bar

Наличие root также позволяет напрямую обращаться к базовым блочным устройствам, если таковые имеются. Для ext4 вы можете использовать debugfsдля экспорта файлов.

Доступ только для чтения никогда не может повредить файловую систему.


Каталоги могут иметь дескрипторы или дескрипторы файлов, полученные для них. «Текущий каталог» тоже дескриптор, а не путь. Если у вас есть дескриптор каталога, вы можете получить доступ к файлам внутри, даже если это место было смонтировано поверх. Для этого не нужны особые привилегии, только специальная подготовка.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.