Чи можливий доступ до файлів, "затінених" кріпленням?


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, я повністю забув про нерекурсивність binds за замовчуванням. Однак востаннє, коли я зв’язувався / в іншому місці, я не міг придумати його без перезавантаження; можливо, якийсь компонент GUI захоплював його. Ви тестували це?
користувач1686

Спасибі! Я подумав про прив’язку монтажу на секунду, але подумав, що вони працюватимуть на основі переписування імені шляху і, таким чином, будуть рекурсивними ...
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.