Fedora

以另一個使用者身份執行 Viber,同時使用“我的”X Server 的麥克風和揚聲器

  • April 22, 2014

我用GNOME執行Fedora ,最近安裝了Viber for linux。這非常好,一切正常。

由於Viber不是開源軟體,我決定以另一個使用者身份執行它,以確保它在沒有我的 concent 的情況下無法訪問我的文件,方法是創建一個user:group viber:viber。如果我嘗試從屬於我或任何其他使用者的Viber文件中打開,它無法讀取它們。目標實現但部分實現。現在,我偶然發現了另一個問題,即Viber僅適用於消息,當我嘗試撥打電話時,它說**它既找不到麥克風也找不到揚聲器?感覺我知道為什麼(我以自己的身份執行 X Server (GNOME),以自己的身份執行*Viberviber:viber(使用者:組)*)。

如何讓Viber同時執行viber:viber,讓它使用麥克風和揚聲器,同時執行 GNOME 會話myusername:myusername

SELinux 解決方案也很受歡迎,但有具體的例子!chroot不是解決方案,因為據我所知,它會導致與上述相同的問題。

編輯1:

執行它的exec是:su - viber -c /opt/viber/Viber

我不知道 Pulseaudio 在 Fedora 上作為音頻伺服器執行。

經過研究,我終於找到了一種在其他使用者之間共享音頻(麥克風和揚聲器)的方法,同時以普通使用者(我自己)而不是在系統模式下執行 Pulseaudio 。

為此,您只需將初始配置文件複製到您的主目錄:

cp /etc/pulse/default.pa  ~/.pulse/default.pa

之後,向其中添加以下配置選項 ( ~/.pulse/default.pa):

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1

現在,在您想要共享音頻的那些users/user下,在他們的主目錄(不是您的)中創建 Pulseaudio 自定義使用者配置文件~/.pulse/client.conf並添加以下選項:

default-server = 127.0.0.1

不要忘記重新啟動音頻伺服器或電腦/伺服器以應用新設置。

最終,我可以以另一個使用者身份執行Viberviber:viber ,並可以使用麥克風和揚聲器,同時將 GNOME 會話作為myusername:myusername.


在Fedora 20上成功測試。

您需要在系統模式下執行pulseaudio,並讓所有使用者訪問它,不幸的是,上游的Pulseaudio開發人員強烈反對這樣做。

這是一個 systemd 服務腳本,應該對上述內容進行改進:

# /etc/systemd/system/pulseaudio.service:
[Unit]
Description=PulseAudio Daemon
[Install]
WantedBy=multi-user.target
[Service]
Type=simple
PrivateTmp=true
ExecStart=/usr/bin/pulseaudio --system --disallow-exit

如果您想在啟用 SELinux 的情況下執行,這裡有一篇描述所需的 SELinux 規則的文章。

引用自:https://unix.stackexchange.com/questions/103999