[OpenAFS-devel] Re: openafs / opendfs collaboration

Luke Kenneth Casson Leighton lkcl@lkcl.net
Wed, 26 Jan 2005 00:08:04 +0000


On Tue, Jan 25, 2005 at 05:28:42PM -0500, Kyle Moffett wrote:
> On Jan 25, 2005, at 07:53, Todd M. Lewis wrote:
> >Kyle Moffett wrote:
> >>The keyring stuff essentially allows you to associate arbitrary BLOBs
> >>with processes via a simple kernel interface.  OpenAFS could store
> >>the credentials in a session keyring and all processes in that
> >>session would have access to the credentials.  Then OpenAFS could
> >>just run a key search for the credentials when it needs to perform
> >>operations (Such as passing them to the server) with them.  It's very
> >>fast, simple, and well designed
> >
> >This is encouraging. How closely do the semantics of "session keyring
> >and all processes in that session" match those of PAGs?  (Group
> >membership inheritance across fork/exec seems pretty clear; sessions
> >have always seemed a little fuzzy to me.)
> 
> I describe in more detail in my other email, but basically a given
> "key-session" is preserved across clone/fork/vfork/exec.  The only
> way to change "key-session"s is with the keyctl syscall, using
> PR_JOIN_SESSION_KEYRING to join an existing keyring or create a new
> anonymous one.
 
 what happens when a process performs a setuid / seteuid call?

 i.e. what happens to a file server (such as smbd) which is dropping
 in-and-out of root to perform file operations (using seteuid),
 but that file server has to perform authentication to an external
 [networked] service, and uses a "keyring" as a credential cache?
 
 also relevant: if setuid / seteuid is taken into account,
 is an selinux security context _also_ taken into account?

 l.