
私は Parabola (Arch ベース) を使用しており、信頼性の低いアプリケーション (特に steam) を 1 つまたは 2 つサンドボックス化するために firejail を使用したいと考えています。ただし、firejail でアプリケーションを実行すると (制限が最も少ないサンドボックスを提供するはずの --noprofile オプションを使用しても)、音が聞こえません。steam と rhythmbox で試しましたが、どちらでも同じ問題が発生します。
オープンチケットを持っていますここgithub で。私は pulseaudio を使用していますが、同じアプリケーションをターミナルから root ユーザーとして実行したときに音が出ない理由と同じような問題であると思われます (firejail 自体が、jail されたアプリケーションに引き渡す前に、サンドボックスを設定するためにスーパーユーザー権限を必要とするため)。
デスクトップに通常のユーザーとしてログインし、su
ターミナルでルートになり、rhythmboxを実行すると、サウンドが再生されるように、pulseaudioでルートユーザーのサウンドを有効にする方法はありますか?私はこれを知っています既存の回答; ただし、私の環境ではうまくいかないようです (おそらく、これはデスクトップ セッション全体に root としてログインした場合にのみ機能しますが、これはしたくありません)。
答え1
apulse パッケージを試しましたか?
このプログラムは、PulseAudio API の代替部分実装を提供します。これは、ローダー スクリプトと、元の PulseAudio と同じ名前の共有ライブラリの数で構成されているため、アプリケーションはそれらを動的にロードして、PulseAudio と通信していると考えることができます。内部的には、個別のサウンド ミキシング デーモンは使用されません。代わりに、apulse は ALSA の dmix、dsnoop、および plug プラグインを使用して、複数のサウンド ソースを処理し、同時に実行されるストリームをキャプチャします。dmix プラグインは複数の再生ストリームを多重化し、dsnoop プラグインは複数のアプリケーションが単一のマイクからキャプチャできるようにします。plug プラグインは、さまざまなサンプル形式、サンプル レート、およびチャンネル番号間でオーディオを透過的に変換します。
apulse <program>
答え2
自分の質問に答えると、pulseaudio をアンインストールしたところ、firejail されたアプリケーションでサウンドが正常に動作するようになったようです (おそらく、ALSA を直接使用しているのでしょう)。この問題は、pulseaudio が root ユーザーのサーバー アクセスを許可していないために発生したと思われます。ただし、firejail では root 権限が必要です。