Bash in chroot 奇怪的按键动作

Bash in chroot 奇怪的按键动作

我正在尝试设置一个仅包含 bash 的 chroot 环境。这是我到目前为止所拥有的:

[root@free]# tree .
.
├── bin -> usr/bin/
├── dev
├── etc
│   ├── bash.bash_logout
│   ├── bash.bashrc
│   ├── inputrc
│   └── profile
├── lib -> usr/lib/
├── lib64 -> usr/lib64/
├── proc
├── sys
└── usr
    ├── bin
    │   └── bash
    ├── lib
    │   ├── libc.so
    │   ├── libc.so.6
    │   ├── libdl.so
    │   ├── libdl.so.2
    │   ├── libncursesw.so.6
    │   ├── libreadline.so
    │   ├── libreadline.so.7
    │   ├── libreadline.so.7.0
    │   ├── libtinfo.so
    │   └── libtinfo.so.6
    └── lib64
        └── ld-linux-x86-64.so.2

11 directories, 16 files

ldd列出以下内容bash

[root@free]# ldd /bin/bash
    linux-vdso.so.1 (0x00007ffd388a3000)
    libreadline.so.7 => /usr/lib/libreadline.so.7 (0x00007fa6e0baa000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fa6e09a6000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007fa6e05ea000)
    libncursesw.so.6 => /usr/lib/libncursesw.so.6 (0x00007fa6e037d000)
    /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fa6e10d8000)

进入 chroot 环境已经可以工作了(I have no name!很好,因为我没有喷射复制 passwd 文件):

[root@free jail]# chroot .
[I have no name!@jail]#

问题 如果我输入p e backspace w d该行将如下所示:

[I have no name!@jail]#pe wd

用 Enter 执行将执行pwd并打印

/

箭头键(左和右)也表现得很奇怪,就像打印多个字符但不移动光标p d left w会导致pdwd.这不会发生在bashchroot 之外。

我怎样才能解决这个问题?

我是否忘记复制库或其他东西?有libreadline问题吗(我已经复制了etc/inputrc)?或者这可能是一个libncursesw问题?

答案1

我看了一下生成最小 chroot 的脚本并注意到您缺少/usr/share/terminfo/libcurses 使用的目录并处理终端命令序列。除了可能需要的一些其他文件(/etc/resolv.conf等)之外,这就是我要尝试的内容。

答案2

阅读/etc/terminfo/README,如上所示http://web.archive.org/web/20120621035133/http://www.ibb.net/~anne/keyboard/keyboard.html,帮助我找出 terminfo 的位置:

猫 /etc/terminfo/README

该目录用于系统本地 terminfo 描述。默认情况下,ncurses 将首先搜索 ${HOME}/.terminfo,然后是 /etc/terminfo(此目录),然后是 /lib/terminfo,最后是 /usr/share/terminfo。

由于/usr/share/terminfo/是空的(但在许多网站上都是常见的答案),在最近的发行版上,这似乎/lib/terminfo/是一个很好的位置。

因此,将非空目录复制到您的 chroot 目录,如下所示:

  • /etc/terminfo/
  • /lib/terminfo/
  • /usr/share/terminfo/

相关内容