
我正在使用 Parabola(基於 Arch),並且我想使用 firejail 來沙箱一兩個不太受信任的應用程式(特別是 Steam)。但是,當在 firejail 中運行應用程式時(即使使用 --noprofile 選項,該選項應該提供限制最少的沙箱),我聽不到任何聲音。我嘗試過 steam 和 Rhythmbox,但兩者都有相同的問題。
我有一張不限票這裡在 github 上。我正在使用pulseaudio,我懷疑這個問題可能與為什麼當我作為root用戶從終端運行相同的應用程式時也沒有聽到聲音類似(因為firejail本身需要超級用戶權限來設置沙箱,然後再移交給被監禁的申請)。
有沒有辦法可以為根用戶啟用pulseaudio中的聲音,這樣如果我以普通用戶身份登入桌面;su
在終端機中root;然後運行rhythmbox,聲音會播放嗎?我知道這一點現有答案;但是,它似乎對我不起作用(大概,只有當我以 root 身份登入整個桌面會話時,這才有效,但我不想這樣做)。
答案1
你嘗試過 apulse 套件嗎?
該程式提供了 PulseAudio API 的替代部分實作。它由一個載入器腳本和許多與原始 PulseAudio 具有相同名稱的共用程式庫組成,因此應用程式可以動態載入它們並認為它們正在與 PulseAudio 通訊。在內部,不使用單獨的聲音混合守護程序。相反,apulse 依賴 ALSA 的 dmix、dsnoop 和 Plug 插件來處理多個聲源並捕捉同時運行的串流。 dmix 外掛程式重複使用多個播放串流; dsnoop 插件允許多個應用程式從單一麥克風捕獲;和插頭插件透明地在各種樣本格式、取樣率和通道數之間轉換音訊。
apulse <program>
答案2
回答我自己的問題:我卸載了pulseaudio,現在聲音似乎在被firejailed的應用程式中運作得很好(大概他們現在直接使用ALSA)。我懷疑這個問題是因為pulseaudio不允許root用戶訪問伺服器;但是,firejail 需要 root 權限。