[clue-tech] Parallel port access as non root user?

Jim Ockers ockers at ockers.net
Thu Sep 21 11:48:24 MDT 2006


Hi Ed,

Can you please recompile your program so it opens the correct device?

You wrote:
> > open("/dev/port", O_RDWR)               = -1 EACCES (Permission denied)

As you can see your process is trying to open /dev/port with major 1
minor 4 and permissions crw-------.  The open is failing with EACCES.
It seems you believe that your process is trying to open one of the
parallel port devices with major 6.  These are not the same device
class.  Major 1 is for memory devices according to /proc/devices.

There is a device handler registered in the kernel for devices with 
major 6 ("lp") according to /proc/devices, so opening one of the lp
devices would probably work.

Incidentally your /dev/parport devices are major 99 and are probably
handled by the parport_pc device but for some reason it doesn't show
up in /proc/devices.  (It doesn't on my PC either.)

Anyway I think the answer to your problem is that your program is 
opening /dev/port which is not the device you think it is opening.

Hope this helps,
Jim

Ed wrote:
> 
> Here ya go Jim. The lp device is loaded according to the /proc table.
> This is a RH ES4 system. I threw in a call to lsmod at the bottom.
> Sorry about the html before.
> 
> Thanks a ton.
> 
> Ed
> 
> [root at denali ed]# ls -al /dev/port
> crw-------  1 root kmem 1, 4 Sep 20 09:26 /dev/port
> [root at denali ed]# ls -al /dev/lp*
> crw-rw-rw-  1 root lp 6, 0 Sep 20 09:26 /dev/lp0
> crw-rw-rw-  1 root lp 6, 1 Sep 20 09:26 /dev/lp1
> crw-rw-rw-  1 root lp 6, 2 Sep 20 09:26 /dev/lp2
> crw-rw-rw-  1 root lp 6, 3 Sep 20 09:26 /dev/lp3
> [root at denali ed]# ls -al /dev/parport*
> crw-rw-rw-  1 root lp 99, 0 Sep 20 09:26 /dev/parport0
> crw-rw-rw-  1 root lp 99, 1 Sep 20 09:26 /dev/parport1
> crw-rw-rw-  1 root lp 99, 2 Sep 20 09:26 /dev/parport2
> crw-rw-rw-  1 root lp 99, 3 Sep 20 09:26 /dev/parport3
> [root at denali ed]# cat /proc/devices
> Character devices:
>   1 mem
>   4 /dev/vc/0
>   4 tty
>   4 ttyS
>   5 /dev/tty
>   5 /dev/console
>   5 /dev/ptmx
>   6 lp
>   7 vcs
>  10 misc
>  13 input
>  14 sound
>  29 fb
>  36 netlink
>  89 i2c
> 116 alsa
> 128 ptm
> 136 pts
> 162 raw
> 180 usb
> 226 drm
> 
> Block devices:
>   1 ramdisk
>   3 ide0
>   8 sd
>   9 md
>  65 sd
>  66 sd
>  67 sd
>  68 sd
>  69 sd
>  70 sd
>  71 sd
> 128 sd
> 129 sd
> 130 sd
> 131 sd
> 132 sd
> 133 sd
> 134 sd
> 135 sd
> 253 device-mapper
> 254 mdp
> 
> [root at denali ed]# /sbin/lsmod
> Module                  Size  Used by
> i915                   81541  2
> parport_pc             27905  1
> lp                     15405  0
> parport                37641  2 parport_pc,lp
> autofs4                22597  0
> i2c_dev                14273  0
> i2c_core               25921  1 i2c_dev
> sunrpc                142757  1
> button                 10449  0
> battery                12869  0
> ac                      8773  0
> md5                     8001  1
> ipv6                  240225  64
> joydev                 14209  0
> uhci_hcd               32729  0
> ehci_hcd               31813  0
> hw_random               9557  0
> snd_intel8x0           34921  2
> snd_ac97_codec         65169  1 snd_intel8x0
> snd_pcm_oss            52345  0
> snd_mixer_oss          21825  2 snd_pcm_oss
> snd_pcm                91973  2 snd_intel8x0,snd_pcm_oss
> snd_timer              27973  1 snd_pcm
> snd_page_alloc         13641  2 snd_intel8x0,snd_pcm
> snd_mpu401_uart        11329  1 snd_intel8x0
> snd_rawmidi            27749  1 snd_mpu401_uart
> snd_seq_device         11849  1 snd_rawmidi
> snd                    56997  11
> snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
> soundcore              12961  2 snd
> tg3                    95173  0
> dm_snapshot            20837  0
> dm_zero                 6337  0
> dm_mirror              28449  0
> ext3                  118729  2
> jbd                    59481  1 ext3
> dm_mod                 59973  6 dm_snapshot,dm_zero,dm_mirror
> ata_piix               13381  2
> libata                 57885  1 ata_piix
> sd_mod                 20545  3
> scsi_mod              116941  2 libata,sd_mod
> 
> Ed
> 
> 
> 
> 
> On 9/21/06, Jim Ockers <ockers at ockers.net> wrote:
> > Ed,
> >
> > I'm top-posting on purpose.  In the strace output below I saw this
> > line:
> >
> > open("/dev/port", O_RDWR)               = -1 EACCES (Permission denied)
> >
> > Could you please issue the following commands for me:
> >
> > ls -al /dev/port
> > ls -al /dev/lp*
> > ls -al /dev/parport*
> > cat /proc/devices
> >
> > I want to see the major & minor device numbers for each of those.  It
> > could be that your error message is due to opening a nonexistent
> > device or device for which the device driver is not loaded, or
> > something.
> >
> > By the way Ed can you just send text e-mails please?  The HTML isn't
> > necessary.
> >
> > Thanks,
> > Jim
> >
> > Ed Young wrote:
> > >
> > > ------=_Part_13109_30312243.1158856981302
> > > Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> > > Content-Transfer-Encoding: 7bit
> > > Content-Disposition: inline
> > >
> > > Jim,
> > >
> > > I've set /dev/lp0-3 and /dev/parport0-3 up as 0x666 and added myself to the
> > > lp group in /etc/group
> > >
> > > Check it out:
> > >
> > > [ed at denali k74-1.0]$ strace ./k74 all set
> > > execve("./k74", ["./k74", "all", "set"], [/* 30 vars */]) = 0
> > > uname({sys="Linux", node="denali.comcast.com", ...}) = 0
> > > brk(0)                                  = 0x9bfd000
> > > access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
> > > directory)
> > > open("/etc/ld.so.cache", O_RDONLY)      = 3
> > > fstat64(3, {st_mode=S_IFREG|0644, st_size=98174, ...}) = 0
> > > old_mmap(NULL, 98174, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f37000
> > > close(3)                                = 0
> > > open("/lib/tls/libc.so.6", O_RDONLY)    = 3
> > > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20_\251"..., 512) =
> > > 512
> > > fstat64(3, {st_mode=S_IFREG|0755, st_size=1454546, ...}) = 0
> > > old_mmap(0xa81000, 1219772, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
> > > 3, 0) = 0xa81000
> > > old_mmap(0xba5000, 16384, PROT_READ|PROT_WRITE,
> > > MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x124000) = 0xba5000
> > > old_mmap(0xba9000, 7356, PROT_READ|PROT_WRITE,
> > > MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xba9000
> > > close(3)                                = 0
> > > old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
> > > = 0xb7f36000
> > > mprotect(0xba5000, 4096, PROT_READ)     = 0
> > > mprotect(0xa7d000, 4096, PROT_READ)     = 0
> > > set_thread_area({entry_number:-1 -> 6, base_addr:0xb7f36940, limit:1048575,
> > > seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
> > > seg_not_present:0, useable:1}) = 0
> > > munmap(0xb7f37000, 98174)               = 0
> > > fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
> > > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> > > 0xb7f4e000
> > > write(1, "main start\n", 11main start
> > > )            = 11
> > > write(1, "OpenIO start\n", 13OpenIO start
> > > )          = 13
> > > open("/dev/port", O_RDWR)               = -1 EACCES (Permission denied)
> > > write(1, "past open\n", 10past open
> > > )             = 10
> > > dup(2)                                  = 3
> > > fcntl64(3, F_GETFL)                     = 0x8002 (flags O_RDWR|O_LARGEFILE)
> > > brk(0)                                  = 0x9bfd000
> > > brk(0x9c1e000)                          = 0x9c1e000
> > > fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
> > > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> > > 0xb7f4d000
> > > _llseek(3, 0, 0xbffc81c0, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
> > > write(3, "/dev/port: Permission denied\n", 29/dev/port: Permission denied
> > > ) = 29
> > > close(3)                                = 0
> > > munmap(0xb7f4d000, 4096)                = 0
> > > munmap(0xb7f4e000, 4096)                = 0
> > > exit_group(29)                          = ?
> > > Process 7617 detached
> > >
> > > Thanks,
> > >
> > > Ed
> > >
> > >
> > > On 9/21/06, Jim Ockers <ockers at ockers.net> wrote:
> > > >
> > > > Hi Ed,
> > > >
> > > > > I'm trying to access the parallel port (/dev/lp0) from a non root
> > > > process.
> > > > >
> > > > > Basically I have a program that can only access the port if it runs as
> > > > root.
> > > > >
> > > > > Here's what happens when I run as root:
> > > > > root at falcon:~/src/k74- 1.0# ./pprxtx all set
> > > > > root at falcon:~/src/k74-1.0# ./pprxtx read
> > > > > 255
> > > > > root at falcon:~/src/k74-1.0# ./pprxtx all clear
> > > > > root at falcon:~/src/k74-1.0# ./pprxtx read
> > > > > 0
> > > > >
> > > > > Here's what happens when I run as a non root user (ed):
> > > > > ed at falcon:~/src/k74-1.0$ ./pprxtx all set
> > > > > /dev/port: Permission denied
> > > > > ed at falcon:~/src/k74-1.0$ ./pprxtx read
> > > > > /dev/port: Permission denied
> > > >
> > > > Could you please run your pprxtx inside strace (maybe strace -f if it
> > > > forks) and let us know what system call fails with an EPERM?
> > > >
> > > > > /dev/lp0 I thought that all I had to do was to add my non rootport  user
> > > > to
> > > > > the device group (lp) in /etc/group and then that user would have
> > > > > permissions to read and write to that device.
> > > > > lp:x:7:cupsys, ed
> > > > >
> > > > > I also changed the device permissions to
> > > > >   /dev:
> > > > >   crw-rw-rw- 1 root lp 6, 0 2006-09-21 04:56 lp0
> > > > >
> > > > > I still can't access the port unless I run as root.
> > > > >
> > > > > If I change the /dev/port (I know,dangerously insecure) permissions to
> > > > >   /dev:
> > > > >   crw-rw-rw- 1 root kmem 1, 4 2006-09-21 04:56 port
> > > > >
> > > > > I then get:
> > > > > ed at falcon:~/src/k74-1.0$ ./pprxtx read
> > > > > /dev/port: Operation not permitted
> > > > > ed at falcon:~/src/k74-1.0$ ./pprxtx all set
> > > > > /dev/port: Operation not permitted
> > > >
> > > > Same for this - strace should expose the problem.
> > > >
> > > > --
> > > > Jim Ockers, P.Eng. (ockers at ockers.net)
> > > > Contact info: please see http://www.ockers.net/
> > > >
> > >
> > >
> > >
> > > --
> > > Ed
> > >
> > > ------=_Part_13109_30312243.1158856981302
> > > Content-Type: text/html; charset=ISO-8859-1
> > > Content-Transfer-Encoding: 7bit
> > > Content-Disposition: inline
> > >
> > > Jim, <br><br>I've set /dev/lp0-3 and /dev/parport0-3 up as 0x666 and added myself to the lp group in /etc/group<br><br>Check it out:<br><br>[ed at denali k74-1.0]$ strace ./k74 all set<br>execve(&quot;./k74&quot;, [&quot;./k74&quot;, &quot;all&quot;, &quot;set&quot;], [/* 30 vars */]) = 0
> > > <br>uname({sys=&quot;Linux&quot;, node=&quot;<a href="http://denali.comcast.com">denali.comcast.com</a>&quot;, ...}) = 0<br>brk(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x9bfd000<br>access(&quot;/etc/ld.so.preload&quot;, R_OK)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -1 ENOENT (No such file or directory)
> > > <br>open(&quot;/etc/ld.so.cache&quot;, O_RDONLY)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 3<br>fstat64(3, {st_mode=S_IFREG|0644, st_size=98174, ...}) = 0<br>old_mmap(NULL, 98174, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f37000<br>close(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0
> > > <br>open(&quot;/lib/tls/libc.so.6&quot;, O_RDONLY)&nbsp;&nbsp;&nbsp; = 3<br>read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20_\251&quot;..., 512) = 512<br>fstat64(3, {st_mode=S_IFREG|0755, st_size=1454546, ...}) = 0<br>old_mmap(0xa81000, 1219772, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xa81000
> > > <br>old_mmap(0xba5000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x124000) = 0xba5000<br>old_mmap(0xba9000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xba9000<br>
> > > close(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f36000<br>mprotect(0xba5000, 4096, PROT_READ)&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>mprotect(0xa7d000, 4096, PROT_READ)&nbsp;&nbsp;&nbsp;&nbsp; = 0
> > > <br>set_thread_area({entry_number:-1 -&gt; 6, base_addr:0xb7f36940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0<br>munmap(0xb7f37000, 98174)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0
> > > <br>fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0<br>mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4e000<br>write(1, &quot;main start\n&quot;, 11main start<br>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 11
> > > <br>write(1, &quot;OpenIO start\n&quot;, 13OpenIO start<br>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 13<br>open(&quot;/dev/port&quot;, O_RDWR)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -1 EACCES (Permission denied)<br>write(1, &quot;past open\n&quot;, 10past open<br>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 10
> > > <br>dup(2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 3<br>fcntl64(3, F_GETFL)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x8002 (flags O_RDWR|O_LARGEFILE)<br>brk(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x9bfd000<br>brk(0x9c1e000)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0x9c1e000
> > > <br>fstat64(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0<br>mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4d000<br>_llseek(3, 0, 0xbffc81c0, SEEK_CUR)&nbsp;&nbsp;&nbsp;&nbsp; = -1 ESPIPE (Illegal seek)
> > > <br>write(3, &quot;/dev/port: Permission denied\n&quot;, 29/dev/port: Permission denied<br>) = 29<br>close(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>munmap(0xb7f4d000, 4096)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>munmap(0xb7f4e000, 4096)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0
> > > <br>exit_group(29)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ?<br>Process 7617 detached<br><br>Thanks, <br><br>Ed<br><br><br><div><span class="gmail_quote">On 9/21/06, <b class="gmail_sendername">Jim Ockers</b> &lt;<a href="mailto:ockers at ockers.net">
> > > ockers at ockers.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Ed,<br><br>&gt; I'm trying to access the parallel port (/dev/lp0) from a non root process.
> > > <br>&gt;<br>&gt; Basically I have a program that can only access the port if it runs as root.<br>&gt;<br>&gt; Here's what happens when I run as root:<br>&gt; root at falcon:~/src/k74- 1.0# ./pprxtx all set<br>&gt; root at falcon
> > > :~/src/k74-1.0# ./pprxtx read<br>&gt; 255<br>&gt; root at falcon:~/src/k74-1.0# ./pprxtx all clear<br>&gt; root at falcon:~/src/k74-1.0# ./pprxtx read<br>&gt; 0<br>&gt;<br>&gt; Here's what happens when I run as a non root user (ed):
> > > <br>&gt; ed at falcon:~/src/k74-1.0$ ./pprxtx all set<br>&gt; /dev/port: Permission denied<br>&gt; ed at falcon:~/src/k74-1.0$ ./pprxtx read<br>&gt; /dev/port: Permission denied<br><br>Could you please run your pprxtx inside strace (maybe strace -f if it
> > > <br>forks) and let us know what system call fails with an EPERM?<br><br>&gt; /dev/lp0 I thought that all I had to do was to add my non rootport&nbsp;&nbsp;user to<br>&gt; the device group (lp) in /etc/group and then that user would have
> > > <br>&gt; permissions to read and write to that device.<br>&gt; lp:x:7:cupsys, ed<br>&gt;<br>&gt; I also changed the device permissions to<br>&gt;&nbsp;&nbsp; /dev:<br>&gt;&nbsp;&nbsp; crw-rw-rw- 1 root lp 6, 0 2006-09-21 04:56 lp0<br>&gt;<br>
> > > &gt; I still can't access the port unless I run as root.<br>&gt;<br>&gt; If I change the /dev/port (I know,dangerously insecure) permissions to<br>&gt;&nbsp;&nbsp; /dev:<br>&gt;&nbsp;&nbsp; crw-rw-rw- 1 root kmem 1, 4 2006-09-21 04:56 port<br>
> > > &gt;<br>&gt; I then get:<br>&gt; ed at falcon:~/src/k74-1.0$ ./pprxtx read<br>&gt; /dev/port: Operation not permitted<br>&gt; ed at falcon:~/src/k74-1.0$ ./pprxtx all set<br>&gt; /dev/port: Operation not permitted<br><br>Same for this - strace should expose the problem.
> > > <br><br>--<br>Jim Ockers, P.Eng. (<a href="mailto:ockers at ockers.net">ockers at ockers.net</a>)<br>Contact info: please see <a href="http://www.ockers.net/">http://www.ockers.net/</a><br></blockquote></div><br><br clear="all">
> > > <br>-- <br>Ed
> > >
> > > ------=_Part_13109_30312243.1158856981302--
> > >
> >
> >
> 
> 
> 
> -- 
> Ed
> 





More information about the clue-tech mailing list