[LAU] ALSA device not found by some users... why?

Tim Black timblack0 at gmail.com
Thu Feb 7 13:34:42 EST 2008


Thanks, Clemens. Right, initially /dev/snd/*, /dev/dsp*, and
/dev/audio* permissions were 600 root:root, and this is presumably set
by udev. In this state, mpd2 could not access the devices, but if when
I added mpd2 user to the root group it could, providing a somewhat
insecure kludgey solution to my problem. So I keep looking for another
solution...

Then I added the following lines to my
/etc/security/console.perms.d/50-default.perms:

<sound>=/dev/dsp* /dev/snd/* /dev/audio*
<console>  0666 <sound>      0600 root.audio

and now the permissions are 0666 root.audio by default. When I log in
as user tim, it appears that the permissions get changed to 0666
tim.audio. This should still be fine, bc my mpd2 user is in the audio
group, so *should* have read/write access. When I su mpd2, the
permissions listed are the same, but mpd2 can't access the devices. I
haven't tried actually logging in as mpd2 bc I didn't think it would
be any different. I will try that later, but this may all be a moot
point bc mpd2 is basically going to be a "server-only" user, with
SHELL=/sbin/nologin, so for all this, I've modified the user to use
bash just for testing purposes.

Interestingly, as mpd2, I get permission denied error when try to
access /dev/snd/pcmC0D0c, but as tim I get the expected error:

[mpd2 at servy tim]$ ls -la /dev/snd
total 0
drwxr-xr-x   2 root root      460 2008-02-06 22:17 .
drwxr-xr-x  15 root root     4520 2008-02-06 22:17 ..
crw-rw-rw-+  1 tim  audio 116, 17 2008-02-06 22:17 controlC0
crw-rw-rw-+  1 tim  audio 116, 22 2008-02-06 22:17 controlC1
crw-rw-rw-+  1 tim  audio 116, 12 2008-02-06 22:17 controlC2
crw-rw-rw-   1 tim  audio 116,  4 2008-02-06 22:17 controlC3
crw-rw-rw-+  1 tim  audio 116, 13 2008-02-06 22:17 midiC0D0
crw-rw-rw-+  1 tim  audio 116, 18 2008-02-06 22:17 midiC1D0
crw-rw-rw-   1 tim  audio 116,  3 2008-02-06 22:17 midiC3D0
crw-rw-rw-+  1 tim  audio 116, 16 2008-02-06 22:17 pcmC0D0c
crw-rw-rw-+  1 tim  audio 116, 15 2008-02-06 22:17 pcmC0D0p
crw-rw-rw-+  1 tim  audio 116, 14 2008-02-06 22:17 pcmC0D1p
crw-rw-rw-+  1 tim  audio 116, 21 2008-02-06 22:17 pcmC1D0c
crw-rw-rw-+  1 tim  audio 116, 20 2008-02-06 22:17 pcmC1D0p
crw-rw-rw-+  1 tim  audio 116, 19 2008-02-06 22:17 pcmC1D1p
crw-rw-rw-+  1 tim  audio 116, 11 2008-02-06 22:17 pcmC2D0c
crw-rw-rw-+  1 tim  audio 116, 10 2008-02-06 22:17 pcmC2D0p
crw-rw-rw-+  1 tim  audio 116,  9 2008-02-06 22:17 pcmC2D1c
crw-rw-rw-+  1 tim  audio 116,  8 2008-02-06 22:17 pcmC2D2c
crw-rw-rw-+  1 tim  audio 116,  7 2008-02-06 22:17 pcmC2D3c
crw-rw-rw-+  1 tim  audio 116,  6 2008-02-06 22:17 pcmC2D4p
crw-rw-rw-+  1 tim  audio 116,  5 2008-02-06 22:17 seq
crw-rw-rw-+  1 tim  audio 116,  2 2008-02-06 22:17 timer
[mpd2 at servy tim]$ cat /dev/snd/pcmC0D0c
cat: /dev/snd/pcmC0D0c: Permission denied [mpd2 at servy tim]$ exit exit
[tim at servy ~]$ cat /dev/snd/pcmC0D0c
cat: /dev/snd/pcmC0D0c: File descriptor in bad state

An interesting observation is that when the sound devices were owned
by root:root, when I add mpd2 user to root group, mpd2 can access the
sound devices. But when I change the sound device to be owned by
root:audio, adding the mpd2 user to audio group doesn't allow mpd2 to
access the devices! This tells me that there's more to this than the
device permissions. Any ideas?

Tim

-----Original Message-----
From: linux-audio-user-bounces at lists.linuxaudio.org on behalf of Clemens Ladisch
Sent: Thu 2/7/2008 12:18 AM
Cc: linux-audio-user at lists.linuxaudio.org
Subject: Re: [LAU] ALSA device not found by some users... why?

Tim Black wrote:
> User mpd2 needs access to ALSA devices bc I'm running MPD (music
> player daemon) as this user. When this daemon tries to access ALSA
> device hw:0,0, it gets an "Error opening ALSA device: hw:0,0 No such
> device" error.  (But if I run the daemon as 'tim' or root there are no
> such errors.)

When the device nodes in /dev/snd/ are created dynamically (with
udev), it's possible that their permissions are set by the udev rules
and do not come from the directory.

When you log in as mpd2, what are the permissions of the files in
/dev/snd/?  Do you get the expected result when doing "cat
/dev/snd/pcmC0D0c"?  (The expected result is "file descriptor in bad
state".)

Regards,
Clemens
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user at lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-user



More information about the Linux-audio-user mailing list