Назад | Перейти на главную страницу

Как быстро обнаружить файлы, которые затенены смонтированной файловой системой

У меня были случаи, когда файлы записывались в точку монтирования из-за сбоя монтирования.

Есть ли простой способ обнаружить такие файлы (что-то, что можно легко автоматизировать)?

(Я знаю, что можно смонтировать файловую систему в новой точке монтирования, используя что-то вроде:

mount --bind / /tmp/tmp

а затем поиск файлов во всех точках монтирования.

но я надеюсь на что-то побыстрее

В будущем вы можете запустить chattr +i /mountpoint (с размонтированным креплением). Это изменяет каталог точки монтирования на неизменяемый. В результате вы получите ошибку при новой операции записи. Он также защищает точку монтирования в других ситуациях.

Офир,

Я не знаю, как добиться того, о чем вы просите, но у меня есть для вас совет :)

Когда вы готовите точку монтирования, установите для нее максимально возможную маску разрешений. Подключите файловую систему к точке монтирования и установите права доступа к точке монтирования (с установленной файловой системой) на желаемый набор. Позвольте мне проиллюстрировать:

# mkdir -m0 /mnt/mountpoint
# mount -t ext4 /dev/sdb1 /mnt/mountpoint
# chown -h user:group /mnt/mountpoint
# chmod 0750 /mnt/mountpoint

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

Этот трюк может помочь вам защитить и легко определить, когда файловая система не смонтирована. Если ваше приложение работает под root, оно сможет писать в каталог с разрешениями, установленными на 000, но это хорошая проверка (для проверки разрешений точки монтирования), чтобы понять, что мы пишем не в то место.

Я надеюсь, это поможет.

P.S. @ewwhite предоставил лучший вариант защиты точки монтирования с помощью 'chattr + i', чем установка для нее значения 'chmod 0'.