x86-64サーバーでSSHのchroot設定

64ビットマシンでchroot-useraddを使ってユーザーを作った後ログインすると、

/bin/sh: No such file or directory

みたいなエラーが出ちゃうので、調べてみた。
どうもライブラリを見つけることができずに落ちてるっぽい。

lddコマンドでshに必要なライブラリを調べてみる。

[root@localhost]# ldd /bin/sh
        libtermcap.so.2 => /lib64/libtermcap.so.2 (0x0000003e25400000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003e24400000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003e24000000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003e23c00000)

そんなこんなで以下のように修正。

cp /lib64/libnss_compat.so.2 lib64/
cp /lib64/libnsl.so.1 lib64/
cp /lib64/libnss_files.so.2 lib64/
cp /lib/ld-linux.so.2 ./lib64/
cp /lib64/libc.so.6 lib64/
cp /lib64/libm.so.6 lib64/
cp /lib64/libpthread.so.0 lib64/
cp /lib64/librt.so.1 lib64/
cp /lib64/libthread_db.so.1 lib64/
cp /lib64/libdl* lib64/
cp -rf /lib64/tls/ lib64/
cp /lib64/libtermcap.so.2 lib64/
cp /lib64/ld-linux-x86-64.so.2 lib64/

exit 0

lib/のほうはなくてもログイン出来たのでいいのかな。
とりあえず削ってみた。