問題タブ [chroot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Linux用のクロスコンパイルsysrootを作成するにはどうすればよいですか?
とを使用してGCCクロスコンパイラを構築しようとしてい--host=x86_64-apple-darwin10
ます--target=ppc64-linux
。
ターゲットのsysrootが必要です。私が利用できるのは、そのターゲットを起動してセットアップするように設計された.isoです。その上にrpmの巨大な山があります。
適切なrpmをOSXの空のディレクトリに正常に解凍し、そのsysrootを作成するLinuxの第一人者の呪文を知りたいです。
c - Cプログラミングでchroot関数を使用するには?
usr
Linuxで「chroot」コマンドを使用するには、などのファイルまたはディレクトリが必要であることを知っていますbin
。しかしchroot()
、C で関数を使用する場合、これらのファイルは必要ですか?
これが私のコードです。「hw.out」は「Hello、world」を出力するバイナリファイルです。コンパイルしてルートとして実行しましたが、「Hello, world」の出力に失敗しました。他に何をすべきですか?ありがとうございました!
ssh - chrootされたSSHで接続が成功した後、ユーザーは即座に切断されます
このチュートリアルに従って、SSH で Chroot を使用して刑務所を構成しました。
同じ問題を扱うStackOverflowで別の質問を見つけましたが、答えもうまくいきませんでした。
auth.log
ファイルには次のものが含まれます。
私のsshd_config
ファイルには以下が含まれています:
私の/home/thenewone
ディレクトリは所有されroot:root
ており、chrootされたシステムが含まれています(/home/thenewone/home/thenewone
所有者以外のすべてのファイルroot:root
)
接続が成功した後、単純に閉じる理由がわかりません。
ubuntu - ld.soが検索している場所をデバッグする方法
これは、 chrootがダイナミックリンクにどのように影響するかについての続きです。
私のプロセスはchrootを使用して自分自身を投獄します。ただし、後でロードされるライブラリ(Python拡張モジュールのインポートなど)を取得して、現在投獄されているプロセスに動的に正しくリンクするのに問題があります。難しさの一部は、ld.soで何が起こっているのかについて多くの洞察を持っていないことです。どこで検索しているのかわからないし、RPATHやLD_LIBRARY_PATHのようなものがchrootjailの内部と外部のどちらに関連しているかもわかりません。
ld.soを「verbose」モードで実行する方法はありますか?そこでは、検索されているパスをログに記録し、要求されたライブラリが見つかった場合はどこにありますか?
ruby - chroot を終了する方法
私はchrootすることができますDir.chroot
しかし、どうすればchrootから戻ることができますか?
python - Python。Unchrootディレクトリ
次のコマンドを使用してディレクトリをchrootしました。
前のディレクトリに戻る方法-chrootする前に?たぶん、ディレクトリをunchrootすることは可能ですか?
解決:
Phihagに感謝します。私は解決策を見つけました。簡単な例:
apache - php5-fpm で chroot の問題を解決する
私は Apache を使用しています (そして、顧客のために nginx または lighttpd に切り替えることができません)。他の多くのユーザーと同様に、次の変数に問題があります。
chroot が原因で、apache の mod_fastcgi から php5-fpm に渡される変数がめちゃくちゃになり、適切な変数と一致しません。
例を示しましょう。
それ以外の:
したがって、これらの変数から「/home/vhosts/hXXXX」を削除するだけでよいので、簡単に実行できます。
php.ini 内で auto_prepend_file ディレクティブを使用して、次のようなものを追加することを考えました。
これにより、正しい変数を設定できるようになりますが、2 つの問題があります。
- スクリプトの間違ったディレクトリにあるため、phpがまったく機能しないため(「入力ファイルがありません」)、ファイルを追加できません
- chroot 環境が /home/vhosts/hXXXX で行われ、さまざまなドメイン docroot が /home/vhosts/hXXXX/home/domains/domain.tld/ にあるため、仮想ホストにエイリアスを設定しても機能しないようです。エイリアスを使用しても、Apache は依然として間違ったパスを提供しています。
多くの人がnginxでそれを扱って問題を解決し(SCRIPT_FILENAMEとDOCUMENT_ROOTを編集できますが、Apacheは編集できません)、他の人がchroot内の適切なディレクトリツリーをシンボリックリンクして問題を解決しているのを見てきました。 . この最後の解決策は本当に最悪です。
それを行う別の方法は、このパッチを使用することですが、それを試してみても、何か問題が発生したようです: apxs2 -cia mod_fastcgi.cでコンパイルしようとすると、未定義のシンボルに関するエラーがスローされます: fcgi_config_new_static_server 、方法がわかりませんこれを修正します (静的にコンパイルしますか? apxs2 でそれを行うには?)
それについての最善の解決策は、手動で PHP にパッチを当てることのようですが、それが最もクリーンな方法であるかどうかはわかりません...!
c - chroot と chdir の後、対応する execv が失敗し、親プロセスに EACCESS を返します
C でユーティリティをサンドボックス化しようとしています。以下の手順に従いました。
file,directory, sharpoint
そのユーティリティのサンドボックス リソースをフォルダの下に作成しました/sandbox/myutil
。- 、と呼ばれる「c」コード
chdir("/sandbox/myutil")
からchroot("/")
。 - ユーティリティの実行可能ファイルが で入手可能で
/sandbox/myutil/bin/util.bin
あり、すべての依存ファイルが で入手可能であることを確認し/sandbox/myutil
ました。 - ユーティリティと呼ば
bin/util.bin
れるexecve("/bin/util.bin",arg, env);
ただし、/bin/util.bin
期待どおりに実行されていないため、プロセスはシグナル 18 を受信し、コード 13「EACCESS」を返します。
ただし、 を呼び出す代わりにchroot()
、chdir()
Cexecve()
コードchroot /sandbox/myutil /bin/util.bin
から、シェルから実行されるコマンドを使用すると、正常に動作します。
カーネル 2.6.17 を使用しています。
c - chroot監獄内でシェルコマンドを実行する方法
chroot jail 内でのシェル コマンドの実行に問題があります。次に例を示します。
問題はexecです。errnoによると、エラーは「そのようなファイルまたはディレクトリはありません」です。exec("/bin/ls", ...) を使用すると、同じエラーが表示されます
chroot監獄のため、「ls」は必要な共有ライブラリを使用できないと思います。
この問題を解決するための提案はありますか?
solaris - illumos/solaris で chroot を検出するには?
実行中の C プログラムは、illumos/solaris の「chroot」で実行されているかどうかをどのように検出できますか?
Linux、freebsd、hurd でいくつかのトリックを使用する Debian ユーティリティ [1] があります。
illumos/solaris でそれを行う方法は?