У меня были случаи, когда файлы записывались в точку монтирования из-за сбоя монтирования.
Есть ли простой способ обнаружить такие файлы (что-то, что можно легко автоматизировать)?
(Я знаю, что можно смонтировать файловую систему в новой точке монтирования, используя что-то вроде:
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'.