Não é possível executar o aplay como root!

5

Não que eu precise aplay como root, mas me deparei e me perguntei por que não deveria funcionar.

# aplay /home/bibek/apert.wav
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by
uid 1000! (This could e g happen if you try to connect to a non-root
PulseAudio as a root user, over the native protocol. Don't do that.) 
ALSA lib pcm_dmix.c:1024:(snd_pcm_dmix_open) unable to open slave
aplay: main:722: audio open error: No such file or directory

Eu posso ver que isso está me dando uma quantidade razoável de detalhes, mas eu ainda não entendo.

    
por Bibek_G 25.09.2015 / 05:09

2 respostas

2

Seu shell de root está vindo de su , certo? A variável de ambiente $XDG_RUNTIME_DIR está sendo herdada do shell do usuário. Você pode executar export XDG_RUNTIME_DIR="" antes de aplay para limpá-lo ou usar sudo -i em vez de su para obter um ambiente limpo.

    
por 25.09.2015 / 06:11
0

Não é que exista uma impossibilidade técnica, é uma medida de segurança incorporada, disponível frequentemente em aplicações que comunicam entre si e não devem ser executadas como root.

Sem essa medida, você teria que se certificar de que o protocolo não pode ser abusado (ou seqüestrado) para obter controle não intencional sobre o "outro lado", devido a algum bug (ainda não encontrado). Como o efeito disso pode ser mais grave se o programa do outro lado tiver privilégios de root, é mais fácil desaprová-lo desde o início.

    
por 25.09.2015 / 06:11

Tags