Bubblejail

提供: ArchWiki
2023年2月22日 (水) 22:09時点におけるKgx (トーク | 投稿記録)による版 (→‎Tips and tricks: 翻訳)
ナビゲーションに移動 検索に移動

関連記事

Bubblejail は、Bubblewrap ベースのサンドボックスユーティリティです。

Bubblejail はリソース指向のパーミッションモデルを持っています。例えば、x11 はサンドボックスに追加することができるリソースです。これにより、サンドボックスは X11 ディスプレイサーバにアクセスできるようになります。

Bubblejail はまた、セキュリティと許可モデルを強化するために seccomp と D-Bus フィルタリングを使用しています。

Bubblejailは、サンドボックスの作成と設定を可能にするグラフィカルなインターフェイスも備えています。

インストール

bubblejailAUR または bubblejail-gitAUR をインストールして下さい。

使い方

Bubblejail のサンドボックスは、インスタンスに分離されています。各インスタンスは、独立したホームディレクトリとパーミッションの設定です。

各インスタンスは通常1つのアプリケーションをサンドボックス化します。

インスタンスの作成

新しいインスタンスは、通常、利用可能なプロファイルから作成されます。プロファイルは、使用するデスクトップエントリとパーミッションの初期セットです。特定のアプリケーションにプロファイルがない場合、generic プロファイルまたは空のプロファイルを使用し、作成後に微調整することが可能です。

ノート: 使用するプロファイルは、初期のパーミッションのセットを決定します。パーミッションは作成後、自由に変更することができます。

グラフィカルインターフェイスの使用

Bubblejail Configuration アプリケーションを実行します。最初の画面の下の方に、Create Instance というボタンがあります。

コマンドラインの使用

たとえば、Firefox インスタンスを作成するには:

$ bubblejail create --profile firefox instance_name

実行中のインスタンス

デスクトップエントリの使用

インスタンスを作成すると、--no-desktop-entry オプションが使用されていない限り デスクトップエントリ が生成されます。

デスクトップエントリーは インスタンス名 bubble の名前を持ち、デスクトップ環境から起動することができます。

コマンドラインの使用

作成されたインスタンスは run サブコマンドで実行できます:

$ bubblejail run instance_name args

引数が渡されない場合、使用されるプロファイルに基づいてデフォルトの引数が使用されます。

args が渡された場合、その引数はサンドボックス内で実行されます。最初の引数はバイナリ名で、次の引数はこのバイナリに渡されます。

設定

インスタンスが作成されると、そのパーミッションとリソースを変更することができます。変更されたパーミッションを有効にするには、サンドボックスを再起動する必要があります。

サンドボックスの作成時に使用したプロファイルは、初期のパーミッションのセットにのみ影響します。しかし、特定のパーミッションを削除すると、対象となるアプリケーションが正しく動作しなくなる場合があります。

グラフィカルインターフェイスの使用

Bubblejail Configuration アプリケーションを実行します。最初の画面で、変更したいサンドボックスの名前をクリックします。すると、利用可能なすべての権限のリストと保存ボタンが表示されます。

コマンドラインの使用

Bubblejail では、設定ファイルを edit 環境変数 で定義されたエディタで開く EDITOR コマンドが提供されています。

$ bubblejail edit instance_name

Bubblejailは、その設定に TOML を使用しています。定義された辞書は特定のリソースに対するパーミッションを与え、辞書内のキー・バリュー・ペアは特定のリソースの設定を行います。

例えば:

[x11]

[home_share]
home_paths = [ "Downloads",]

この設定はサンドボックスが利用できる2つのリソース、x11 ウィンドウ システムとホームフォルダ内の ダウンロード ディレクトリを共有することを定義しています。

利用可能なサービスとオプションは bubblejail.services に記述されています。manページ にあります。

ヒントとテクニック

サンドボックス内でターミナルを実行する

run コマンドを使うと、すでに起動しているサンドボックスの中で端末を起動することができます。この端末はサンドボックスのデバッグに利用できます。

ターミナルアプリケーションは最小限のパーミッションを必要とするもの、例えば Alacritty のようにウィンドウシステムにのみアクセスできるものを使用することが推奨されます (x11 または wayland のどちらか)

$ bubblejail run instance_name alacritty

同様のアプリケーションでのプロファイルの再利用

アプリケーションにプロファイルがない場合でも、既存のプロファイルを持つ関連ソフトウェアがあれば、そのプロファイルを使用することができます。

例えば、chromium プロファイルは、qutebrowser などの chromium 由来のブラウザで使用することができます。

まず、chromium プロファイルを使用してインスタンスを生成しますが、デスクトップエントリの作成は無効にしてください。

$ bubblejail create --no-desktop-entry --profile chromium qutebrowser

これで、qutebrowser の デスクトップエントリ からデスクトップ エントリを作成できるようになりました。

bubblejail generate-desktop-entry --desktop-entry /usr/share/applications/org.qutebrowser.qutebrowser.desktop qutebrowser

これで、サンドボックス化された qutebrowser を qtebrowser bubble デスクトップ エントリで起動できるようになりました。

See also