9fans archive / 1995 / 12 / 59 prev next
From: G. David Butler gdb@dbS...
Subject: Permissions on names served by the kernel
Date: Wed, 20 Dec 1995 14:06:33 -0500
Hi all!
I am running into an interesting problem. I have been working on
getting the LP subsystem up using a PostScript printer connected
to the COM port of my PC cpu server. It all works great (after
creating a "postio" and fixing lpdaemon) from the cpu server console.
When printing from a terminal (yes tcpsend works now) or from
a cpu window on the terminal, the postio program can't do I/O to
/dev/eia0 since it doesn't have permissions.
The question. How do you change the permissions of a file that is
served by the kernel? Since the lpdaemon runs as "none" and the
permissions on #t/eia0 are 660 bootes bootes, it won't work.
Also, is there a problem binding something like '#t' in multiple
processes and doing I/O?
If the answer to the question is "you can't" (that is what it looks
like), it would seem my only alternative is to start up a process on
the cpuserver that keeps an eye on the print queue and fires up the
daemon. Perhaps using pipe(3) to synchronize the spooler and daemon?
I would like to see a discussion about unrelated namespace processes
binding '#|" for IPC. Does this work or does each bind create
another pair of fd's? There are some things about this local
namespace that makes one feel uncomfortable.
If anyone has a better idea or a different view of the whole issue,
I would appreciate any input.
(As soon as I get it all to work, I will make it available.)
Thanks.
db