Обычно любые операции с
mount сразу становятся видны всем процессам в текущем пространстве монтирования. Если случайно смонтировать файловую систему, сделать bind mount или изменить параметры монтирования, изменения увидят и остальные процессы хоста.Но Linux позволяет создать собственный
mount namespace:sudo unshare --mount --fork bash
Для большинства операций потребуется
root (или CAP_SYS_ADMIN).Новая оболочка получает собственное пространство монтирования. Любые последующие
mount, umount и mount --bind будут видны только внутри неё.Например:
bash id="t8n5wy"
mount -t tmpfs tmpfs /mnt
touch /mnt/test
ls /mnt
Или можно проверить сложный сценарий с
bind mount, не опасаясь затронуть основную систему:mount --bind ./build /usr/local/bin
# Проверяем сценарий...
Когда завершается последний процесс в этом
namespace, он автоматически уничтожается вместе со всеми своими mount'ами. Никакой ручной очистки не требуется.🔥 Если нужно безопасно проверить сложные операции с монтированием или воспроизвести окружение без виртуальной машины и контейнера —
unshare --mount является одним из самых удобных инструментов Linux.🚪 Linux Ready | #совет
