From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Gruenbacher Subject: Re: [RFC v7 26/41] richacl: Apply the file masks to a richacl Date: Wed, 23 Sep 2015 22:29:40 +0200 Message-ID: References: <1441448856-13478-1-git-send-email-agruenba@redhat.com> <1441448856-13478-27-git-send-email-agruenba@redhat.com> <20150922191108.GC19127@fieldses.org> <20150923191832.GA29577@fieldses.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: LKML , linux-fsdevel , linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andreas Gruenbacher To: "J. Bruce Fields" Return-path: In-Reply-To: <20150923191832.GA29577-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org> Sender: linux-api-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-fsdevel.vger.kernel.org 2015-09-23 21:18 GMT+02:00 J. Bruce Fields : > On Tue, Sep 22, 2015 at 03:11:08PM -0400, bfields wrote: >> user aces like owner aces what you intended to do, >> and if so, why? > > That does look wrong to me; in an example like: > > file owner bfields > mask 0700, not WRITE_THROUGH > bfields:rwx::allow > > The permission algorithm grants nothing to anyone, but it looks to me > like richacl_apply_masks just leaves this as > > bfields:rwx::allow > > but it would give the right result (an empty/deny-all ACL) if it weren't > for this odd case here. In POSIX ACLs, only the entry that best matches the process determines the access permissions. For the file owner, this would always be the "user::" entry, and such an entry always exists. In richacls, permissions from multiple entries do accumulate; the permission check algorithm does not pick a "best match". When bfields owns a file and a "bfields:rwx::allow" entry exists, denying rwx access to bfields would be very surprising. It makes more sense to put user entries that match the current owner into the owner class, and apply the owner mask instead of the group mask. This was working in an earlier version but apparently broke at some point. So the result that richacl_apply_masks computes here is correct, and the permission check algorithm needs a little fix. Thanks, Andreas