linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).