I'll make it short.
Has anyone had a problem with a non-root user trying to access
/dev/cdrom?
I have an IDE cd-rw in my linux box (2.5.16), w/devfs enabled at boot.
2.5.16 compiled cleanly, and booted successfully. However, when running a
simple cd audio program, like workbone or xplaycd, neither are able to access
/dev/cdrom as a non-root user. my setup:
bradl@bellicha:~> ls -l /dev/cdrom
lr-xr-xr-x 1 root root 13 May 19 01:21 /dev/cdrom ->
cdroms/cdrom0
bradl@bellicha:~> ls -l /dev/cdroms/cdrom0
lr-xr-xr-x 1 root root 33 Dec 31 1969 /dev/cdroms/cdrom0 ->
../ide/host1/bus1/target0/lun0/cd
bradl@bellicha:~> ls -l /dev/ide/host1/bus1/target0/lun0/cd
brw-rw-rw- 1 root root 22, 0 Dec 31 1969
/dev/ide/host1/bus1/target0/lun0/cd
strace on workbone returns:
open("/dev/cdrom", O_RDONLY) = 3 "..., 55
ioctl(3, CDROMSUBCHNL, 0xbfffe654) = -1 EACCES (Permission denied)
rt_sigaction(SIGINT, {SIG_IGN}, {SIG_DFL}, 8) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_START, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
write(1, "\n", 1
) = 1
ioctl(0, SNDCTL_TMR_START, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_IGN}, 8) = 0
munmap(0x40017000, 4096) = 0
_exit(0) = ?
strace on xplaycd returns:
read(5, "/dev/ide/host0/bus0/target0/lun0"..., 4096) = 1003
read(5, "", 4096) = 0
close(5) = 0
munmap(0x4001a000, 4096) = 0
open("/dev/cdrom", O_RDONLY) = 5
ioctl(5, CDROMSUBCHNL, 0xbfffe584) = -1 EACCES (Permission denied)
close(5) = 0
ioctl(4, SOUND_MIXER_READ_CD, 0xbffff5b0) = 0
open("/etc/mtab", O_RDONLY) = 5
fstat64(0x5, 0xbfffddec) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x4001a000
read(5, "/dev/ide/host0/bus0/target0/lun0"..., 4096) = 1003
read(5, "", 4096) = 0
close(5) = 0
munmap(0x4001a000, 4096) = 0
open("/dev/cdrom", O_RDONLY) = 5
ioctl(5, CDROMSUBCHNL, 0xbfffe484) = -1 EACCES (Permission denied)
close(5) = 0
my current devfsd.conf has:
#
# Uncomment this if you want the old /dev/cdrom symlink
# (e.g. those specifying CD-ROM type, mouse port, modem port etc)
#
#LOOKUP ^cdrom$ CFUNCTION GLOBAL symlink cdroms/cdrom0 $devpath
#REGISTER ^cdrom/cdrom0$ CFUNCTION GLOBAL symlink cdroms/cdrom0 cdrom
#UNREGISTER ^cdrom/cdrom0$ CFUNCTION GLOBAL unlink cdrom
REGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL mksymlink $devname cdrom
UNREGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL unlink cdrom
Anything I'm missing here? This worked in 2.5.7, which, IIRC, used
devfs v211.
BL.
|