以另一個使用者身份執行 Viber,同時使用“我的”X Server 的麥克風和揚聲器
我用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
不要忘記重新啟動音頻伺服器或電腦/伺服器以應用新設置。
最終,我可以以另一個使用者身份執行Viber
viber: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 規則的文章。