web-dev-qa-db-ja.com

「私の」Xサーバーのマイクとスピーカーを使用しながら別のユーザーとしてViberを実行する

Fedora[〜#〜] gnome [〜#〜]で実行し、最近インストールしました Linuxの場合はViber 。それはとても良いです、そしてすべてがうまく働いています。

Viberオープンソースソフトウェアではないので、別のユーザーとして実行することにしましたuser:groupviber:viberを作成して、concentなしでファイルにアクセスできないようにします。私または他のユーザーに属するViberファイルの内部から開こうとすると、それらを読み取ることができません。 目標は達成されましたが、部分的にです。さて、別の問題に遭遇しました。それは、Vibermessagesそして私が電話をかけようとすると、それはマイクもスピーカーも見つからないということですか? 理由がわかっているように感じます(X Server(GNOME)をmyselfおよびViberとして実行しています)asviber:viber(user:group))。

Viberviber:viberとして実行すると同時に、GNOMEセッションの実行中にマイクとスピーカーを使用できるようにする方法as myusername:myusername

SELinuxソリューションも歓迎しますが、具体的な例があります! chrootは解決策ではありません。私が理解しているように、上記と同じ問題が発生するからです。

編集1:

それを実行するためのexecは次のとおりです:su - viber -c /opt/viber/Viber

6
Ilia Rostovtsev

FedoraでオーディオサーバーとしてPulseaudioが実行されていることに気づいていませんでした。

調査した結果、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

さて、オーディオを共有したいsers/userの下で、彼らのホームディレクトリ(あなたではない)にPulseaudioカスタムuser-configファイル~/.Pulse/client.confを作成し、次のオプションを追加します:

default-server = 127.0.0.1

新しい設定を適用するには、オーディオサーバーまたはコンピューター/サーバーを再起動することを忘れないでください。

最終的には、Viberを別のユーザーviber:viberとして実行し、GNOMEセッションをmyusername:myusernameとして実行しながら、マイクとスピーカーにアクセスできるようになります。


Fedora 2で正常にテストされました。

3
Ilia Rostovtsev

システムモードの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ルールを説明する投稿 があります。

4
robbat2

注意してください、/opt/viber/ViberにはSUIDがあり、GUIDビットが設定されています。それでもrootとして実行される可能性があります(ただし、テストはしていません)。

1
Seb