chroot: no se pudo ejecutar el comando '/bin/bash': no ​​existe tal archivo o directorio

chroot: no se pudo ejecutar el comando '/bin/bash': no ​​existe tal archivo o directorio

Cuando ejecuto el chrootcomando me da un error:

failed to run command ‘/bin/bash’: No such file or directory 

Respuesta1

Este error significa que no hay ningún /bin/bashdirectorio.dentro de chroot. Asegúrese de señalar dónde bashse encuentra el ejecutable (u otro shell) en chrootel directorio.

Si es /mnt/somedir/usr/bin/bashasí, ejecute chroot /mnt/somedir /usr/bin/bash.

Aparte de lo anterior, también necesita agregar libcdependencias de directorio, como se menciona en la respuestaaquí.

Respuesta2

Tenía /bin/bashdentro del directorio chroot, pero no tenía /libni /lib64dentro de él. El mensaje de chrootpodría ser más descriptivo. "no existe tal archivo o directorio" realmente significa "No puedo ejecutar esto...".

/bin/bashDepende, por supuesto libc, de ld-linux, libdletc., puede usarlo ldd /bin/bashpara ver qué bibliotecas requiere.

  1. Puede acceder mount -o binda estos directorios enchroot
  2. O puede copiar estas bibliotecas a chroot, si no confía en que el entorno chroot no las corrompa, así:
    cp -a /usr rootfs/
    cp -a /lib rootfs/
    cp -a /lib64 rootfs/
    

Respuesta3

chrootintenta iniciar el shell que está configurado en su $SHELLvariable de entorno de forma predeterminada, pero lo busca en su nuevo directorio raíz, que parece no contener /bin/bash, por lo que no puede iniciarse.

Puedes decirle a chroot que inicie otro programa dentro de la nueva raíz simplemente agregándolo como parámetro:

chroot /your/new/root /bin/foo --options...

Tenga en cuenta que la ruta del comando se interpretaadentrosu nueva raíz, por lo que en este ejemplo el programa llamado está de hecho en/your/new/root/bin/foo

Respuesta4

Recibí el mismo error al intentar realizar ssh a una cuenta chroot en un servidor remoto. En mi caso, me faltaba el siguiente archivo en el directorio lib64 remoto.El servidor es Centos6.9

ld-linux-x86-64.so.2

Se solucionó ejecutando lo siguiente:

cp /lib64/ld-linux-x86-64.so.2 /secure/jail/lib64/

información relacionada