我有一个 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
手册后我发现bind
这是一个bash
内置的。所以我尝试使用builtin
像这样运行命令:
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]
如何在命令bind
中运行该命令以便为 chrootchroot
设置自定义?.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