Messages in this thread | | | Date | Tue, 27 Mar 2012 22:46:40 +0000 | From | "Serge E. Hallyn" <> | Subject | Re: [rfc] fcntl: Add F_GETOWNER_UIDS option |
| |
Quoting Cyrill Gorcunov (gorcunov@openvz.org): > On Tue, Mar 27, 2012 at 10:29:23PM +0000, Serge E. Hallyn wrote: > > Quoting Cyrill Gorcunov (gorcunov@openvz.org): > > > On Tue, Mar 27, 2012 at 05:25:34PM +0200, Oleg Nesterov wrote: > > > > user_ns_map_uid() should translate uid_t from one namespace to another, > > > > in this case the namespace is the same. > > > > > > > > user_ns_map_uid(cred->user_ns, cred) must be the identical mapping, > > > > no matter how we change the implementation. > > > > > > > > What I think you need is > > > > user_ns_map_uid(current_user_ns(), filp->f_owner.cred), the only > > > > problem is that f_owner.cred doesn't exist. > > > > > > > > > > Hmm, I was confused by likely() in user_ns_map_uid. But indeed, I think > > > you're so right. Is there some reason why we can't carry f_owner.cred > > > pointer? > > > > We would need that for this, yes. However, Eric is working on a new > > patchset which changes the cross-userns uid mappings. I think it's > > worth simply leaving a comment that this will need to be addressed, > > and leave in the unconverted uid. > > Hi Serge, thanks for info. But if it will be unconverted uid, can't > be there some security problem with that which I missed?
Noone is really using the user namespaces right now, but rather than adding the cred (and refcounting concerns), my suggestion for now would be to hardcode a check in modown() that current_user_ns() == &init_user_ns.
I *did* have a patch in the past which added the cred to fown, but no idea where it is right now...
-serge
| |