mpd só pode usar o dispositivo de som alsa se for executado como root - como posso executá-lo também como root?

0

Eu tento rodar o mpd no fedora 23 usando alsa (pulseaudio removed). No entanto, ao executar o mpd como usuário "mpd", recebo

alsa_output: Error opening default ALSA device: Permission denied

Então eu corri como root do usuário, e está tudo bem. Ok, problema de permissão - é só que eu não entendo porque não funciona como usuário mpd - permissões parecem bem para mim:

/dev/snd:
total 0
crw-rw----+ 1 root audio 116,  0 Jan  1  1970 controlC0
crw-rw----+ 1 root audio 116, 16 Jan  8 20:38 pcmC0D0p
crw-rw----+ 1 root audio 116, 17 Jan  1  1970 pcmC0D1p
crw-rw----+ 1 root audio 116,  1 Jan  1  1970 seq
crw-rw----+ 1 root audio 116, 33 Jan  1  1970 timer
[root@sh02 ~]# grep audio /etc/group
audio:x:63:isaac,mpd
[root@sh02 ~]# getenforce 
Permissive

E é claro que tenho o rebootet apenas para garantir que tudo seja inicializado corretamente. Alguém tem uma idéia do que está faltando para deixar o MPD acessar meu dispositivo de áudio? Eu provavelmente poderia adicionar um pouco de acl para permitir acesso explícito ao mpd - mas, no meu entender, a associação ao grupo deveria ser suficiente ???

EDITAR Estas são as permissões do arquivo de configuração do mpd:

-rw-r-----. 1 root root system_u:object_r:mpd_etc_t:s0 13585 Jan  8 22:04 /etc/mpd.conf

Observe que o mpd pode ser executado como usuário mpd se estiver usando o plugin de saída de pulso. Mas como o pulso gaguejou e às vezes não começou, decidi não usar pulso, mas use a saída alsa.

Não há arquivos .mpdconf em nenhuma casa.

    
por Isaac 08.01.2016 / 20:56

2 respostas

2

A adição de acls para permitir explicitamente o acesso do mpd aos dispositivos de som resolveu o problema:

sudo setfacl -m u:mpd:rw /dev/snd/*

Bevor fazendo isso, os acls eram assim:

# file: dev/snd/controlC0
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/pcmC0D0p
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/pcmC0D1p
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/seq
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/timer
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

Como o mpd já era membro do grupo de áudio, esses acls deveriam ter sido suficientes. Eu darei a recompensa àquele capaz de explicar o que estava acontecendo aqui.

    
por 12.01.2016 / 20:33
-1

Você deve adicionar o usuário ao grupo de áudio:

usermod -aG áudio [usuário]

Efetue o logout ee volte. Você poderá usar o áudio.

    
por 26.03.2018 / 16:31