From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lennart Poettering Subject: Re: Suspending access to opened/active /dev/nodes during application runtime Date: Sat, 8 Mar 2014 03:39:29 +0100 Message-ID: <20140308023929.GA1413@tango.0pointer.de> References: <9D7BA6C9-9F1F-4D09-8F4F-E7DA4720FF97@gmail.com> <20140307192410.GA24453@tango.0pointer.de> <9E972401-6FA3-439B-9531-49D1FCC8D61D@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <9E972401-6FA3-439B-9531-49D1FCC8D61D@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: systemd-devel-bounces@lists.freedesktop.org Errors-To: systemd-devel-bounces@lists.freedesktop.org To: Lukasz Pawelczyk Cc: libvir-list@redhat.com, systemd-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, lxc-devel@lists.linuxcontainers.org, linux-input@vger.kernel.org List-Id: linux-input@vger.kernel.org T24gRnJpLCAwNy4wMy4xNCAyMTo1MSwgTHVrYXN6IFBhd2VsY3p5ayAoaGF2bmVyQGdtYWlsLmNv bSkgd3JvdGU6Cgo+ID4+IFByb2JsZW06Cj4gPj4gSGFzIGFueW9uZSB0aG91Z2h0IGFib3V0IGEg bWVjaGFuaXNtIHRvIGxpbWl0L3JlbW92ZSBhbiBhY2Nlc3MgdG8gYQo+ID4+IGRldmljZSBkdXJp bmcgYW4gYXBwbGljYXRpb24gcnVudGltZT8gTWVhbmluZyB3ZSBoYXZlIGFuCj4gPj4gYXBwbGlj YXRpb24gdGhhdCBoYXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgdG8gc29tZSAvZGV2L25vZGUg YW5kCj4gPj4gZGVwZW5kaW5nIG9uICpzb21ldGhpbmcqIGl0IGdhaW5zIG9yIGxvb3NlcyB0aGUg YWNjZXNzIHRvIGl0Cj4gPj4gZ3JhY2VmdWxseSAod2l0aCBvciB3aXRob3V0IGEgbm90aWZpY2F0 aW9uLCBidXQgd2l0aG91dCBhbnkgZmF0YWwKPiA+PiBjb25zZXF1ZW5jZXMpLgo+ID4gCj4gPiBs b2dpbmQgY2FuIG11dGUgaW5wdXQgZGV2aWNlcyBhcyBzZXNzaW9ucyBhcmUgc3dpdGNoZWQsIHRv IGVuYWJsZQo+ID4gdW5wcml2aWxpZ2VkIFgxMSBhbmQgd2F5bGFuZCBjb21wb3NpdG9ycy4KPiAK PiBXb3VsZCB5b3UgcGxlYXNlIGVsYWJvcmF0ZSBvbiB0aGlzPyBXaGVyZSBpcyB0aGlzIG1lY2hh bmlzbT8gSG93IGRvZXMKPiBpdCB3b3JrIHdpdGhvdXQga2VybmVsIHNwYWNlIHN1cHBvcnQ/IElz IHRoZXJlIHNvbWUga2VybmVsIHNwYWNlCj4gc3VwcG9ydCBJ4oCZbSBub3QgYXdhcmUgb2Y/CgpU aGVyZSdzIEVWSU9DUkVWT0tFIGZvciBpbnB1dCBkZXZpY2VzIGFuZApEUk1fSU9DVExfU0VUX01B U1RFUi9EUk1fSU9DVExfRFJPUF9NQVNURVIgZm9yIERSTSBkZXZpY2VzLiBTZWUgbG9naW5kCnNv dXJjZXMuCgo+ID4gQmVmb3JlIHlvdSB0aGluayBhYm91dCBkb2luZyBzb21ldGhpbmcgbGlrZSB0 aGlzLCB5b3UgbmVlZCB0byBmaXggdGhlCj4gPiBrZXJuZWwgdG8gcHJvdmlkZSBuYW1lc3BhY2Vk IGRldmljZXMgKGdvb2QgbHVjayEpCj4gCj4gUHJlY2lzbHkhIFRoYXTigJlzIHRoZSBnZW5lcmlj IGlkZWEuIEnigJltIG5vdCBmb3IgaW1wbGVtZW50aW5nIGl0IHRob3VnaAo+IGF0IHRoaXMgbW9t ZW50LiBJIGp1c3Qgd2FudGVkIHRvIGtub3cgd2hldGhlciBhbnlib2R5IGFjdHVhbGx5IHRob3Vn aAo+IGFib3V0IGl0IG9yIG1heWJlIHNvbWVvbmUgaXMgaW50ZXJlc3RlZCBpbiBzdGFydGluZyBz dWNoIGEgd29yaywgZXRjLgoKSXQncyBub3QganVzdCBhYm91dCB0dXJuaW5nIG9uIGFuZCB0dXJu aW5nIG9mZiBhY2Nlc3MgdG8gdGhlIGV2ZW50CnN0cmVhbS4gSXQncyBtb3N0bHkgYWJvdXQgZW51 bWVyYXRpb24gYW5kIHByb2Jpbmcgd2hpY2ggZG9lc24ndCB3b3JrIGluCmNvbnRhaW5lcnMsIGFu ZCBpcyBwYXJ0aWN1bGFybHkgbWVzc3kgaWYgeW91IGludGVuZCB0byBzaGFyZSBkZXZpY2VzCmJl dHdlZW4gY29udGFpbmVycy4KCj4gPiBsb2dpbmQgY2FuIGRvIHRoaXMgZm9yIHlvdSBiZXR3ZWVu IHNlc3Npb25zLiBCdXQgc3VjaCBhIGNvbnRhaW5lciBzZXR1cAo+ID4gd2lsbCBuZXZlciB3b3Jr IHdpdGhvdXQgcHJvcGVyIGRldmljZSBuYW1lc3BhY2luZy4KPiAKPiBTbyBob3cgY2FuIGl0IGRv IGl0IHdoZW4gdGhlcmUgaXMgbm8ga2VybmVsIHN1cHBvcnQ/IFlvdSBtZWFuIGl0IGNvdWxkCj4g YmUgZG9pbmcgdGhpcyBpZiB0aGUgc3VwcG9ydCB3ZXJlIHRoZXJlPwoKRVZJT0NSRVZPS0UgYW5k IHRoZSBEUk0gaW9jdGxzIGFyZSBwcmV0dHkgcmVhbC4uLgoKTGVubmFydAoKLS0gCkxlbm5hcnQg UG9ldHRlcmluZywgUmVkIEhhdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpzeXN0ZW1kLWRldmVsIG1haWxpbmcgbGlzdApzeXN0ZW1kLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vc3lzdGVtZC1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752582AbaCHCjc (ORCPT ); Fri, 7 Mar 2014 21:39:32 -0500 Received: from tango.0pointer.de ([85.214.72.216]:33398 "EHLO tango.0pointer.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751330AbaCHCjb (ORCPT ); Fri, 7 Mar 2014 21:39:31 -0500 Date: Sat, 8 Mar 2014 03:39:29 +0100 From: Lennart Poettering To: Lukasz Pawelczyk Cc: systemd-devel@lists.freedesktop.org, libvir-list@redhat.com, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, lxc-devel@lists.linuxcontainers.org Subject: Re: [systemd-devel] Suspending access to opened/active /dev/nodes during application runtime Message-ID: <20140308023929.GA1413@tango.0pointer.de> References: <9D7BA6C9-9F1F-4D09-8F4F-E7DA4720FF97@gmail.com> <20140307192410.GA24453@tango.0pointer.de> <9E972401-6FA3-439B-9531-49D1FCC8D61D@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <9E972401-6FA3-439B-9531-49D1FCC8D61D@gmail.com> Organization: Red Hat, Inc. X-Campaign-1: () ASCII Ribbon Campaign X-Campaign-2: / Against HTML Email & vCards - Against Microsoft Attachments User-Agent: Leviathan/19.8.0 [zh] (Cray 3; I; Solaris 4.711; Console) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 07.03.14 21:51, Lukasz Pawelczyk (havner@gmail.com) wrote: > >> Problem: > >> Has anyone thought about a mechanism to limit/remove an access to a > >> device during an application runtime? Meaning we have an > >> application that has an open file descriptor to some /dev/node and > >> depending on *something* it gains or looses the access to it > >> gracefully (with or without a notification, but without any fatal > >> consequences). > > > > logind can mute input devices as sessions are switched, to enable > > unpriviliged X11 and wayland compositors. > > Would you please elaborate on this? Where is this mechanism? How does > it work without kernel space support? Is there some kernel space > support I’m not aware of? There's EVIOCREVOKE for input devices and DRM_IOCTL_SET_MASTER/DRM_IOCTL_DROP_MASTER for DRM devices. See logind sources. > > Before you think about doing something like this, you need to fix the > > kernel to provide namespaced devices (good luck!) > > Precisly! That’s the generic idea. I’m not for implementing it though > at this moment. I just wanted to know whether anybody actually though > about it or maybe someone is interested in starting such a work, etc. It's not just about turning on and turning off access to the event stream. It's mostly about enumeration and probing which doesn't work in containers, and is particularly messy if you intend to share devices between containers. > > logind can do this for you between sessions. But such a container setup > > will never work without proper device namespacing. > > So how can it do it when there is no kernel support? You mean it could > be doing this if the support were there? EVIOCREVOKE and the DRM ioctls are pretty real... Lennart -- Lennart Poettering, Red Hat