Вопрос или проблема
Можно ли смонтировать файловую систему Overlayfs как непривилегированный пользователь в пространстве имен пользователей в ядрах Linux >4.3.3; кажется, что исправление для этой уязвимости полностью заблокировало эту функциональность.
Когда я создаю новое пространство имен пользователей с помощью clone(), передавая флаг CLONE_NEWNS
и пытаюсь вызвать монтирование с файловой системой overlayfs, я получаю отказ в разрешении. Однако я могу монтировать любую другую файловую систему.
Существует ли способ обойти это/я что-то упускаю?
Монтировать overlayfs в непривилегированном пространстве имен пользователей было запрещено до и включая версию ядра v5.10. Не уверен, но вы можете попробовать смонтировать overlayfs с помощью привязки в пространство имен пользователей.
Начиная с версии ядра 5.11, однако, была добавлена соответствующая поддержка, и теперь вы можете, наконец, использовать их.
Ответ или решение
Использование Overlayfs в непривилегированном пользовательском пространстве
С введением функциональности пользовательских пространств (user namespaces) в Linux, вопрос о возможности монтирования файловых систем, таких как Overlayfs, в непривилегированном контексте стал актуальным. Давайте подробно рассмотрим, какие изменения произошли и какие существуют ограничения.
Контекст и ограничения
До версии ядра Linux 5.11 использование Overlayfs в непривилегированных пользовательских пространствах было ограничено. Причина такого ограничения связана с уязвимостью, описанной в CVE-2015-8660, которая ставила под угрозу безопасность системы при работе с Overlayfs. С целью устранения этих угроз, команда разработчиков Линукс ввела ограничения, делая невозможным монтирование Overlayfs без соответствующих привилегий.
Таким образом, если вы создали новое пользовательское пространство с помощью clone()
, передав флаг CLONE_NEWNS
, и попытались смонтировать Overlayfs, вы столкнетесь с ошибкой "Permission denied". Это поведение справедливо для всех версий ядра до 5.11, даже если другие типы файловых систем на базе Linux монтируются корректно.
Текущие возможности (ядро 5.11 и выше)
С версии 5.11 ядра Линукс ситуация кардинально изменилась. Разработчики добавили поддержку для монтирования Overlayfs в непривилегированном пользовательском пространстве. Это означает, что теперь пользователи могут безопасно работать с Overlayfs, не обладая административными правами, что значительно упрощает разработку и развертывание контейнерных решений и микросервисов.
Как обойти ограничения в версиях до 5.11
Если вы не можете обновить ваше ядро до версии 5.11 или выше, есть краткосрочные меры, которые могут помочь:
-
Проблемы с авторизацией: Проверьте параметры монтирования, которые вы используете. В некоторых случаях корректное указание опций монтирования может повлиять на возможность использования Overlayfs.
-
Использование привилегий: Возможно, вам стоит использовать более привилегированного пользователя для монтирования Overlayfs, например, root. Если это возможно в рамках вашей архитектуры управления доступом, это может помочь.
-
Bind mount: Как упоминалось в обсуждении, выполнение привязочных монтирований (bind mounts) может частично помочь, однако это не заменит полноценную работу с Overlayfs.
Заключение
Если вы работаете с версиями ядра до 5.11, возможности по работе с Overlayfs в непривилегированных пользовательских пространствах ограничены, и может потребоваться использование обходных путей или обновление ядра. С другой стороны, версии 5.11 и выше наконец предоставляют полноценную поддержку Overlayfs для неприкольных пользователей, что открывает новые горизонты для разработки и масштабирования приложений в облачных и контейнеризованных средах.
Рекомендуем следить за обновлениями в ядре Linux и тестировать новые возможности, чтобы обеспечить эффективную и безопасную работу с файловыми системами.