tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Capsicum: practical capabilities for UNIX
On 26.09.2010 19:38, Perry E. Metzger wrote:
> On Sat, 25 Sep 2010 13:36:18 +0200 Jean-Yves Migeon
> <jeanyves.migeon%free.fr@localhost> wrote:
>>> The second concern is related to the first:
>>> a Capsicum sandbox doesn't simulate access to the global
>>> namespace for the purpose of unmodified programs calling, e.g.,
>>> open(2)---can it? The authors of the Capsicum paper are already
>>> thinking about the question (see section 4.3, "gzip"); I'm eager
>>> to see what they come up with.
>>
>> IMHO, that's the biggest concern. And I can't see how they could
>> come up with a solution other than "rewrite/refactor whole
>> programs."
>
> Actually, it is pretty easy for most systems programs to retrofit what
> you want. It is a lot harder for arbitrary programs, but that's
> another story.
I don't think so. For "small", "trivial" programs, like those used for
hashing, compress/uncompress, it is indeed easy to retrofit.
But if you go for programs like web browsers, web/application servers,
databases, or even any GUI program (PDF readers, did I say browsers?),
it is a lot less trivial to bring a capability model in.
>> I, for one, welcome our new systrace overlords.
>>
>> oops :)
>
> Systrace is a MAC-like system. It is NOT a capability architecture.
Never said the opposite. Don't remove the part I was quoting just above :)
On 24.09.2010 21:46, David Young wrote:
>> For consistency, user confidence and convenience, I'd like to see a
>> wrapper program or shell built-in, "capsicum [capabilities] [program
>> [arguments ...]]", that creates a sandbox, grants it the mentioned
>> <capabilities>, and starts in it the given <program> with the given
>> <arguments>. Maybe that wouldn't be hard to do. Maybe there's a better
>> way, too. Your thoughts?
Doesn't it read like using "capsicum" as a "systrace" replacement?
>> More problematic: each mainstream OS has now its own "OS
>> compartiment model".
>
> This isn't per se a compartment model.
Of course not. But capabilities will mostly get used as one, especially
when considered as a controle message (cmsg API) replacement.
>> Solaris has zones, FreeBSD has jails, Linux
>> distros have dozens (containers now?), and so on. I just hope that
>> we do not end up with a capability API different for each OS: that
>> would hamper portability, and restrain most third party developers
>> from using it.
>
> Another reason, I think, for adopting Capsicum rather than reinventing
> the wheel. I think it is a set of good ideas.
I agree. What I liked about Capsicum is that you can run capability
applications side by side with regular POSIXish/Unix applications,
rather than requiring porting POSIX above a capability based
infrastructure. Feels "smoother" (although many would disagree with me
on that part).
--
Jean-Yves Migeon
jeanyves.migeon%free.fr@localhost
Home |
Main Index |
Thread Index |
Old Index