Solução
-
Adicione todos os usuários que devem poder reproduzir no grupo pulse-access
# adduser problemofficer pulse-access
-
Crie /etc/systemd/system/pulseaudio.service com o seguinte conteúdo:
[Service] Type=simple PIDFile=/var/run/pulse/pid ExecStart=/usr/bin/pulseaudio --daemonize=yes --system=yes --disallow-module-loading=yes --disallow-exit=yes [Install] WantedBy=multi-user.target
-
Habilite esse novo serviço systemd para que ele seja iniciado na inicialização:
# systemctl enable pulseaudio
-
Esteja ciente de que esta configuração é
- menos seguro (por exemplo, outros usuários podem ouvir seu microfone) A saída de som
- não será mais trocada automaticamente de e para fones de ouvido e
- pode impedir que o Bluetooth funcione. Veja também a seção Advertência abaixo.
-
Reinicializar
Causa
A razão pela qual o som gira é que o Pulseaudio é iniciado em cada login com privilégios de usuários e o sistema¹ não permite que outros usuários escutem o áudio de outros usuários.
Antecedentes da Solução
Pulseaudio
Para resolver este problema, o Pulseaudio deve ser iniciado com privilégios de root, para que seja executado como um daemon do sistema, do qual existe apenas para todos os usuários. Todos se conectarão a essa instância e poderão reproduzir e ouvir tudo o que os outros usuários reproduzirem ou gravarem.
O Pulseaudio não funcionará como root o tempo todo, mas vai cair esses privilégios e assumir o usuário pulse .
De man pulseaudio
User pulse, group pulse: if PulseAudio is running as a system daemon (see --system above) and is started as root the daemon will drop privileges and become a normal user process using this user and group. If PulseAudio is running as a user daemon this user and group has no meaning.
Note que "usuário daemon" não é o mesmo que "sistema deamon". O primeiro é como o Pulseaudio correu antes, o último é como ele será executado se as alterações forem aplicadas.
Para poder se conectar ao serviço do sistema Pulseaudio, você precisa ser um membro do grupo pulse-access .
Novamente em man pulseaudio
Group pulse-access: if PulseAudio is running as a system daemon (see --system above) access is granted to members of this group when they connect via AF_UNIX sockets. If PulseAudio is running as a user daemon this group has no meaning.
Serviço Systemd
Como um trabalho rápido, seria possível simplesmente matar todas as instâncias do "daemon de usuário" do Pulseaudio e então executar /usr/bin/pulseaudio --system=yes
. Isso iniciaria o Pulseaudio sem que ele se tornasse um daemon e de uma maneira mais insegura, mas poderia ser útil para uma verificação rápida de prova de conceito.
Para tornar isso persistente e para que o daemon do Pulseaudio inicie automaticamente na inicialização, ele precisa ser adicionado como um serviço systemd. Isto é o que o arquivo /etc/systemd/system/pulseaudio.service é para.
O Pulseaudio não iniciará um daemon de usuário² quando já encontrar um daemon do sistema, é por isso que essa solução funciona.
Advertência
A documentação oficial do Pulseaudio avisos contra o uso do Pulseaudio como um daemon do sistema . Alguns dos problemas mencionados são:
...one especially problematic thing from security point of view is module loading. Anyone who has access can load and unload modules. Module loading can be disabled, but then bluetooth and alsa hotplug functionality doesn't work...
(Isso significa que quando você plug-in fones de ouvido a saída de som não muda automaticamente de alto-falantes para fones de ouvido. O inverso também é verdade quando você remover os fones de ouvido. Ambos têm que ser feito manualmente.)
-
...much higher memory usage and CPU load in system mode...
(Pessoalmente eu não notei nenhuma mudança na carga embora.)
...all users that have access to the server can sniff into each others audio streams, listen to their mikes, and so on...
...you also lose a lot of further functionality, like the bridging to jack...
E, possivelmente, outras coisas que eu não entendo e, portanto, não me senti valeram a pena, incluindo aqui.
Nota sobre a resposta da empresa: : nenhuma das etapas descritas em sua resposta foi necessária para essa solução.
Recursos
¹ Se alguém puder explicar isso em detalhes, eu ficaria muito grato.
² Suposição [citação requerida]