問題タブ [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 - 内部からchroot監獄を検出する
root権限なしでchroot監獄にいることをどのように検出できますか? 標準の BSD または Linux システムを想定しています。私が思いついた最善の方法は、「/」の inode 値を見て、それがかなり低いかどうかを検討することでしたが、より正確な検出方法が必要です。
[edit 20080916 142430 EST]
/boot や /dev などを複製して投獄されたユーザーをだますことは難しくないため、ファイルシステムを調べるだけでは十分ではありません。
[edit 20080916 142950 EST]
Linux システムの場合、/proc 内の予期しない値をチェックすることは合理的ですが、そもそも /proc をサポートしていないシステムについてはどうでしょうか?
bash - chroot + execvp + バッシュ
アップデート
とった!私の解決策を参照してください(5番目のコメント)
これが私の問題です:
「jail」と呼ばれる小さなバイナリを作成し、/etc/password でテスト ユーザーのデフォルト シェルにしました。
-- 単純化された -- ソース コードは次のとおりです。
まあ、どんなに頑張っても、テスト ユーザーがログインしたときに、/bin/myscriptが読み込まれないようです。同様に、.bashrc
ユーザーのホーム ディレクトリにファイルをドロップすると、それも無視されます。
なぜこれらの人をスノッブするのですか?
--
必ずしも関連するわけではありませんが、コメントで指摘されたいくつかの点を明確にするために、いくつかの精度を示します。
- 「jail」バイナリは実際には suid であるため、chroot() を正常に実行できます。
- 'ln' を使用して、適切なバイナリを利用できるようにしました - 私の独房はうまく埋められています :)
- 問題は、ユーザーを chroot することではないようです...何か他のものが見落とされています。
testing - debian / ubuntuパッケージをテストするためにどのような方法を使用していますか?
私はあなたが構築しているパッケージ、特にデーモンを生成したり、init.dをいじったりするパッケージをテストすることについて話している。
ある種のchrootにログインしますか?仮想化されたディストリビューションを作成して破棄しますか?次回テストを実行するときに開発マシンを汚すことなく、ランタイムの依存関係とテストスイートをどのようにテストしますか?
python - Pythonとos.chroot
私は趣味のプロジェクトとしてPythonでWebサーバーを書いています。コードは*NIXマシンを対象としています。私はLinuxでの開発に不慣れであり、Python自体にも不慣れです。
私がウェブサイトを提供するために使用しているフォルダから人々が抜け出すのが心配です。これを行う最も明白な方法は、/../../ etc/passwdのようなドキュメントのリクエストをフィルタリングすることです。しかし、私が気付いていないディレクトリツリーを上る賢い方法があるかもしれないので、結果として私のフィルターが捕まえられないのではないかと心配しています。
ルートディレクトリがWebサイト自体になるように、os.chrootを使用して追加することを検討しています。これは、これらの脱獄攻撃から保護するための安全な方法ですか?これを行うことで、将来私を傷つける可能性のある落とし穴はありますか?
mysql - openBSD で chroot された Apache+MsSQL。サーバーの完全修飾ドメイン名を判別できませんでした
php は、2 番目のサーバー上のデータベースを使用して Web サーバー上で GIF を生成します。ページには 20 個の GIF が表示されるため、短時間の負荷がかかります (複数の接続)。
一部の GIF は読み込まれますが、一部は読み込まれません。/var/www/logs/error_log
私が/var/www/logs/error_log
見つけたMySQLサーバーで:
MySQLサーバーを再起動すると、問題が「解決」されます...数日間。
2 つのサーバーは、OpenBSD、chroot された Apache、および MySQL + phpMyAdmin を実行する仮想マシンです。残念ながら異なるバージョン (OpenBSD 4.2(web) と 3.9(mysql)) で
/var/www/conf/httpd.conf
and my.cnf
(見つけられなかった)に関する私の知識 は非常に限られています。
何か案は ?
permissions - Debian Lenny のアクセス制御リスト
そのため、私のサーバーでホストされているサイトを持つクライアントのために、/home 内に標準のホーム フォルダーを持つユーザー アカウントを作成します。
collective
私は本当に別の FTP サーバーを使用することに反対しているので、すべてのユーザーに対して SSH 刑務所をセットアップします。次に、ACL をインストールし、acl を my に追加しました/etc/fstab
。すべて問題ありません。
- と に cd し
/home
ますchmod 700 ./*
。- この時点で、ユーザーは他のユーザーのホームディレクトリを見ることができません (yay) が、apache もそれらを見ることができません (ブー)
- . 私は走っ
setfacl u:www-data:rx ./*
た。個々のディレクトリも試しました。 - これで、apache はサイトを再び見ることができますが、すべてのユーザーも同様です。ACL により、ホーム フォルダのアクセス許可が に変更されました
750
。
Apache がユーザーのホーム フォルダーでホストされているサイトを表示できるように ACL を設定するにはどうすればよいですか? 2. ユーザーは自分の家の外や他のユーザーのファイルを見ることができません。
qt - 32ビット*および*64ビットQtアプリ開発に最適なUbuntuセットアップ?
qtベースのアプリケーションを開発していますが、同じマシンで32ビットバージョンと64ビットバージョンの両方のアプリケーションを開発し、同じソース、スクリプトなどを共有したいと思います。マシンはUbuntu Jaunty 64ビット、Intel Core i7、 8GBのRAM。VMWareまたはVirtualBoxを実行することで動作する可能性があることは承知していますが、プロセッサ(i7)を最大限に活用したいので、良い解決策ではないようです。chrootされた環境について読んだところ、探していたセットアップである可能性があります。ビルドしたばかりの実行可能ファイルを実行できるようにするには、開発マシンも必要です。
それについて何か経験はありますか?64ビットホストでこのような32ビットchroot環境をセットアップしましたか?それはうまくいきますか?正しく設定するには?
c - Windows サーバー アプリケーションの fork/chroot に相当するもの
Linux で実行する C 言語で小さなカスタム Web サーバー アプリケーションを作成しました。アプリケーションがリクエストを受け取ると、fork() を呼び出し、別のプロセスでリクエストを処理します。このプロセスは、利用可能にしたいファイルを含む特定のディレクトリに chroot されます。
アプリケーションを Windows に移植したいのですが、このプラットフォームでは fork() も chroot() も利用できず、直接同等のものもないようです。Windows でこの機能を提供する単純な (そしてできれば適切に記述された) コードの例を教えてください。私のCはそれほど良くないので、単純であるほど良い.
linux - ユーザーが特定のフォルダーのみにアクセスできるように制限する方法
Ubuntu サーバーがインストールされており、サーバーでホストされているクライアントのサイトへのアクセスを許可する必要があります。現在、2 つのサイト、つまり 2 つのフォルダーがあります。
次のコマンドでユーザーを作成できました。
ただし、このユーザーを特定のフォルダーのみを表示するように制限する方法が見つかりません。少なくとも、ユーザーをサーバー上の 1 つのフォルダーのみに制限する方法を教えていただければ幸いです。
少しグーグルで検索したところ、chroot に関する情報が見つかりました。私が正しく理解していれば、これは文字通りユーザーの新しいルートを作成し、最終的に特定のフォルダーを制限することを意味します。しかし、私は Linux の専門家ではないので、うまく使えませんでした。
よろしくお願いします