linux bash unix chroot

linux - Bash: ejecutar comandos desde un chroot y cambiar de usuario



unix (3)

Opción básica:

cat << EOF | chroot /chroot_dir touch aaaaa touch bbbbb EOF

opción con shell diferente (por ejemplo, si usa bash pero en un entorno chroot no existe)

cat << EOF | chroot /chroot_dir /bin/sh touch aaaaa touch bbbbb EOF

Estoy escribiendo un guión que debería hacer esto ...

chroot /chroot_dir/ su - ./startup.sh (This should run within the su environment)

He intentado este enfoque:

chroot /chroot_dir /bin/bash -c " su -; ./startup.sh"

Esto intenta ejecutar el cambio de usuario y el script como un comando de cadena para bash ... sin embargo, lo que hace es que se "detiene" después de "su -" y no ejecuta el script. Sin embargo, una vez que abandono el entorno "su -", intenta ejecutar startup.sh pero, por supuesto, no puede encontrarlo.

Básicamente, necesito anidar "startup.sh" para ejecutarse dentro del entorno "su -" ...

¿Algunas ideas?

Muchas gracias


tratar

chroot /chroot_dir /bin/bash -c "su - -c ./startup.sh"


chroot /chroot_dir /bin/bash -x <<''EOF'' su - ./startup.sh EOF