Pulseaudio/X 权限其他用户/SSH

Dan*_*ele 6 linux x11 pulseaudio authorization

我的用户 user1 正在运行一个图形 X 会话,每个用户都配置了脉冲。

我需要运行一个使用 user2 音频的图形程序。

  • 如果我做的su user2; program程序没有启动并且我没有音频也没有视频

  • 如果我这样做gksu -u user2 program,视频可以正常工作,但没有音频。

为什么会出现这些问题?启动脉冲应用程序的正确方法是什么,该应用程序会根据用户的脉冲输出声音?从另一个会话(例如 SSH shell)启动 X/audio 应用程序的正确方法是什么?

Fre*_*sel 2

作为“用户2”

echo "default-server = unix:/tmp/pulse-socket" >> ~user2/.config/pulse/client.conf
Run Code Online (Sandbox Code Playgroud)

作为“用户1”

echo "load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse-socket" >> ~user1/.config/pulse/default.pa
Run Code Online (Sandbox Code Playgroud)

然后重新启动服务器:

pulseaudio --kill
pulseaudio --start
Run Code Online (Sandbox Code Playgroud)

与“su”(或“su -l”)配合使用效果很好。我还没有尝试过“ssh”,但它应该起到同样的作用。

您还可以使用 module-native-protocol-unix 的选项来限制访问,如下所示:

load-module module-native-protocol-unix auth-group=othergroup socket=/tmp/pulse-socket
Run Code Online (Sandbox Code Playgroud)

来源:

请参阅 Arch Wiki 段落 允许多个用户同时使用 PulseAudio

  • 我敢打赌所有的 shell 也会做同样的事情。即“~”,如果没有额外的字符使用,将被 HOME 环境的内容替换。多变的。如果与额外字符一起使用,这些额外字符将被视为潜在的用户名。如果用户名是实际用户,则“~username”将替换为用户名主目录路径,例如“~foo”->“home/foo”。所以,是的,我给出的路径是正确的。当然,“用户1”和“用户2”仅仅是示例。 (2认同)
  • 如果您输入“man bash”搜索“波浪号前缀” (2认同)