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 / / --chdir ~/sandbox --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
# bwrap --unshare-all --ro-bind /usr /usr --ro-bind /bin /bin --ro-bind /lib /lib --ro-bind /lib64 /lib64 2>/dev/null || true --proc /proc --tmpfs /tmp --dev /dev -- ls || true
# bwrap --unshare-all --ro-bind / / --proc /proc --dev /dev --tmpfs /tmp --chdir / bash -c 'touch /root/FAIL || echo "solo lectura activada"; uname -a'
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.