Bubblejail
関連記事
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 デスクトップ エントリで起動できるようになりました。