Aaron Conole <acon...@redhat.com> writes:

> Christian Ehrhardt <christian.ehrha...@canonical.com> writes:
>
>> On Tue, May 24, 2016 at 4:10 PM, Aaron Conole <acon...@redhat.com> wrote:
>>
>>> Daniele Di Proietto <diproiet...@vmware.com> writes:
>>>
>>> > Hi Aaron,
>>> >
>>> > I'm still a little bit nervous about calling chown on a (partially)
>>> > user controlled file name.
>>>
>>> I agree, that always seems scary.
>>>
>>> > Before moving forward I wanted to discuss a couple of other options:
>>> >
>>> > * Ansis (in CC) suggested using -runas parameter in qemu.  This way
>>> > qemu can open the socket as root and drop privileges before starting
>>> > guest execution.
>>>
>>> I'm not sure how to do this with libvirt, or via the OpenStack Neutron
>>> plugin.  I also don't know if it would be an acceptable workaround for
>>> users.  Additionally, I recall there being something of a "don't even
>>> know if this works" around it.  Maybe Christian or Ansis (both in CC)
>>> can expound on it.
>>>
>>
>> Hi,
>> IIRC we kind of agree that long term a proper MAC will be much better but
>> most involved people needed something to get it working like "now".
>> Since they are complementary (other than the fix removing a bit of the
>> urgency for more MAC) it was kind of the least bad option.
>>
>> You have to be aware that I brought up the discussion on d...@dpdk.org - see
>> [1] and [2]:
>> But this will take time and eventually still be the applications task to
>> "do something" - no matter if via API or via the chmod's right now.
>> So Aaron is trying to get something that works now until the long term
>> things are in place, which I appreciate.
>>
>> FYI - I was even more in a hurry as it was clear that OVS-2.5 won't get
>> this in time I run with [3] for now.
>> I never intended to suggest that, but with the discussion in place, one
>> could ask if you (Aaron) want to pick up that instead.
>> That would keep OVS free for now until DPDK made up the API (see [2]) for
>> socket ownership control and this then could be implemented in OVS?
>>
>> (I hope) In some months/years we will all be happy to drop this bunch of
>> interim solutions, never the less we need it for now.
>>
>> [1]: http://dpdk.org/dev/patchwork/patch/12222/
>> [2]: http://dpdk.org/ml/archives/dev/2015-December/030326.html
>> [3]:
>> https://git.launchpad.net/~ubuntu-server/dpdk/commit/?h=ubuntu-xenial-to-dpdk2.2&id=f3c7aa1b2ddea8e092ad4a89e41a0e19d01ed4e7
>>
>> [...]
>>
>>
>>> I think originally we quickly discussed 4 possible solutions (and
>>> hopefully I captured them correctly):
>>>
>>> 1. OVS downgrades to the ovs user, and kvm runs under the ovs
>>>    group.  I don't actually like this solution because kvm could then
>>>    pollute the ovs database.
>>>
>>> 2. OVS runs as some user and sets the user/group ownership of the socket
>>>    via chown/chmod where permissions come from the database (the
>>>    original context had ovs running as root - but as I described above
>>>    it doesn't need to be root provided ovs+DPDK can start without root).
>>>
>>> 3. OVS runs as some user, kvm starts as root, opens the socket and
>>>    downgrades.  IIRC, this doesn't actually work, or it may have
>>>    implications on other projects.  I don't remember exactly what was
>>>    not as great about this solution, TBH.
>>>
>>> 4. OVS and KVM run as whatever users; MAC is used to enforce the
>>>    layering between them.
>>>
>>> I think solution 2 and solution 4 don't actually interfere with each
>>> other, and can be used to a complementary effect (if implemented
>>> properly) so that the MAC layer enforces access, but even without MAC,
>>> the DAC layer can provide appropriate whitelisting behavior.
>>>
>>
>> I also remember several complex changes needed for the #1 and #3 that
>> always would end up with huge effort and a high risk not being accepted.
>> Probably that is what you refer to with "implications on other projects".
>>
>> Also keep in mind the position of dpdk out of the last few discussions
>> which I'd like to summarize as "dpdk got this path from an app, so this app
>> OWNS that path".
>
> I'd like to continue on, but I am not sure what the concerns are right
> now.  Is it possible to enumerate them point by point so that I can
> understand them?  I think there are two outstanding concerns right now:
>
> 1. the proposed approach is not good enough (vis-a-vis DAC vs. MAC)
>
> 2. the proposed approach would be better implemented in the utility
>    that wants access to the sockets (vis-a-vis the libvirt discussion)
>
> Am I understanding the concerns correctly?

Ping?
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to