問題タブ [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.
installation - chrootjailの作成中にRPM-iがファイルを開くことができない
私はこのエラーを探し回っていますが、何も見つかりません。Centos 6.264ビットリリースでchrootjailを作成しようとしていますが、次のことを行っています。
これは言うのに失敗します:
詳細(-ivv)出力で同じことを実行します。
すべてのファイル/ディレクトリが存在し、それを修正することができないため、理由を見つけることができないようです。何かアドバイス?
ありがとうございました!
linux - Debianを安定してターゲットにするが、テストで開発する方法は?
Debian安定版(x86)専用に特別に開発されたC++アプリケーションがいくつかあります。
現在、これらのアプリケーションの開発もDebian安定版(x86)システムを使用して行われているため、開発者はターゲットシステムと同じライブラリバージョンをすべて使用できます。
ときどき、これらのコンポーネントで作業する必要があり、非常に古いバージョンのKDevelop(4.0.1と最新の4.4.1)で立ち往生していることに悩まされ続けます。開発に最新のシステム(最新のUbuntuやDebianテストなど)を使用したいのですが、ターゲットシステムに適したバイナリを作成するにはどうすればよいですか?
ターゲットプラットフォームでのみ使用可能なライブラリバージョンを使用するようにコンパイラ/リンカーに指示する簡単な方法はありますか?
私はEmdebianを見ましたとそれらのクロスコンパイルパッケージですが、これは私にはうまくいかないと思います。ARMのような他のアーキテクチャをターゲットにするためのパッケージしかないようです。
unix - プロセスを投獄した後に execlp を使用する
基本的に、jail プロセス内でシェル コマンドを実行したいと考えています。以下のコードを (通常のユーザーと root ユーザーの両方として) 試してみると、出力が生成されませんでした
perror() 関数を試してみたところ、「そのようなファイルまたはディレクトリはありません」というエラーが表示されました。ジェイルされたプロセスでシェルコマンドを実行することは可能ですか? もしそうなら、どうすればいいですか?
cross-compiling - chroot または仮想刑務所環境 -- クロスコンパイル用?
ホストUbuntuでARMターゲット用にコンパイルすることを楽しみにしています。
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=31&t=8478
上記のリンクは、chroot を使用し、プログラムをホスト上のターゲットのルートファイル システムに直接コンパイルするように述べています。
スクラッチボックスのような刑務所仮想環境を使用することを提案する人もいます。
特定のターゲット プラットフォーム用のクロス コンパイル環境のセットアップ
https://en.wikipedia.org/wiki/Chroot
1> chroot に対する仮想刑務所環境の正確な利点は何ですか?
2> chroot は、開いているすべての端末に影響しますか?それとも、コマンドが実行されている特定の端末に影響しますか?
3> スクラッチボックスや chroot のように、Jail のクロスコンパイルには正確に何を使用すればよいでしょうか。
android - Androidでinitシェルスクリプトを使用してchrootを実行することはできません
Android ICSEmulator内でglibcを実行したいのですが。glibcをAOSPルートフォルダーの別のフォルダーとしてバンドルし、Android.mkに以下の内容を含めます。
glibcフォルダー全体をout/target / product / generic /system/フォルダーにコピーします。そして、makesnodはそれをsystem.imgに含めます
startglibc.shおよびinit.shスクリプトがあり、それぞれ/ system/glibcおよび/system/ glibc /root/フォルダーにコピーされるglibcフォルダーがあります。
私はbusyboxをコンパイルして/system/bin/フォルダーにコピーしました。
/system/glibc/startglibc.shの内容は次のとおりです。
startglibc.shは、次のようにinit.goldfish.rcから呼び出されます。
以下のように、system / core / include / private / android_filesystem_config.hを使用して、init.shのファイル権限として777とroot:rootを付与しました。
起動時にstartglibc.shスクリプトが呼び出されますが、chrootの実行中に、パーミッション拒否エラーが発生します。
init.shを使用してchrootを実行するために何かが足りませんか?または、Android AOSPのビルド中にglibcフォルダーを間違ってコピーしていますか?
version-control - Crouton経由でChromebookでローカルにGoogleドライブにアクセスする
Croutonchroot環境( https://github.com/dnschneid/crouton )でSamsungChromebookを使用しています。これにより、Chromebookが開発者タイプの作業にどれほど実用的であるかという私の見方に革命が起こりました。大好きです。
しかし今、私はさまざまなPCとラップトップの間でファイルを同期させたいと思っています。gitを使用することは確かにオプションですが、手動で作業をチェックインする必要があります。忘れたらどうなりますか?私は最近、DropboxまたはGoogleドライブのいずれかを使用して、ファイルをすべてうまく同期させて自動的に維持することに甘んじています。ChromebookのCroutonの問題は、Googleドライブを使用してプロジェクトフォルダを同期するための明白な方法が見当たらないことです。ドライブはグーグル製品なので、もっと簡単なルートだと思います。しかし、Dropboxを機能させることができれば、それも素晴らしいことです。
誰かがこれを調べて、実行可能な解決策を見つけましたか?
linux - chroot の代替
ユーザーが Octave コード (基本的には Matlab) を実行できるようにする webapp (Ubuntu サーバー上で実行) に取り組んでいます。ただし、指定されたホームフォルダー内のフォルダーを読み取りまたは変更できるようにしたいだけです。
これを行う1つの方法であることは知っchroot
ていますが、安全ではなく、chrootするにはルート権限が必要です(理想的にはアプリが必要としません).
また、実行前にユーザーのコードを読み取って、ファイルに書き込もうとするとエラーをスローすることもできますが、そのためには、ユーザーがそれを防ぐためにルールを破る可能性があるすべての方法を考える必要があります。
Linux-VServerを見てきましたが、ユーザーごとに個別の仮想サーバーが必要になります (間違っていない限り)。
編集: SSH 接続をセットアップして接続を刑務所に入れることはできましたが、それは不必要にリソースを貪欲にしているようです。
を使用せずにユーザーまたはプロセスを特定のフォルダーに投獄する方法はありますchroot
か?
bind - chroot と bindfs に関する問題
Bindfsとchrootを使用すると、特別な問題 (おそらくバグ) が発生します。chroot監獄内で実行できるように、nodejsとそのすべての依存関係を含むサンプルサンドボックスディレクトリを作成しました。
さて、私は一時ディレクトリを作成し、その中にサンプル サンドボックスから次のディレクトリをマウントします。
- 置き場
- 開発者
- 等
- 含む
- ライブラリ
- lib64
- libexec
- ユーザー
ディレクトリをマウントするには、次のコマンド テンプレートを使用してbindfsを使用します
そのため、上記のディレクトリに移動してcd :new-sandbox
次のコマンドを実行します (65534 は nobody の uid です)。
次のエラー応答が表示されます
を実行するchroot . node
と、必要に応じてノード コンソールが表示されます。おもしろいのはls
、ディレクトリ内で実行すると、ファイルとフォルダーがユーザーによって所有されていることを示す次の応答が得られることですnobody
(bindfs コマンドで宣言したように)。
bindfs でマウントされたフォルダではなく、元のフォルダを持つプロトタイプ サンドボックス内で同じことをしようとすると、ユーザー nobody として実行してもすべて問題なく動作します。
なぜこれが起こるのか、どうすれば解決できるのか分かりますか? どうもありがとうございました。
PS Linux コンテナや仮想マシン、または私が使用したい技術に代わる他の技術を使用するように私に促さないでください。
arm - fakeroot/fakechroot を使用する ARM Linux rootfs でネットワークが機能しない
buildrootを使用してrootfsを作成しましたが、 glibcでcrosstool-ngツール チェーンを使用しています。これにより、必要な最小限のファイル セットが表示されました。次に、すべてのライブラリを、squeeze の.debパッケージから直接取得したものに置き換えました。次に、ミックスにandを追加しました(これも.debパッケージから)。、、およびファイルも好みに合わせて変更しました。これを私のデバイスにアップロードした後、多くのことが機能しています。 正しい場所に連れて行ってくれます。 ルートを返します。しかし、DNS に関連するものは何も機能していません。たとえば、不正なアドレスを返します。私はコピーしましたarmel
fakeroot
fakechroot
resolv.conf
hosts
nsswitch.conf
cd /
whoami
ping google.com
libnss_*とlibresolv のライブラリ、その他すべて必要だと思います。同じセットアップに入りますが、ホスト マシンでqemuとchrootを使用すると機能しますが、ターゲット デバイスで何が機能していないのかを把握しようとしています。
実行するstrace ping google.com
と、次のようになります。
多くのことがうまくいきました。実行可能ファイルとライブラリを検索するときに、/data/local/targetをパスに追加することがわかっていました。さまざまなlibnss_*ライブラリが検出され、ホスト ファイルが単純に ではないことがわかりました/etc/hosts
が、なぜ と の正しい場所が見つからなかったと思いますnsswitch.conf
かresolv.conf
? これは、fakechroot
私がそれをどのように使用しているかの問題または問題のようです。