Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752910AbcLSUYY (ORCPT ); Mon, 19 Dec 2016 15:24:24 -0500 Received: from cloudserver094114.home.net.pl ([79.96.170.134]:47921 "EHLO cloudserver094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752966AbcLSUYV (ORCPT ); Mon, 19 Dec 2016 15:24:21 -0500 From: "Rafael J. Wysocki" To: John Stultz Cc: "Serge E. Hallyn" , "Michael Kerrisk (man-pages)" , Casey Schaufler , James Morris , Kees Cook , Andy Lutomirski , Jann Horn , "Eric W. Biederman" , linux-man , linux-security-module , lkml Subject: Re: RFC: capabilities(7): notes for kernel developers Date: Mon, 19 Dec 2016 21:20:24 +0100 Message-ID: <1901394.l2S6b8SCmT@aspire.rjw.lan> User-Agent: KMail/4.14.10 (Linux/4.9.0-rc8+; KDE/4.14.9; x86_64; ; ) In-Reply-To: References: <20161216210539.GA15589@mail.hallyn.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3391 Lines: 76 On Friday, December 16, 2016 01:16:15 PM John Stultz wrote: > On Fri, Dec 16, 2016 at 1:05 PM, Serge E. Hallyn wrote: > > Quoting John Stultz (john.stultz@linaro.org): > >> On Fri, Dec 16, 2016 at 12:10 PM, Serge E. Hallyn wrote: > >> > Quoting Michael Kerrisk (man-pages) (mtk.manpages@gmail.com): > >> >> On 12/16/2016 01:44 AM, Casey Schaufler wrote: > >> >> > On 12/15/2016 4:31 PM, John Stultz wrote: > >> >> >> On Thu, Dec 15, 2016 at 12:40 PM, Casey Schaufler > >> >> >> wrote: > >> >> >>> On 12/15/2016 11:41 AM, Michael Kerrisk (man-pages) wrote: > >> >> >>>> On 12/15/2016 05:29 PM, Casey Schaufler wrote: > >> >> >>>>> CAP_WAKE_ALARM could readily be CAP_TIME. > >> >> >>>> Actually, I don't quite understand what you mean with that sentence. > >> >> >>>> Could you elaborate? > >> >> >>> Should have said CAP_SYS_TIME > >> >> >>> > >> >> >>> Setting an alarm could be considered a time management function, > >> >> >>> depending on what it actually does. > >> >> >> Just a nit here. CAP_WAKE_ALARM is more about the privilege of waking > >> >> >> a system from suspend, while CAP_SYS_TIME covers the ability to set > >> >> >> the time. One wouldn't necessarily want to give applications which > >> >> >> could wake a system up the capability to also set the time. > >> >> > > >> >> > Doesn't really matter, except that an ignorant developer > >> >> > might make the mistake I did and assume that WAKE_ALARM > >> >> > was somehow related to time management. If you want to use > >> >> > it as an example don't let my dunderheadedness get in your > >> >> > way. > >> >> > >> >> Actually, I decided it wasn't such a good example anyway. > >> >> That capability could potentially be generic. (But it probably > >> >> should better have been named something like 'CAP_WAKE_SYSTEM'.) > >> > > >> > How about: > >> > > >> > Subject: [PATCH 1/1] capabilities: alias CAP_WAKE_SYSTEM to CAP_WAKE_ALARM > >> > > >> > As suggested by Michael Kerrisk his is a less confusing name, and > >> > this won't break any old userspace. > >> > > >> > Signed-off-by: Serge Hallyn > >> > Cc: Michael Kerrisk > >> > --- > >> > include/uapi/linux/capability.h | 2 ++ > >> > 1 file changed, 2 insertions(+) > >> > > >> > diff --git a/include/uapi/linux/capability.h b/include/uapi/linux/capability.h > >> > index fd4f87d..ba972ff 100644 > >> > --- a/include/uapi/linux/capability.h > >> > +++ b/include/uapi/linux/capability.h > >> > @@ -357,6 +357,8 @@ struct vfs_ns_cap_data { > >> > > >> > #define CAP_WAKE_ALARM 35 > >> > > >> > +#define CAP_WAKE_SYSTEM CAP_WAKE_ALARM > >> > + > >> > >> I was thinking of the same thing. Although I might rename the > >> numerical define to WAKE_SYSTEM and put WAKE_ALARM as the alias (along > >> with a comment as to WAKE_ALARM being deprecated), so its more clear > >> which is the one that ought to be used by new code. > >> > >> However, in the spirit of this thread, we might even consider > >> broadening the cap silo a bit further, to something like > >> CAP_WAKE_SUSPEND, such that it might also be able to cover broader PM > >> actions? > > > > Or just CAP_UNSUSPEND? > > I guess I was trying to capture it could be use for actions like both > waking and suspending the system. Well, CAP_SYS_PM comes to mind then. Thanks, Rafael