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>