chroot를 시작할 때 bash 내장 `bind` 명령을 사용하십시오.

chroot를 시작할 때 bash 내장 `bind` 명령을 사용하십시오.

나는 chroot를 가지고 있고 chroot가 .inputrc시작 시 자체 파일을 갖고 프로그램을 실행하도록 하려고 합니다.

나는 chroot를 사용하여 부팅하는 데 익숙 chroot <PATH> <PROGRAM_TO_RUN>하므로 시도해 보았습니다.

chroot <PATH> bind -f <PATH_IN_CHROOT>/.inputrc && <PROGRAM_TO_RUN> 

하지만 오류가 발생합니다.

chroot: failed to run command ‘bind’: No such file or directory

설명서를 읽어 보니 이것이 내장 되어 있다는 것을 readline알았습니다 . 그래서 다음과 같이 실행 명령을 사용해 보았습니다 .bindbashbuiltin

chroot <PATH> builtin bind -f <PATH_IN_CHROOT>/.inputrc && <PROGRAM_TO_RUN> 

하지만 같은 오류가 발생했습니다.

chroot: failed to run command ‘builtin’: No such file or directory

&&테스트했기 때문에 chroot를 통해 두 프로그램을 함께 실행하는 것을 알고 있습니다.

~# chroot <PATH> echo "yo" && echo "Hi"
yo
Hi
~#

나는 또한 이 bind명령과 builtin명령이 chroot에서 독립적으로 작동한다는 것을 알고 있습니다:

~# chroot <PATH> bash
/# builtin -h
bash: builtin: -h: invalid option
builtin: usage: builtin [shell-builtin [arg ...]]
/# builtin bind -h
bash: bind: -h: invalid option
bind: usage: bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]
/# bind -h
bash: bind: -h: invalid option
bind: usage: bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]

chroot에 대한 사용자 정의를 설정하기 bind위해 명령에서 이를 어떻게 실행할 수 있습니까 ?chroot.inputrc

답변1

추측해 보세요:

다음과 같이 chroot에서 Bash 내장 명령을 실행하려고 합니다.

chroot <PATH> bind -f <PATH_IN_CHROOT>/.inputrc && <PROGRAM_TO_RUN>

그러나 chroot는 어떤 인터프리터도 실행하고 있지 않으며 이를 이해할 수 있습니다 bind.

chroot <PATH> bash -c "bind -f <PATH_IN_CHROOT>/.inputrc && <PROGRAM_TO_RUN>"

PS
앞에서 언급했듯이 @mosvy먼저 답변으로, 그 다음에는 주석으로 chroot를 호출하여 환경을 전달할 수 있습니다.

INPUTRC=/path/to/inputrc chroot <jail> bash 

관련 정보