Re: [PATCH] scaled-back caps, take 4
From: Andy Lutomirski
Date: Tue May 18 2004 - 20:56:40 EST
Chris Wright wrote:
* Andy Lutomirski (luto@xxxxxxxxxxxx) wrote:
Chris Wright wrote:
Thus far we've kept all this stuff out of core. I believe we should
keep it that way. This could easily be left in bprm_set().
True. But as long as linux_binprm has fields for this stuff, intuitively
it should always be filled in (i.e. not just in commoncap). That way we
can say that commoncap doesn't get special treatment :)
Also, this seems like the right place to check for VFS caps. This way we can.
This does change the current notion of layering. I see your point though,
likening it to say reading inode and finding S_ISUID bit.
On the other hand, no one would put reading of a SELinux security label
here. But we already have fields in binprm specifically for commoncap. I
have no strong preference.
The reason I killed the old algorithm is because it's scary (in the sense
of being complicated and subtle for no good reason) and because I don't see
the point of inheritable caps. I doubt anything uses them currently on a
vanilla kernel because they don't _do_ anything. So I killed them.
This does break all those caps aware apps (yeah, tongue-in-cheek ;-)
that actually have the idea to widen the effective set, yet limit the
inheriable set. Seriously, I don't know how much this matters.
Yah, they're broken anyway right now if that's what they're doing.
The reason I didn't go for something like your approach (other than not
thinking of it) was that, as long as we're changing the semantics, we might
as well make them as clean as possible. I also didn't mind ripping out
lots of old code :). If the inheritable mask stays, then programs need to
be audited for what happens if they are run with different inheritable
masks. I'd rather just eliminate that complication and the corresponding
blob of commoncap code. Obviously my patch fails a lot of your tests as a
result.
So do we arm-wrestle over whose implementation wins? :) I'd say mine wins
on readability (not your fault -- the old code was pretty bad to begin
with) and some simplicity, but yours has the benefit of being less intrusive.
--Andy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/