From: Andreas Gruenbacher <agruen@suse.de>
To: nfsv4@ietf.org
Cc: Sam Falkner <Sam.Falkner@sun.com>, Lisa Week <Lisa.Week@sun.com>,
"J. Bruce Fields" <bfields@fieldses.org>,
nfs@lists.sourceforge.net,
Spencer Shepler <spencer.shepler@sun.com>,
Brian Pawlowski <beepy@netapp.com>
Subject: Re: [nfsv4] Re: NFSv4 ACL and POSIX interaction / mask, draft-ietf-nfsv4-acls-00 not ready
Date: Tue, 11 Jul 2006 02:44:30 +0200 [thread overview]
Message-ID: <200607110244.31010.agruen@suse.de> (raw)
In-Reply-To: <20060710223939.GL10035@fieldses.org>
On Tuesday, 11. July 2006 00:39, J. Bruce Fields wrote:
> On Mon, Jul 10, 2006 at 05:26:32PM -0500, Sam Falkner wrote:
> > On Jul 10, 2006, at 1:57 PM, J. Bruce Fields wrote:
> > >If we're committed to getting the mask ace right, though, I would
> > >prefer to adopt one of Andreas's solutions; they'd allow us to
> > >generate much simpler ACLs. I actually prefer the first proposal
> > >(letting the server use the mode bits to mask out permissions). But
> > >if we're going to add explicit mask aces, then please, let's add only
> > >one. I understand the theoretical advantage to masking out all three
> > >classes, but that's adding too much complexity for a few corner
> > >cases, and I don't think it's going to be easy for users to
> > >understand.
> >
> > How would a scheme that uses one and only one mask ACE work? Are you
> > thinking of catching mode 077 via a
> >
> > OWNER@:READ_DATA/WRITE_DATA/EXECUTE:DENY
> >
> > but having no way to catch mode 707 (because GROUP@:READ_DATA/
> > WRITE_DATA/EXECUTE:DENY might catch the owner)?
>
> Andreas's proposal was actually to add something new to the protocol
> (either a new attribute, or a new special entity (like "MASK@")) to
> transfer the mask. One of the advantages of doing that is that you'd no
> longer have to use a bunch of DENY ACEs scattered through the ACL, all
> carrying the same information. E.g. you'd the client to include an ACE
> like
>
> MASK@:READ_DATA:DENY
>
> and modify the NFSv4 acl-permission-checking algorithm to mask out any
> bitmasks anywhere other than OWNER@ or DENY@.
Another benefit would be that we can tell what are MASK entries and which
entries are not. That's not always possible with the DENY entries.
> But Andreas was proposing that we actually add 3 different types of
> masks, one for the OWNER@, one for EVERYONE@, and one for the others,
> and I think that's overkill. So that's what I'm arguing against.
The reason for adding owner and other masks was this: we want to be able to
turn off alternate permissions upon chmod and acl inheritance. We can already
easily do that for the File Group Class by cleaning the alternate mask bits
there; it's the same mechanism we also use for turning off additional mask
bits for chmod, for example. We need to be able to turn off alternate and
additional mode bits for the owner and for others as well in cases like
chmod. Now we could devise a different mechanism for turning off alternate
permissions for the owner and for others (like a bit somewhere), but that
would still leave us with the problem of how to turn off additional mask
bits. The NFSv4 ACL mask bits are more fine-grained that the POSIX mask bits,
and we don't want to destroy the granularity of the NFSv4 ACL mask bits when
masking permissions. Therefore, we need mask entries for the owner and for
others as well.
Consider this ACL:
OWNER@:READ_DATA/WRITE_DATA::ALLOW
GROUP@:APPEND_DATA::DENY
GROUP@:READ_DATA::ALLOW
EVERYONE@:APPEND_DATA::ALLOW
The corresponding mode is 0642 (rw-r---w-). POSIX applications will know
nothing about the fact that others are only allowed to append data to that
file. Now consider that a user does a chmod(file, 0) followed by a
chmod(file, 0642). Which permissions should others have after the chmod? Not
full write access I assume; POSIX applications should not remove restrictions
they are not even aware of by accident.
Using the same masking mechanism across all three classes and being able to
selectively turn alternate mask bits on and off for all classes can only be a
benefit.
> > >We could add a new ACE type (in addition to ALLOW, DENY, AUDIT,
> > >ALARM), and then a client could query the server's ability to
> > >represent the mask with the aclsupport attribute and decide whether
> > >it wants to add DENY's to represent the mask, or just give up on
> > >chmod reversibility.
> >
> > Please explain this further. What would the fifth ACE type do? What
> > would it give you that DENY wouldn't?
>
> It's just a way to pass the mask inside the ACL, but using a new ACE
> type instead of a new special entity.
Yes, that was one of the possible designs.
> The advantage is that a client can actually probe to see if the server
> supports it, so we wouldn't have to make it mandatory for a server to
> support it. But a separate attribute would also have that property.
Advantages of attributes are that clients will never be bothered with ACE
types they don't know. We can directly access attibutes, rather than scanning
for the right ACEs, inserting ACEs in case they are missing, etc. There will
be exactly three masks (or so I hope), and I don't see why we should need to
add more classes later. We can store all three classes as a single attribute
though; that may be more acceptable that three separate attributes.
Andreas
--
Andreas Gruenbacher <agruen@suse.de>
Novell / SUSE Labs
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
next prev parent reply other threads:[~2006-07-11 0:47 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-03 21:10 NFSv4 ACL and POSIX interaction / mask Andreas Gruenbacher
2006-07-07 11:55 ` NFSv4 ACL and POSIX interaction / mask, draft-ietf-nfsv4-acls-00 not ready Andreas Gruenbacher
2006-07-08 3:45 ` Sam Falkner
2006-07-08 6:51 ` [nfsv4] " Lisa Week
2006-07-10 21:09 ` Andreas Gruenbacher
2006-07-08 14:32 ` Sam Falkner
2006-07-09 16:22 ` [nfsv4] " Andreas Gruenbacher
2006-07-10 13:29 ` Sam Falkner
2006-07-10 14:15 ` [nfsv4] " J. Bruce Fields
2006-07-10 15:32 ` Sam Falkner
2006-07-10 18:57 ` [NFS] " J. Bruce Fields
2006-07-10 22:26 ` [nfsv4] " Sam Falkner
2006-07-10 22:39 ` J. Bruce Fields
2006-07-10 22:43 ` J. Bruce Fields
2006-07-11 0:44 ` Andreas Gruenbacher [this message]
2006-07-11 0:15 ` Andreas Gruenbacher
2006-07-11 5:42 ` [nfsv4] " Sam Falkner
2006-07-11 8:05 ` Andreas Gruenbacher
2006-07-11 12:29 ` [nfsv4] " Sam Falkner
2006-07-11 13:46 ` J. Bruce Fields
2006-07-15 13:56 ` [nfsv4] " Sam Falkner
2006-07-11 0:01 ` Andreas Gruenbacher
2006-07-11 0:28 ` [nfsv4] " J. Bruce Fields
2006-07-11 0:48 ` Andreas Gruenbacher
2006-07-10 22:50 ` Andreas Gruenbacher
2006-07-11 6:17 ` [nfsv4] " Sam Falkner
2006-07-11 8:45 ` Andreas Gruenbacher
2006-07-11 12:44 ` [nfsv4] " Sam Falkner
2006-07-11 6:50 ` Lisa Week
2006-07-11 8:55 ` Andreas Gruenbacher
2006-07-27 0:59 ` Andreas Gruenbacher
2006-07-27 2:57 ` Andreas Gruenbacher
2006-07-28 6:32 ` Lisa Week
2006-08-01 10:36 ` [nfsv4] " Andreas Gruenbacher
2006-07-14 17:59 ` [NFS] " J. Bruce Fields
2006-07-14 18:22 ` J. Bruce Fields
2006-07-14 19:02 ` Andreas Gruenbacher
2006-07-14 19:13 ` J. Bruce Fields
-- strict thread matches above, loose matches on Subject: below --
2006-07-08 15:04 Noveck, Dave
2006-07-08 19:27 ` [nfsv4] " Lisa Week
2006-07-10 8:07 ` Andreas Gruenbacher
2006-07-14 18:29 Noveck, Dave
2006-07-14 18:32 ` J. Bruce Fields
2006-07-16 13:10 Noveck, Dave
2006-07-18 22:08 ` Sam Falkner
2006-07-21 15:10 Noveck, Dave
2006-07-21 18:10 ` J. Bruce Fields
2006-07-23 15:47 ` Sam Falkner
2006-07-25 0:32 ` [nfsv4] " a.gruenbacher
2006-07-25 4:26 ` Sam Falkner
2006-07-25 20:15 ` Andreas Gruenbacher
2006-07-26 4:59 ` Sam Falkner
2006-07-26 13:00 ` [nfsv4] " J. Bruce Fields
2006-08-03 13:46 ` Andreas Gruenbacher
2006-08-04 0:30 ` Andreas Gruenbacher
2006-08-04 1:37 ` Sam Falkner
2006-08-04 10:35 ` Andreas Gruenbacher
2006-08-04 11:19 ` Andreas Gruenbacher
2006-08-04 20:20 ` Sam Falkner
2006-07-21 17:16 Yoder, Alan
2006-07-23 15:45 ` [nfsv4] " Sam Falkner
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=200607110244.31010.agruen@suse.de \
--to=agruen@suse.de \
--cc=Lisa.Week@sun.com \
--cc=Sam.Falkner@sun.com \
--cc=beepy@netapp.com \
--cc=bfields@fieldses.org \
--cc=nfs@lists.sourceforge.net \
--cc=nfsv4@ietf.org \
--cc=spencer.shepler@sun.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.