From: Roman Kagan <rkagan@mail.ru>
To: linux-hotplug@vger.kernel.org
Subject: Re: [PATCH] udev: add rule based program execution
Date: Wed, 30 Mar 2005 14:08:16 +0000 [thread overview]
Message-ID: <20050330140815.GD2239@katya> (raw)
In-Reply-To: <20050329145403.GA16544@vrfy.org>
On Wed, Mar 30, 2005 at 02:05:09PM +0200, Kay Sievers wrote:
> On Wed, 2005-03-30 at 11:39 +0400, Roman Kagan wrote:
> > On Tue, Mar 29, 2005 at 04:54:03PM +0200, Kay Sievers wrote:
> > > If a rule should be the last one to be applied
> > > to a device it must use OPTION="last_rule".
> >
> > IMHO this is going to increase admin's chances to shoot himself in the
> > foot.
>
> Thats one of thousand ways to shoot yourself. I don't see any problem
> getting bigger here.
Umm, that's not exactly the kind of attitude I'd expect from a developer
of the core subsystem... :)
> > Imagine someone having installed a rules file causing the
> > processing of a particular type to stop early, and then someone (else)
> > trying to figure out what's wrong with another rules file matching the
> > same devices but happening to go later in the list.
>
> The only thing that can happen is that you get more symlinks or the
> systems standard permissions gets applied. And that's not bad, I think.
How so? What if you had a rule to do something to a particular device
type, and then some kind soul included in his package a rules file
telling udev to ignore your devices?
I believe that a rule should be local: the rule writer shold not depend
on other rules to _not_ match the same device. This appears to be the
only way acceptable to distro maintainers, who would want to add or
remove rules by small independent pieces (files under /etc/udev/rules.d)
> > As to the notorious "too many tty devices" problem, I guess it can be
> > worked around with something like
> >
> > SUBSYSTEM="tty", NAME=""
>
> I thought you were arguing for "independent" rules? This makes the
> heaviest dependency on the order of the rules, I can think of. :)
Sorry, this one is busted. However not in the way you say: rather, it
has no effect at all (as long as the rules are independent).
> > SUBSYSTEM!="tty", HOTPLUG="/some/slow/hotplug/script"
>
> And if the hotplug-script should be excluded from two subsystems?
Then they all would be listed in the condition clause, e.g.
SUBSYSTEM!="tty"&&SUBSYSTEM!="sound" HOTPLUG="/some/slow/hotplug/script"
Note that it is the creator of the /some/slow/hotplug/script who knows
which devices his rule should, and which houldn't apply to.
BTW isn't the whole "too many tty devices" problem due to the implicitly
appended NAME="%k" catch-all rule? Maybe it should just be removed, and
instead every device node wanted under /dev be explicitly matched
against a rule in udev config?
> > > After the first rule that
> > > assigns a NAME to a device, all later rules with a NAME key will be
> > > ignored, so it should not change the current behavior too much.
> >
> > Same problem here: changing the order of the (seemingly independent!)
> > rules may cause unexpected change of which rule applies. What's wrong
> > with executing all NAME actions? At worst it'll create multiple device
> > nodes for the same device - big deal...
>
> No, I don't see any reason to support more than one device node while we
> can do an unlimited number of symlinks.
Again for the locality of the rule definition.
> It's a security nightmare, to
> check the permissions of possibly multiple nodes with the same
> major/minor.
You don't need to. Each rule's writer is supposed to understand what
he's doing, so you only need to check the permissions of a device node
against the OWNER, GROUP, MODE fields in the NAME action which was
created the node.
In particular, if you happen to have two rules like
KERNEL="kmem", NAME="%k", MODE="0640"
and
KERNEL="kmem", NAME="mykmem", MODE="0666"
your system's security should always be compromised, regardless of the
order in which these rules happen to be evaluated.
> And today we have the inconvenience that the kernel logs errors for
> devices that don't have the same name as the user visible device node.
This must be a recent addition... My 2.6.11 doesn't care what filenames I
choose for device nodes, nor how many nodes I create for a given device.
Roman.
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id\x14396&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next prev parent reply other threads:[~2005-03-30 14:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-29 14:54 [PATCH] udev: add rule based program execution Kay Sievers
2005-03-29 15:20 ` Kevin P. Fleming
2005-03-30 7:39 ` Roman Kagan
2005-03-30 12:05 ` Kay Sievers
2005-03-30 14:08 ` Roman Kagan [this message]
2005-03-30 17:29 ` Kay Sievers
2005-03-30 19:21 ` Greg KH
2005-03-30 20:20 ` Kay Sievers
2005-04-01 0:18 ` Greg KH
2005-04-01 7:30 ` Kay Sievers
2005-04-02 6:54 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050330140815.GD2239@katya \
--to=rkagan@mail.ru \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).