Date: Sun, 03 Mar 2002 12:47:03 -0800 From: Julian Elischer <julian@elischer.org> To: Poul-Henning Kamp <phk@critter.freebsd.dk> Cc: David Malone <dwmalone@maths.tcd.ie>, cjclark@alum.mit.edu, current@FreeBSD.ORG Subject: Re: devfs(5) Permissions Message-ID: <3C828BC7.22A80633@elischer.org> References: <25568.1015186619@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp wrote:
>
> In message <20020303201018.GA88366@hamilton.maths.tcd.ie>, David Malone writes:
> >On Sun, Mar 03, 2002 at 05:36:04PM +0100, Poul-Henning Kamp wrote:
> >> In message <20020303083136.A84637@blossom.cjclark.org>, "Crist J. Clark" writes
> >> :
> >> >I've checked the manpages, the files in /etc, and Googled, and I can't
> >> >find the answer. I am begining to worry there isn't one. How does one
> >> >change the permissions on dynamically created devices? That is, when
> >> >the node comes into existence, it has the permissions I want, and not
> >> >necessarily the defaults.
> >>
> >> The overall plan is that it will be possible to push a ruleset into
> >> the kernel which changes the defaults. ETA: this summer (If I have to
> >> do it, if somebody wants to help code it it can probably be done faster).
> >
> >I have a very similar problem trying to sync my Handspring Visor
> >as a regular user 'cos the devices only come into existance when
> >you press the sync button.
> >
> >Do you have any designs for this ruleset stuff? From what you said
> >at BSDconEurope it will have to be fairly complicated to achieve
> >the your aim of being better than a static permission for a given
> >device.
>
> Not really, the basic idea is just a linked list of rules:
>
> name=="/dev/uscanner*" -> chmod 0644
> driver=="bpf" -> chown user
In the mean while they could temporarily hack their kernels to add the following
code to tty_pty.c.
(not tested)
static int pty_default_owner_uid;
static int
pty_default_owner(SYSCTL_HANDLER_ARGS)
{
int error;
int val;
val = pty_default_owner_uid;
error = sysctl_handle_int(oidp, &val, sizeof(int), req);
if (error != 0 || req->newptr == NULL)
return (error);
if (your_favoutite_sanity_check(val)) {
pty_default_owner_uid = val;
}
return (0);
}
SYSCTL_PROC(_kern, OID_AUTO, pty_default_owner, CTLTYPE_INT | CTLFLAG_RW,
0, sizeof(int), pty_set_owner_uid, "I", "owner for newly created ptys");
and then use pty_default_owner_uid in the make_dev() call.
>
> It's not too much work, I just havn't had the time for it yet.
> (Junior Kernel Hackers can apply here :-)
>
> >Otherwise, one option would just be to have devfs check for a file
> >in the /dev directory it is mounted over and then use that files
> >permissions as a default. That would at least get us back the
> >features of the old /dev which we're missing now.
>
> This is much harder than you think...
>
> --
> Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
> phk@FreeBSD.ORG | TCP/IP since RFC 956
> FreeBSD committer | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
--
+------------------------------------+ ______ _ __
| __--_|\ Julian Elischer | \ U \/ / hard at work in
| / \ julian@elischer.org +------>x USA \ a very strange
| ( OZ ) \___ ___ | country !
+- X_.---._/ presently in San Francisco \_/ \\
v
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C828BC7.22A80633>
