
ユーザーがログインすると、chroot の / (実機では /var/jail)から起動します。ホームディレクトリから起動するようにします。また、プロファイルファイル(.bash.rc など)をロードしていないようです。これchroot 環境を作成するためのチュートリアル。私の /etc/passwd は次のようになります。
test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash
私の /var/jail/etc/passwd ファイルは次のようになります:
test:x:1004:1008:,,,:/home/test:/bin/bash
また、削除すると
Match User test
ChrootDirectory /var/jail
AllowTCPForwarding no
X11Forwarding no
私の /etc/ssh/sshd_config から、ユーザーは正しいホーム フォルダーで起動し、bash 設定が読み込まれます。ただし、その部分を削除すると、chroot 環境から抜け出すことができます。これ以前私が尋ねた質問は多少関連しています。コマンドラインの見た目がおかしいのは、プロファイル ファイルがロードされていないことが原因だと思います。この問題を修正するアイデアはありますか?
答え1
小さな詳細を除いて設定は正しいです: のホーム ディレクトリには/etc/passwd
chroot パス部分を含めないでください。次のように変更します。
test:x:1004:1008:,,,:/home/test:/bin/bash
再起動しsshd
てもう一度お試しください。
からman sshd_config
:
Chrootディレクトリ
認証後に chroot(2) するディレクトリのパス名を指定します。パス名のすべてのコンポーネントは、他のユーザーまたはグループによって書き込みできない、ルート所有のディレクトリである必要があります。 chroot後、sshd(8)は作業ディレクトリをユーザーのホームディレクトリに変更します。
つまり、最初にsshd
を実行しchroot
(この場合はchroot /var/jail
)、次にsshd
ディレクトリをユーザーのホームディレクトリに変更します (この場合はcd /home/test
chroot 環境ではcd /var/jail/home/test
機能しません)。
Debian/Ubuntu を使用している場合 (言及したチュートリアルは Debian 用であるため)、/var/jail/etc/debian_chroot
「chroot」という内容のファイルを作成すると、ユーザー プロンプトに次のように括弧内に表示されます(chroot)test@servername:~$
。
(あなたの設定を Ubuntu 12.04 に複製し、/var/jail
ユーザー テストのエントリから削除した後、動作しました/etc/passwd
。)