From: "J. Bruce Fields" <bfields@fieldses.org>
To: Alex Bremer <albremer@googlemail.com>
Cc: linux-nfs@vger.kernel.org, Trond Myklebust <trond@netapp.com>
Subject: Re: NFS4 ACL <-> Posix ACL
Date: Tue, 24 Mar 2009 16:10:02 -0400 [thread overview]
Message-ID: <20090324201002.GF19389@fieldses.org> (raw)
In-Reply-To: <7f62dcb30903231856h7a17cea5ud7a22796ddfb6383-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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.
> One of the problems with setting a global umask on a user basis is
> that it can be override very easily. If a user doesn't like the fact
> that all files are group writeable he can easily change it and then he
> usually forgets to set write-permissions manually when writing public
> files. As a consequence other users who want to write that file come
> to me to have the permissions reset as they can not even tell who is
> the owner of the file and ask him. :-)
>
> >> Setting the umask to 002 is
> >> not an option for us, but all files in the public area have to be
> >> group writeable. Is there maybe a mount option to set the umask or a
> >> server sided option which enforces the group writeable flag?
> >>
> >> I would expect that my use case is not that uncommon and that many
> >> companys have the exact same problem. Would the inheritance work if we
> >> used a fully NFS4-ACL compatible filesystem?
> >
> > No, and I suspect non-linux servers all have similar behavior in this
> > respect.
>
> Unix servery yes, but on windows using NTFS you can inherit permissions.
>
> With PosixACLs Unix finally got permission inheritance too and this is
> a blessing for administrators. The normal unix filesystem permissions
> are good enough for many use cases but in a company with many users
> and many different groups they do not fit. The simple case of allowing
> users of two different groups access to a directory without giving
> others rx access forces you to create a third group with all the users
> of both groups. Adding new users gets a pain in the ass as you have to
> add them to more and more groups just to get the permissions right.
>
> So Posix ACLs are really great for admins. From an admin's point of
> view I can't understand why the NFS4-ACLs - which are actually
> supperior to PosixACLs - still depend on the user's umask. I
> understand the problems you have from a programmers point of view but
> if I set a d:group:mask on a directory I expect that these permissions
> get inherited on the client side, too - like it was with NFS3+ACL.
>
> Don't understand me wrong: I don't want to flame here - I appritiate
> your work and I love NFS as it is damn fast. I just want to show you
> what an admin's expectation is. People who use PosixACLs are used to
> inheritance (if they set a default group or mask), windows people are
> used to it anyway and nobody would expect that when using NFS4 it all
> comes down to the user's umask settings. Especially as it was already
> working with NFS3. I know that NFS3+ACL is a totally different topic
> then NFS4+ACL but many user's won't care - especially as they do not
> have any advantage from NFS4ACLs as they are mapped to PosixACLs
> anyway.
I appreciate the problem--if nothing else this is a subtle change that
other admins will also hit, and that will be hard for them to diagnose.
I just don't see a really good solution.
> I really hate the security risks I have to take for NFS3
Are you aware that rpcsec_gss/krb5 still works for v3?
There are a few holes left (sideband protocols, notably mount, still use
auth_sys), but it might be enough for your purposes.
> but in my
> case I guess I have to revert the public shares back to NFS3. It would
> be really great if you could think about implementing a umask
> mount-option to allow enforced share based umask settings.
>
>
> >> How do other people share public files with NFS4? If there is no other
> >> way than setting the users's umask to 002, this would practically
> >> limit the use of NFS4 to private shares like home directories.
> >
> > I don't understand why--can't you use the user-private-group trick?:
>
> - umask setting can be overriden easily - see above
I'm surprised people fool with their umasks that much, but OK.
> - we actually have directories where files should only be group readable.
I don't get it--why not set an inheritable acl on those directories that
permits only read to the group?
--b.
next prev parent reply other threads:[~2009-03-24 20:10 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 [this message]
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
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=20090324201002.GF19389@fieldses.org \
--to=bfields@fieldses.org \
--cc=albremer@googlemail.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trond@netapp.com \
/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