동일한 터미널에서 chroot Jail과 Host 사이를 전환합니다.

동일한 터미널에서 chroot Jail과 Host 사이를 전환합니다.

Ubuntu 14.04 시스템에 chroot 감옥을 만들었습니다.슈루트그리고부팅 방지 프로그램.

이제 기본 환경과 chroot 사이를 전환하는 쉘 스크립트를 작성하고 싶습니다.

쉘 스크립트에서 직접 명령을 작성하면 chroot로 전환할 때 중단됩니다.

예를 들어:

...
sudo chroot /JAIL #folder to chroot
echo "Chrooted now"
...

chroot 폴더 /JAIL로 전환했지만 에코로 출력을 얻지 못합니다. 이 출력은 chroot에서 호스트로 종료할 때만 인쇄됩니다. 나는 이것이 chroot 감옥에 들어갈 때 사용자를 변경하는 것과 관련이 있을 수 있다고 생각했습니다.

그래서 이 질문에 언급된 해결책을 시도했습니다.단일 터미널에서 사용자를 빠르게 전환하는 방법은 무엇입니까? 나도 읽었다여기 문서하지만 그들을 작동시킬 수는 없었습니다.

이상적으로는 다음과 같은 흐름을 가진 쉘 스크립트를 원합니다.

  1. chroot 투옥
  2. 거기서 뭔가 좀 해라
  3. 호스트로 다시 이동
  4. 여기서도 뭐 좀 해라
  5. chroot 등으로 돌아갑니다.

답변1

종료 echo후 실행되는 이유는 sudo사용자 변경과는 아무런 관련이 없습니다.

스크립트를 단순화해 보겠습니다.

...
cat
echo "After cat"
...

이 명령은 echo작성하는 다른 모든 명령 시퀀스와 마찬가지로 완료되면 실행됩니다.cat

chroot 내에서 특정 명령을 실행하려면 해당 명령을 chroot에 인수로 전달해야 합니다.

/bin/bash로그인 쉘이 있으면 다음 명령을 수행하십시오.

chroot /dir

동등하다

chroot /dir /bin/bash -i

이는 대화형 쉘이 시작됨을 의미합니다. chroot에서 액세스할 수 있는 쉘 스크립트를 생성하거나 명령줄에서 이를 지정하여 특정 명령을 실행할 수 있습니다.

chroot /dir /path/to/script

chroot /dir /bin/bash -c 'some commands; more commands'

chroot스크립트나 명령줄이 백그라운드에서 프로세스를 시작할 수 있지만 프로그램은 항상 명령이 완료될 때까지 기다립니다.

답변2

chroot 다음에 명령을 작성하세요.

chroot /jail /path/to/some/command <parameters>

두 번째 줄 man chroot:

이름 chroot - 특수 루트 디렉토리를 사용하여 명령이나 대화형 쉘을 실행합니다.

요약 chroot [옵션] NEWROOT [명령 [ARG]...]

관련 정보