Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753244AbbBXQol (ORCPT ); Tue, 24 Feb 2015 11:44:41 -0500 Received: from youngberry.canonical.com ([91.189.89.112]:40728 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753054AbbBXQoi (ORCPT ); Tue, 24 Feb 2015 11:44:38 -0500 Date: Tue, 24 Feb 2015 16:44:29 +0000 From: Serge Hallyn To: Christoph Lameter Cc: "Serge E. Hallyn" , Serge Hallyn , Andy Lutomirski , Aaron Jones , "Ted Ts'o" , linux-security-module@vger.kernel.org, akpm@linuxfoundation.org, "Andrew G. Morgan" , Mimi Zohar , Austin S Hemmelgarn , Markku Savela , Jarkko Sakkinen , linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, Michael Kerrisk , Jonathan Corbet Subject: Re: [PATCH] capabilities: Ambient capability set V1 Message-ID: <20150224164429.GB29685@ubuntumail> References: <20150223161625.GD25477@ubuntumail> <20150223164623.GB32181@mail.hallyn.com> <20150223181553.GE25477@ubuntumail> <20150224051928.GA14755@mail.hallyn.com> <20150224154715.GA20682@mail.hallyn.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1306 Lines: 29 Quoting Christoph Lameter (cl@linux.com): > On Tue, 24 Feb 2015, Serge E. Hallyn wrote: > > > The other way to look at it then is that it's basically as though the > > privileged task (which has CAP_SETFCAP) could've just added fI=full to > > all binaries on the filesystem; instead it's using the ambient set > > so that the risk from fI=full is contained to its own process tree. > > The way that our internal patch works is to leave these things alone and > just check the ambient mask in the *capable*() functions. That way the > behavior of the existing cap bits does not change but the ambient caps > stay available. Apps have no surprises. Unless I'm misunderstanding what you are saying, apps do have surprises. They drop capabilities, execute a file, and the result has capabilities which the app couldn't have expected. At least if the bits have to be in fI to become part of pP', the app has a clue. To be clear, I'm suggesting that the rules at exec become: pI' = pI pA' = pA (pA is ambient) pP' = (X & fP) | (pI & (fI | pA)) pE' = pP' & fE -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/