Herramienta ligera para crear contenedores sin privilegios. Permite aislar procesos del sistema anfitrión configurando un espacio de nombres y puntos de montaje personalizados, ideal para tareas como empaquetado, pruebas o ejecución de software en entornos limitados.
# bwrap --dev /dev --proc /proc --bind / / sh
# bwrap --bind /path/to/directory / --dev /dev --proc /proc bash
# bwrap --unshare-net --bind / / bash
# bwrap --tmpfs /tmp --bind / / bash
# bwrap --ro-bind /bin /bin --ro-bind /lib /lib --ro-bind /usr /usr --dev /dev --proc /proc bash
# bwrap --unshare-user --uid 1000 --gid 1000 --bind / / bash
# bwrap --unshare-pid --bind / / bash
# bwrap --ro-bind /etc /etc --dev /dev --proc /proc bash
# bwrap --bind / / --chdir /home/user bash
# bwrap --unshare-ipc --bind / / bash
# bwrap --dev /dev --proc /proc --tmpfs /tmp bash
# bwrap --bind / / --dev /dev --proc /proc /usr/bin/ls
1.-
Probar un programa en un entorno restringido:
# bwrap \
--bind /usr/bin /usr/bin \
--bind /usr/lib /usr/lib \
--bind /etc /etc \
--ro-bind /var /var \
--tmpfs /tmp \
--dev /dev \
--proc /proc \
--unshare-net \
/usr/bin/python3 --version
Permite acceso limitado a /usr/bin, /usr/lib y /etc, monta /var como solo lectura y crea un nuevo /tmp, aísla la red y ejecuta Python dentro del contenedor.
2.-
Crear un script para ejecutar aplicaciones con restricciones repetidamente. Por ejemplo:
# nano sandbox.sh
#!/bin/bash
bwrap --bind / / --tmpfs /tmp --ro-bind /usr /usr --unshare-net --chdir /tmp bash
# chmod +x sandbox.sh
Y lanzarlo cada vez que se necesite un entorno aislado.