Unix chroot刑務所シェル(sudoがあるかどうか?)

Unix chroot刑務所シェル(sudoがあるかどうか?)

現在私はchroot刑務所を作っています。だから私はいくつかの記事を読んだが、1つを除いてすべてが明確に見えます:chroot Jail Shell

あるソースでは、彼らは次の設定を作成しました(もちろん設定ははるかに大きいですが、これは私が問題のある部分です)。

刑務所にはいくつかのプログラムとライブラリがあります。
chroot刑務所フォルダは、ユーザーを作成する必要があります/jail/
刑務所私たちの新しい刑務所で。
したがって、ファイルを開き、/etc/sudoers次の行を作成します。

prison ALL=NOPASSWD: /usr/bin/chroot, /bin/su - prison  

/bin/chroot-shell次に、ユーザーがSSHに接続するときに使用する必要があるシェルで、このファイルを刑務所に作成します。内容は次のとおりです。

#!/bin/bash
/usr/bin/sudo /usr/bin/chroot /jail/ /bin/su - $USER "@"  

興味深いのは、リンクが.Expectedにコピーされたりコピーされたりしない/usr/bin/sudoことです。ユーザーがsftp(WinSCPなど)を使用してログインしようとすると機能します。ただし、SSHを介して端末を使用しようとすると(Puttyを使用するなど)、次の行で失敗します。 /bin/chroot/jail/

sudo: unknown uid 1001: who are you?

だから私の質問は次のようになります

  1. chroot刑務所を構成するこの方法は安全ではありませんか?収監された人を sudo プロフィールに入れることが私にとっては理解できないようです。それでは、その背後に隠れたアイデアは何ですか?/bin/bash刑務所にコピーして、ユーザーが自分のbin/chroot-shellsudoアイテムの代わりに使用するようにしたらどうなりますか?
  2. この方法がを使用するよりも安全であれば、どのように機能させることが/bin/bashできますか?最初のステップは、刑務所のディレクトリをコピーして移動することです。そうですか/usr/bin/sudo/usr/bin/chrootしかし、次は何ですか? sudoはユーザーを知りません...

私の不器用な英語力について謝罪し、助けてくれてありがとう。
ありがとう、
クリス

解決策
これまで私が読んだ記事の作成者がなぜ自分のシェルを作成し、刑務所のユーザーに特定のコマンドへのsudoアクセス権を与えようとしたのかわかりません。
ところで、この記事は2008年の記事と少し古いものです。
これで、刑務所に閉じ込められたユーザーのためのデフォルトシェルとしてシェルがあります/bin/bash(コマンドを使用chsh)。また、ライブラリ/lib/libdl.so.2 /lib/libc.so.6 /lib/ld-linux.so.2(私の場合は32ビットと64ビット)の両方が刑務所にあることを確認し、刑務所に閉じ込められたユーザーのユーザー名が正しいことを確認する必要がありました。これがなければ、ファイルのユーザーIDからユーザー名を取得する正しい方法はありませんpaswd
その後、ユーザーは動作しているシェルを使用して正しいSSH接続を開くことができ、コマンドラインはユーザーが誰であるかを知ることができます(行の先頭のデフォルト名とコマンドwhoami)。
今、すべてが正常です^^

ベストアンサー1

おすすめ記事