From: "J. Bruce Fields" <bfields@fieldses.org>
To: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Alex Bremer <albremer@googlemail.com>,
linux-nfs@vger.kernel.org, Andreas Gruenbacher <agruen@suse.de>
Subject: Re: NFS4 ACL <-> Posix ACL
Date: Tue, 24 Mar 2009 18:39:09 -0400 [thread overview]
Message-ID: <20090324223909.GR19389@fieldses.org> (raw)
In-Reply-To: <1237933686.7516.31.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
On Tue, Mar 24, 2009 at 06:28:06PM -0400, Trond Myklebust wrote:
> On Tue, 2009-03-24 at 18:21 -0400, J. Bruce Fields wrote:
> > On Tue, Mar 24, 2009 at 05:44:07PM -0400, Trond Myklebust wrote:
> > > On Tue, 2009-03-24 at 16:10 -0400, J. Bruce Fields wrote:
> > > > On Tue, Mar 24, 2009 at 02:56:25AM +0100, Alex Bremer wrote:
> > > > > 2009/3/23, J. Bruce Fields <bfields@fieldses.org>:
> > > > > >> So is there any way to make newly created files group writeable except
> > > > > >> for setting the umask of each user to 002?
> > > > > >
> > > > > > I think that's the only option.
> > > > > >
> > > > > > And that looks hard to fix; if we were going to implement the same
> > > > > > "inheritance overrides umask" exception as we do for posix acls, either:
> > > > > >
> > > > > > - The server would have to know about the umask; this would
> > > > > > require a protocol change. (But it might not be that hard;
> > > > > > you could have a write-only "set the mode to this, but only in
> > > > > > the absence of inheritance" attribute.)
> > > > > > - The client would have to do the inheritance itself, as it does
> > > > > > with posix acls. This is perhaps not impossible, but it's
> > > > > > much more complicated with v4 acls.
> > > > > >
> > > > > > Hm. Another odd option: do the open with the create mode + umask, as we
> > > > > > currently do, then do a subsequent setattr to the create mode if the
> > > > > > create mode is more generous and if the client detects inheritable acls
> > > > > > on the parent directory.
> > > > >
> > > > > Why so complicated? Of course these options would be the nicest way to
> > > > > do it as it allows to set different permission inheritances on each
> > > > > directory. However for many use cases it would be enough if one could
> > > > > set the permissions on a share basis. A simple umask mount-option
> > > > > would already help a lot. This way administrators could enforce a
> > > > > umask on a share.
> > > >
> > > > I don't know what to think of a umask mount option. That's a question
> > > > for Trond.
> > >
> > > Ugh, no. We already have too many mount options, and this suggestion
> > > doesn't even fix any problems.
> > >
> > > The correct thing to do is to check for acl support on the server, and
> > > then check directories for inheritance aces before we decide to create a
> > > file.
> >
> > OK, so if we find an inheritable ace on the file, then we just skip
> > sending the umask in the mode that's sent on open.
Sorry, I meant "the inheritable ace on the parent directory" in the
above.
> No. That would violate the spec. I meant that the client needs to check
> if the server supports acls, and then needs to check those acls on the
> directory in which it wants to create the file.
>
> In order to avoid any races, it probably needs to send the inherited ACL
> in the createattrs field. Otherwise, if a user were to remove the
> inherited ACL before the client sends the OPEN/CREATE, then the server
> would no longer have an ACL to set on the file...
Either that, or send the umask-less mode and let the server do the
inheritance calculation.
--b.
next prev parent reply other threads:[~2009-03-24 22:39 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-18 17:42 NFS4 ACL <-> Posix ACL Alex Bremer
[not found] ` <7f62dcb30903181042n42bae0bbk99f5c91fce6e9e82-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-19 19:35 ` J. Bruce Fields
2009-03-23 13:46 ` Alex Bremer
[not found] ` <7f62dcb30903230646u183c79e0i4366edebe32654d5-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-23 21:33 ` J. Bruce Fields
2009-03-24 1:56 ` Alex Bremer
[not found] ` <7f62dcb30903231856h7a17cea5ud7a22796ddfb6383-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-03-24 20:10 ` J. Bruce Fields
2009-03-24 21:44 ` Trond Myklebust
[not found] ` <1237931047.7516.15.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-03-24 22:15 ` J. Bruce Fields
2009-03-24 22:22 ` Trond Myklebust
[not found] ` <1237933367.7516.27.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-03-24 22:34 ` J. Bruce Fields
2009-03-24 22:54 ` Trond Myklebust
[not found] ` <1237935281.7516.40.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-03-24 23:02 ` J. Bruce Fields
2009-03-24 23:20 ` Trond Myklebust
[not found] ` <1237936852.7516.50.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-03-24 23:57 ` J. Bruce Fields
2009-03-24 22:21 ` J. Bruce Fields
2009-03-24 22:28 ` Trond Myklebust
[not found] ` <1237933686.7516.31.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2009-03-24 22:39 ` J. Bruce Fields [this message]
2009-03-24 3:09 ` Greg Banks
2009-03-24 12:08 ` Alex Bremer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090324223909.GR19389@fieldses.org \
--to=bfields@fieldses.org \
--cc=Trond.Myklebust@netapp.com \
--cc=agruen@suse.de \
--cc=albremer@googlemail.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox