891 x86_64でOpenSSH+Chroot できません

<<トップページへ

x86_64でOpenSSH+Chroot できません
日時: 2008/07/20 23:09
名前: tacco
いつもお世話になっています。

現在、下記URLを参照しつつ、x86_64でOpenSSH+Chrootを構築しています。
http://centossrv.com/openssh_chroot.shtml

さて、x86_64なので、上記URLのとおりに進めていたところ、
chroot-useraddで以下のようなエラーが出ました。

----------
[root@centos]# chroot-useradd xxxxxx
shell-init: error retrieving current directory: getcwd: cannot access parent directories: そのようなファイルやディレクトリはありません
Changing password for user xxxxxx.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
chdir: error retrieving current directory: getcwd: cannot access parent directories: そのようなファイルやディレクトリはありません
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `./lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
cp: cannot create regular file `lib/': ディレクトリです
----------

そこで、ちょっと違いますがfedorasrvのこちらのスレッドを参考にして、
http://fedorasrv.com/bbshtml/webpatio/833.shtml
chrootユーザ作成スクリプトを以下のように改変しました。
(一部抜粋、最後の13行のみ)

----------
# From some strange reason these 4 libraries are not in the ldd output, but without them
# some stuff will not work, like usr/bin/groups
mkdir ./lib(^o^)ココを追記
cp /lib/libnss_compat.so.2 lib/
cp /lib/libnsl.so.1 lib/
cp /lib/libnss_files.so.2 lib/
cp /lib/ld-linux.so.2 ./lib/
cp /lib/libc.so.6 lib/
cp /lib/libm.so.6 lib/
cp /lib/libpthread.so.0 lib/
cp /lib/librt.so.1 lib/
cp /lib/libthread_db.so.1 lib/

exit 0
----------

その結果、chroot-useraddの実行にはエラーが出なくなりましたが、
作成したchrootユーザでSSHログインしようとすると、

「/bin/bash: No such file or directory」

というエラーメッセージが表示され、ログインできません。
ただ、
「/home/xxxxxx/bin/bash」は存在しています。
ただし、
「/home/xxxxxx/usr/bin/bash」は存在していないので、
「/home/xxxxxx/bin/bash」をコピーしましたが、状況は同じでした。


なお、この時の
「/home/xxxxxx/lib」と
「/home/xxxxxx/lib64」の内容は以下のとおりです。


----------
[root@centos ~]# ls -al /home/xxxxxx/lib
合計 2304
drwxr-xr-x 2 root root 4096 7月 20 22:43 .
drwx------ 9 xxxxxx xxxxxx 4096 7月 20 22:43 ..
-rwxr-xr-x 1 root root 125736 7月 20 22:43 ld-linux.so.2
-rwxr-xr-x 1 root root 1597968 7月 20 22:43 libc.so.6
-rwxr-xr-x 1 root root 208352 7月 20 22:43 libm.so.6
-rwxr-xr-x 1 root root 99660 7月 20 22:43 libnsl.so.1
-rwxr-xr-x 1 root root 36348 7月 20 22:43 libnss_compat.so.2
-rwxr-xr-x 1 root root 46680 7月 20 22:43 libnss_files.so.2
-rwxr-xr-x 1 root root 125744 7月 20 22:43 libpthread.so.0
-rwxr-xr-x 1 root root 44060 7月 20 22:43 librt.so.1
-rwxr-xr-x 1 root root 29688 7月 20 22:43 libthread_db.so.1
----------

----------
[root@centos ~]# ls -al /home/xxxxxx/lib64
合計 4532
drwxr-xr-x 2 root root 4096 7月 20 22:42 .
drwx------ 9 xxxxxx xxxxxx 4096 7月 20 22:43 ..
-rwxr-xr-x 1 root root 28008 7月 20 22:42 libacl.so.1
-rwxr-xr-x 1 root root 17888 7月 20 22:42 libattr.so.1
-rwxr-xr-x 1 root root 1699880 7月 20 22:43 libc.so.6
-rwxr-xr-x 1 root root 10000 7月 20 22:43 libcom_err.so.2
-rwxr-xr-x 1 root root 48600 7月 20 22:43 libcrypt.so.1
-rwxr-xr-x 1 root root 1329816 7月 20 22:43 libcrypto.so.6
-rwxr-xr-x 1 root root 23360 7月 20 22:43 libdl.so.2
-rwxr-xr-x 1 root root 9472 7月 20 22:43 libkeyutils.so.1
-rwxr-xr-x 1 root root 615136 7月 20 22:42 libm.so.6
-rwxr-xr-x 1 root root 114352 7月 20 22:43 libnsl.so.1
-rwxr-xr-x 1 root root 141456 7月 20 22:42 libpthread.so.0
-rwxr-xr-x 1 root root 92736 7月 20 22:43 libresolv.so.2
-rwxr-xr-x 1 root root 53448 7月 20 22:42 librt.so.1
-rwxr-xr-x 1 root root 95464 7月 20 22:43 libselinux.so.1
-rwxr-xr-x 1 root root 247528 7月 20 22:43 libsepol.so.1
-rwxr-xr-x 1 root root 15584 7月 20 22:42 libtermcap.so.2
-rwxr-xr-x 1 root root 18152 7月 20 22:43 libutil.so.1
----------

以上、上記のような状況を回避された方がいらっしゃいましたらご教授いただきたく、
よろしくお願いいたします。m(_ _)m

Re: x86_64でOpenSSH+Chroot できません(1)
日時: 2008/07/23 01:57
名前: デブペンギン久保田
> 「/bin/bash: No such file or directory」
>
> というエラーメッセージが表示され、ログインできません。
> ただ、
> 「/home/xxxxxx/bin/bash」は存在しています。
> ただし、
> 「/home/xxxxxx/usr/bin/bash」は存在していないので、

表示が本当に「/bin/bash」だとすると、これは一般ユーザのホーム ディレクトリの配下のことではありません。

Re: x86_64でOpenSSH+Chroot できません(2)
日時: 2008/07/26 05:01
名前: tacco
>表示が本当に「/bin/bash」だとすると、これは一般ユーザのホーム ディレクトリの配下のことではありません。

なるほど、、、
という事は、ユーザ:xxxxxxでログインしようとすると、
「/bin/bash」から引こうとするんですね。

「/lib」と「/lib64」の関係性が今一つ理解できず、未だに悩んでいます。。。

Re: x86_64でOpenSSH+Chroot できません(3)
日時: 2009/05/24 22:23
名前: きん
URL: http://www.nhatban.net
x64環境で同じようなエラーになっていましたのでググッてたらこちらのスレッドにたどり着きました。

記事のchroot-useraddに対して下記のように修正し問題なくユーザ作成やログインできました。

# 修正前:
cp /lib/libnss_compat.so.2 lib/
cp /lib/libnsl.so.1 lib/
cp /lib/libnss_files.so.2 lib/
cp /lib/ld-linux.so.2 ./lib/
cp /lib/libc.so.6 lib/
cp /lib/libm.so.6 lib/
cp /lib/libpthread.so.0 lib/
cp /lib/librt.so.1 lib/
cp /lib/libthread_db.so.1 lib/

# 修正後:
cp /lib64/libnss_compat.so.2 lib64/
cp /lib64/libnsl.so.1 lib64/
cp /lib64/libnss_files.so.2 lib64/
cp /lib64/ld-linux-x86-64.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/

以上です。

Re: x86_64でOpenSSH+Chroot できません(4)
日時: 2010/05/03 14:12
名前: oberon
同じくx64環境で同じ問題に当たってました。
きんさんの修正内容で直りました。ありがとうございました。

※古いスレッドには返信できない場合があります


■関連コンテンツ




▲このページのトップへ戻る

ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします