[libvirt] [PATCH] security: also parse user/group names instead of just IDs for DAC labels
Marcelo Cerri
mhcerri at linux.vnet.ibm.com
Thu Sep 20 13:31:39 UTC 2012
On Thu, Sep 20, 2012 at 03:00:17PM +0200, Peter Krempa wrote:
> On 09/20/12 02:31, Eric Blake wrote:
> >On 09/19/2012 03:32 PM, Marcelo Cerri wrote:
> >>The DAC driver is missing parsing of group and user names for DAC labels
> >>and currently just parses uid and gid. This patch extends it to support
> >>names, so the following security label definition is now valid:
> >>
> >> <seclabel type='static' model='dac' relabel='yes'>
> >> <label>qemu:qemu</label>
> >> <imagelabel>qemu:qemu</imagelabel>
> >> </seclabel>
> >
> >Question for migration - what if qemu is uid/gid 107 on machine A but
> >108 on machine B. Then it might be nice if an explicit use of
> ><label>107:107</label> says to preserve uid (but switch effective users)
> >on migration, while <label>qemu:qemu</label> says to preserve the user
> >identification, in spite of the change in underlying uid. And depending
> >on how the shared storage is accessed, such as via NFS with uid mapping,
> >preserving user name instead of uid might actually be important.
> >
> >If that's true, then we need to enhance domain_conf.c to track whether
> >the user passed in ids or names in their XML. For that matter, to avoid
> >possible ambiguities (since it is legal [although stupid] to have a user
> >name consisting of all digits and worse having the name differ from the
> >underlying uid), should we have an optional attribute that gives us a
> >hint whether the contents are intended as an id number or as a string
> >name? That is, I wonder if we'd want something like:
>
> The other option (that I prefer more) would be to document this
> behavior and leave it as proposed in this patch. Or maybe just
> reverse the order of resolving so that the numerical parsing is done
> before name parsing.
>
> If we warn the user, that specifying numerical values will result
> into using them as UID and GID and strings being translated we
> filter out the ambiguity by our design.
>
> I don't think it's worth spending this effort on such a weird corner case.
I agree with Peter here. These ambiguities will be very rare and a
well-documented behavior should be enough for this scenario. However
reversing the order still can lead to ambiguities, because it's never
possible to be sure if a sequence of digits is a username or not. But
again, we just need to make this point clear in docs.
I'll update the documentation with this in a v2 patch if you're in
agreement.
>
> >
> ><label type='id'>107:107</label>
> ><imagelabel type='name'>qemu:qemu</label>
> >
> >except that what happens if I want to mix number and name between uid
> >and gid?
> >
>
> Mixing them will work in my approach presented here.
>
>
> Peter
>
More information about the libvir-list
mailing list