現在私は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?
だから私の質問は次のようになります
- chroot刑務所を構成するこの方法は安全ではありませんか?収監された人を sudo プロフィールに入れることが私にとっては理解できないようです。それでは、その背後に隠れたアイデアは何ですか?
/bin/bash
刑務所にコピーして、ユーザーが自分のbin/chroot-shell
sudoアイテムの代わりに使用するようにしたらどうなりますか? - この方法がを使用するよりも安全であれば、どのように機能させることが
/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
)。
今、すべてが正常です^^