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

Предотвратить возможность записи данных в несмонтированный каталог точки монтирования

У меня есть сервер Ubuntu, на котором я автоматически монтирую внешний жесткий диск при каждой загрузке.

Для этого я создал пустую папку в корневом разделе, и диск монтируется «внутри» этой папки.

Однако что, если я сделаю резервную копию этого пути, когда диск не смонтирован должным образом? Вместо этого резервная копия заполнит мой корневой раздел!

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

sudo mount -a

... перед каждым резервным копированием.

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

Можно ли это решить без скриптов? Скажите с разрешениями например? Какие лучшие практики?

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

Это достигается с помощью chattr +i /mountpoint (с размонтированным креплением).

Это приведет к ошибке при новой операции записи, а также защитит точку монтирования в других ситуациях.

Но я предположить вы могли бы использовать команда точки монтирования, слишком ;)

Чтобы развернуть комментарий об использовании mountpoint, это примерно то, что я использую в сценариях, когда мне нужно проверить такие вещи:

DEST='/mnt/backup'
if ! mountpoint -q "$DEST" ; then
    echo "Destination is not mounted; attempting to mount"
    mount $DEST
    if ! mountpoint -q "$DEST" ; then
        echo "Unable to mount $DEST; Aborting"
        exit 1
    fi
    echo "Mounted $DEST; Continuing backup"
fi

Предполагается, что $ DEST существует в /etc/fstab; не имеет значения, если это auto или noauto точка крепления.

В соответствии с mount страница руководства:

Если указан только каталог или устройство, например:

mount /dir

затем команда mount ищет точку монтирования и, если она не найдена, устройство в файле / etc / fstab. Можно использовать параметры --tar ‐ get или --source, чтобы избежать неоднозначной интерпретации данного аргумента. Например

mount --target /mountpoint