mpd kann alsa sound device nur verwenden, wenn es als root ausgeführt wird - wie kann ich es als non-root ausführen?

1408
Isaac

Ich versuche, mpd auf fedora 23 unter Verwendung von alsa auszuführen (Pulseaudio entfernt). Wenn ich jedoch mpd als Benutzer "mpd" betreibe, bekomme ich

alsa_output: Error opening default ALSA device: Permission denied 

Also habe ich es als Benutzer root ausgeführt und alles ist in Ordnung. Ok, Berechtigungsproblem - es ist nur so, dass ich nicht verstehe, warum es nicht als Benutzer mpd funktioniert - Berechtigungen sehen gut aus:

/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 

Und natürlich habe ich rebootet, nur um sicherzustellen, dass alles richtig initialisiert wird. Hat jemand eine Idee, was fehlt, damit mpd auf mein Audiogerät zugreifen kann? Ich könnte wahrscheinlich etwas acl hinzufügen, um mpd expliziten Zugriff zu erlauben - aber nach meinem Verständnis sollte die Gruppenzugehörigkeit ausreichen ???

BEARBEITEN Dies sind die Berechtigungen der mpd-Konfigurationsdatei:

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

Beachten Sie, dass mpd als Benutzer mpd ausgeführt werden kann, wenn Sie das Pulsausgangs-Plugin verwenden. Da der Impuls jedoch stotterte und manchmal nicht startete, entschied ich mich, den Impuls nicht zu verwenden, sondern den alsa-Ausgang zu verwenden.

Es gibt keine .mpdconf-Dateien in einem Heim.

0
Haben Sie zu Hause eine Datei mit dem Namen `~ / .mpdconf`? Wenn ja, welche Berechtigungen hat es? Welche Berechtigungen hat die Datei `/ etc / mpd.conf`? nKn vor 8 Jahren 0
Ich habe meine Frage mit den angeforderten Informationen aktualisiert. Isaac vor 8 Jahren 0

2 Antworten auf die Frage

2
Isaac

Durch das Hinzufügen von acls, um mpd explizit den Zugriff auf die Soundgeräte zu ermöglichen, wurde das Problem gelöst:

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

Bevor dies getan wurde, waren die acls so:

# 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::--- 

Da mpd bereits Mitglied der Audiogruppe war, hätten diese acls ausreichend sein sollen. Ich werde die Belohnung demjenigen geben, der erklären kann, was hier vor sich ging.

-1
Jamey

Sie müssen den Benutzer der Audiogruppe hinzufügen:

usermod -aG audio [Benutzer]

Abmelden und wieder ein. Sie sollten Audio verwenden können.

Bitte lies die Frage richtig. Der Benutzer war bereits Mitglied der Audiogruppe. Es hat nicht funktioniert, obwohl es laut Gruppenberechtigungen hätte. Deshalb habe ich diese Frage zuerst gestellt :) Isaac vor 6 Jahren 0