Изоляция и дебаг процессов через unshare

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

unsharenamespacechroot

👁 Иногда нужно быстро воспроизвести поведение сервиса в «чистой» среде или проверить, как он ведёт себя в изоляции, но без поднятия контейнеров или виртуалок. В Linux для этого есть unshare — инструмент, который позволяет создать отдельные namespace прямо из шелла.

📝 Запуск процесса в изолированном окружении

unshare позволяет изолировать PID, сеть, mount и другие namespace, создавая почти «мини-контейнер» без Docker.

sudo unshare --fork --pid --mount --uts --ipc --net bash

📌 Ты получаешь новый shell с изолированными пространствами: процессы, hostname, сеть — всё отдельное от основной системы.

📝 Создание собственной файловой системы через chroot

Внутри изоляции можно примонтировать свою файловую систему и получить полностью отдельную среду.

mount -t tmpfs tmpfs /mnt
mkdir /mnt/bin
cp /bin/bash /mnt/bin/
chroot /mnt /bin/bash

📌 Это позволяет тестировать поведение приложений в минимальной среде без лишних зависимостей.

📝 Отладка сети в изолированном namespace

Можно создать отдельный сетевой стек и проверить, как ведёт себя приложение без влияния хоста.

ip link set lo up
ip addr add 127.0.0.1/8 dev lo

📌 После этого можно запускать сервисы и тестировать их в полностью изолированной сети.

❗️ unshare — это недооценённый инструмент, который даёт почти все возможности контейнеров, но без Docker. Отлично подходит для дебага, тестирования и понимания, как реально работают namespace в Linux.

tags: #linux #безопасность #полезно

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот терминала RECURA: команды для запуска unshare, создания tmpfs и chroot, и базовые сетевые команды ip для отладки в namespace.
Команды: sudo unshare --fork --pid --mount --uts --ipc --net bash; монтирование tmpfs и chroot; ip link/ip addr для локальной сети в namespace.

Читайте так же