Simular chroot con unshare

13

Estoy tratando de escribir un bootstrapper para una distribución mínima de linux de origen.

Me gustaría construir en un entorno similar a chroot. Esto debería simplificar el embalaje. No me importa la seguridad en este momento. El programa de arranque no debe requerir ningún comando de terceros no estándar. Sería genial si no hay necesidad de ser root, tampoco.

Es por eso que fakechroot (1) fakeroot (1) chroot (1) no es exactamente lo que estoy buscando.

¿Es posible falsificar / usar unshare (1) y / bin / sh?

Rooties
fuente
AFAICS, unshare(1)es una envoltura bastante delgada en torno a una colección de llamadas de sistema solo de raíz, y (al menos en Fedora 18) no es SUID, por lo que dudo mucho que eso funcione para usuarios no root.
vonbrand
Oh, eso es una vergüenza. Tenía la impresión de que unshare es setuid. Supongo que estoy bien con ser root.
Rooties
44
Con el lanzamiento del nuevo kernel de Linux 3.8, puede usar las funciones de espacio de nombres como no root. Pero esto es algo nuevo y brillante: primero necesita un espacio de nombre uid, y unshare aún no lo admite. Y tus acciones seguirán siendo limitadas.
BatchyX

Respuestas:

5

Si. Si su núcleo admite espacios de nombres de usuario (y están habilitados) , primero puede "simular el usuario raíz", que luego obtiene el derecho de invocar chroot(como un usuario raíz real). (Lo que anteriormente solo debía restringirse al usuario raíz debido a la posibilidad de que un usuario normal escale los privilegios (por ejemplo, a través de binarios set-UID-root y bibliotecas personalizadas en el directorio chroot)).

Puedes probar esto en tu shell:

unshare --user --map-root-user --mount-proc --pid --fork
/sbin/chroot ......
su - user1
imz - Ivan Zakharyaschev
fuente
opción no reconocida '--map-root-user'
Zibri 05 de
1
@Zibri Funciona para mí ahora, la unsharede util-linux-2.30.2-alt 1
imz - Ivan Zakharyaschev
1

Simplemente agrupa o instala fakeroot / fakechroot, ya que son perfectamente apropiados para esto. Mira cdebootstrap para inspirarte.

Tobu
fuente