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
chroot以外ではpdwd
これは発生しません。bash
この問題をどのように解決できますか?
私は図書館のようなものをコピーするのを忘れましたか?質問がありますか?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
このディレクトリは、システムローカル用語情報の説明に使用されます。デフォルトでは、ncurses は ${HOME}/.terminfo を最初に検索し、次に /etc/terminfo(このディレクトリ)、/lib/terminfo、最後に /usr/share/terminfo を検索します。
空なので(ただし、多くのサイトで一般的な回答です)、ここは/usr/share/terminfo/
最近のリリースで/lib/terminfo/
良い場所のようです。
したがって、空でないディレクトリを次のようにchrootディレクトリにコピーします。
- /etc/terminfo/
- /lib/terminfo/
- /usr/share/terminfo/