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/のほうはなくてもログイン出来たのでいいのかな。
とりあえず削ってみた。