chroot: '/bin/bash' 명령을 실행할 수 없습니다: 권한이 거부되었습니다.

chroot: '/bin/bash' 명령을 실행할 수 없습니다: 권한이 거부되었습니다.

특정 사용자로 chroot를 시도하고 있습니다. 한 사용자에게는 작동하지만 다른 사용자에게는 작동하지 않습니다. 무슨 일이 일어나고 있는지 모르겠습니다.

/etc/passwdchroot 디렉토리는 다음과 같습니다(관련 부분):

test0:x:1000:1000:test0:/home/test:/bin/bash
test1:x:1001:1001:test1:/home/test:/bin/bash
  • sudo chroot --userspec=test0 chroot_dir/ /bin/bash --login좋은 결과
  • sudo chroot --userspec=test1 chroot_dir/ /bin/bash --login설명하다chroot: failed to run command ‘/bin/bash’: Permission denied
  • /bin/bashchroot: 내 사용자 이름이 시스템에 있는 세부 정보입니다 -rwxr-xr-x 1 user user 455188 Sep 19 08:58.user

test1사용자에게 왜 작동하지 않는지에 대한 아이디어가 있습니까 ? 더 많은 정보가 필요하시면 문의해 주시면 올려드리겠습니다. 미리 감사드립니다.

답변1

사용자 네임스페이스 가 있는 경우 chroot(여기서는 사용자 네임스페이스가 없는 경우), 지정한 명령을 실행하는 데 필요한 디렉터리와 파일은 chroot지정한 사용자가 액세스할 수 있어야 합니다. 여기에는 다음이 포함됩니다.

  • chroot 루트;
  • bin그리고 bin/bashchroot에서;
  • lib그리고 거기에 사용된 라이브러리가 bash있다면 (그 라이브러리 ldd bin/bash가 무엇인지 알려줄 것입니다)
  • bash시작할 시기 home/test및 시작 스크립트( .bashrc필요한 경우 등).

실행하면 chmod -R 777이 모든 것이 확실히 해결됩니다. 사용자 ID 1001이 해당 파일을 읽고 실행할 수 있는 한 더 제한적인 권한을 사용할 수 있습니다. 시작을 허용 chmod -R 755 bin lib합니다 .chmod 755 .bash

관련 정보