[nfsv4] Re: Interim meeting agenda topics

David Noveck <davenoveck@gmail.com> Mon, 09 September 2024 17:58 UTC

Return-Path: <davenoveck@gmail.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 446FBC15199A for <nfsv4@ietfa.amsl.com>; Mon, 9 Sep 2024 10:58:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.108
X-Spam-Level:
X-Spam-Status: No, score=-2.108 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OVUbH-jJ___l for <nfsv4@ietfa.amsl.com>; Mon, 9 Sep 2024 10:58:09 -0700 (PDT)
Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 445D1C14F705 for <nfsv4@ietf.org>; Mon, 9 Sep 2024 10:58:09 -0700 (PDT)
Received: by mail-qv1-xf33.google.com with SMTP id 6a1803df08f44-6c354415c19so25902626d6.2 for <nfsv4@ietf.org>; Mon, 09 Sep 2024 10:58:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725904688; x=1726509488; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=x/j+WBU2H1SNY8gDiynj1gdhMmHw78Z3QXazPs8dsKg=; b=SBwQnKUSxl4eRd35h4R5b8Cs3qtX1x2ZEdsjLAfdsw+DkPVX5YTEmgq9ZRu46zG9+r +6cjNqOLiQDWn4THWrHojmsEpKH8uROgSU4Qv+3bAu5tW29NgU+M0Bqnj8CPF8Kp0rVK T2hOpKOFQy5DFhKfVRTPtClmsOmVu+mrt6pNhhIe2DDn14h8hOyRaLIJGaiHLHzTAOsT RgxtItqVYltQ9j2uLd77fLJxCHRklZntkVJSdFFiE3lt1spfs5neVegFTraFc7KUiN22 YIOBGZq2PB6ebN7sXZI2gLa0omKYg93dQQPi7ZbbFYig+43z//JWbgS+zgr3cq5VjBGW 9V9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725904688; x=1726509488; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=x/j+WBU2H1SNY8gDiynj1gdhMmHw78Z3QXazPs8dsKg=; b=gOsuUQsWQIwPrw6dO7JOTrCTYOt3fsx3ggruKLD8JuVhcV2c52RrNSeXQUE4oF6o88 Mxs9Kvgnlbyp/Y+M4HhjrNQSgEJCVlRRb1lH1ERX1R+XuF/Jy6j8UNG3L7f9XiNeS/zj nmmMenz+eILYTyBxTzsUSnj5S1xZlyvhnE/wJx7oSfv1Q3x0EdrGFwkdYRflqE30pRZM txSBANFxdhk1fzKqVktAhcmwh/Fi5veYkW5w3UylhV+BQqEaIk60rVOprhR28OWZgJRn 8Wcb/R0X30yxQ0W14TcEme4Z11qJ7J1u4Zq32h0GSSYzG7IDOjAqkbtygkIwcem2so0f CR5g==
X-Forwarded-Encrypted: i=1; AJvYcCUEtWX4qvY/koR6JOUoPmRJsJ4oVOzy52sBCDIw6ehzA+mpotRTb0sbTQXGkEsPTbYDGDUVyw==@ietf.org
X-Gm-Message-State: AOJu0Yzug6vkn0/wUJmgdYqlLsezJ5UTt6eHfb4bBIdxYh7Fw6n4Pm73 /A9hZfsJUnX/urpUTbKEWLkzWp63IRBtM9wZWC+0H/nYEnMbWCbCekVk9D504zC1fyJq0HfEkYq n3tsMH2SCi+IkLH0PLAoOIaA4rxrULw==
X-Google-Smtp-Source: AGHT+IHRgSJAAzueeHxQH+wwivxgy0cztbC7kpbgHQSwjdbGRdJ+2YJJAon3RRCgEr8LtGggR2/tg77EkKOmyMl49Us=
X-Received: by 2002:a05:6214:43c1:b0:6c3:5052:7e46 with SMTP id 6a1803df08f44-6c52853102emr113081116d6.52.1725904688293; Mon, 09 Sep 2024 10:58:08 -0700 (PDT)
MIME-Version: 1.0
References: <F2FA0129-5780-4257-8E18-E04865D6BCC4@cert.org> <CAM5tNy7fhU5s+EufRS3aq2zYSdjrtD_ijj1RgHcTv0WzGcbT0Q@mail.gmail.com> <CADaq8jey55znu5J1amhRj6F5uwoE=hO81ghEqZtrnsVw=_N5Pw@mail.gmail.com> <20240908163411.e2vobyl7yhaz6sdt@pali> <CAM5tNy601LJAW2q98ntkiWKDriVXbOchmY0VsNqy=Qye3d9Luw@mail.gmail.com> <CADaq8jdPDWWHNZpqw7fPubXbaH9YZahuCcOj84+b9=k3y9Z5zg@mail.gmail.com> <20240909081448.hyuald3xhz3ctmpc@pali>
In-Reply-To: <20240909081448.hyuald3xhz3ctmpc@pali>
From: David Noveck <davenoveck@gmail.com>
Date: Mon, 09 Sep 2024 13:57:57 -0400
Message-ID: <CADaq8jczd32Fo17x8KX=XJ9e93XJdcYhpGggLzjUdmwJPZsR3g@mail.gmail.com>
To: Pali Rohár <pali-ietf-nfsv4@ietf.pali.im>
Content-Type: multipart/alternative; boundary="000000000000dcafbb0621b37fe3"
Message-ID-Hash: XTITZRIT2ZDSNSGJHBNCXFAM4Q6I5EH6
X-Message-ID-Hash: XTITZRIT2ZDSNSGJHBNCXFAM4Q6I5EH6
X-MailFrom: davenoveck@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-nfsv4.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: NFSv4 <nfsv4@ietf.org>
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [nfsv4] Re: Interim meeting agenda topics
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/Kwl7zgLW034ZseDivq10js00sdQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Owner: <mailto:nfsv4-owner@ietf.org>
List-Post: <mailto:nfsv4@ietf.org>
List-Subscribe: <mailto:nfsv4-join@ietf.org>
List-Unsubscribe: <mailto:nfsv4-leave@ietf.org>

On Mon, Sep 9, 2024, 4:14 AM Pali Rohár <pali-ietf-nfsv4@ietf.pali.im>
wrote:

> On Sunday 08 September 2024 19:24:27 David Noveck wrote:
> > On Sun, Sep 8, 2024, 6:12 PM Rick Macklem <rick.macklem@gmail.com>
> wrote:
> >
> > > On Sun, Sep 8, 2024 at 9:34 AM Pali Rohár <
> pali-ietf-nfsv4@ietf.pali.im>
> > > wrote:
> > > >
> > > > On Sunday 08 September 2024 12:05:54 David Noveck wrote:
> > > > > On Fri, Sep 6, 2024, 4:35 PM Rick Macklem <rick.macklem@gmail.com>
> > > wrote:
> > > > > > What is left to be resolved / is controversial on the POSIX_ACL
> > > draft?
> > > > >
> > > > > Nothing from my point of view.  I don't know of any issues Rick
> has.
> > >  It
> > > > > is reasonable to expect that anyone who does have issues to raise
> them
> > > on
> > > > > the list.   We may need to confirm the non-existence of such
> issues at
> > > the
> > > > > forthcoming interim meeting.  I think we should allocate five
> minutes
> > > for
> > > > > this.
> > > >
> > > > Hello, I have already pointed one issue on the list - problem with
> mode
> > > > attribute (two meaning modes: NFS4 and POSIX) and its
> backward/forward
> > > > compatibility on existing NFS4 servers for clients without POSIX ACL
> > > > extension.
> > > I'll admit I just do not understand what you are thinking.
> > >
> >
> > My response is the same.  I guess we need to discuss this at the next
> > interim meeting.
>
> Sorry for that, I was not clear enough. Model is fine, POSIX ACL
> extension and POSIX ACL attributes are fine too.
>
> My point was about existing NFS4 attributes 33 (mode) and 74
> (mode_set_masked).
> Meaning of these NFS4 mode attributes (in both NFS4.0 and NFS4.1/NFS4.2) is
> slightly different than what IEEE POSIX ACL draft requires.
>

I don't understand how the "meaning" is different.  As I understand it,
neither Rick's document nor the definition  changes the meaning of the
mode.  These documents do change the value of the mode attribute so that it
reflects the ACL set.  However, the two documents agree on this setting, as
they should.


> It is similar to the issue that NFS4 ACL attributes 12, 58 and 59 are
> different than IEEE POSIX ACL.


It is quite dissimilar.  The NFSv4 attributes you mentioned were intended
to be different than draft POSIX ACLs.  That was probably a mistake, but we
can't undo that mistake now, decades later.

And this was solved in extension document
> by allocating a new attributes which would serve POSIX ACL structures.
>

It will be solved once we publish that as an RFC.

>
> In my personal opinion, the best would be if also for POSIX ACL mode
> would be allocated new attribute, in exactly same way as was added POSIX
> ACL attributes.


I understand thatis your personal opinion.  We need to here  a reason to
add a new attribute.

> So it would be present only if file has
> POSIX true ACL

> form.


But why?

And let existing attribute 33 for its original meaning (from
> RFC8881) independently of what is the true form.
>

The meaning has been the same fron rfc3010 onwards.

>
> > For the proposal, at any one moment in time, a file object on the server
> > > will have, at most, one "true form" ACL. (Where "true form" is the ACL
> > > that is stored for the file object and used to determine access to the
> > > file.)
> > >
> >
> > The treatment in the latest acl draft is consistent with that model.  It
> > provides for extensions such as yours, which define additional ACL models
> > with the assumption being that there will be at most one ACL model in
> > effect for any fike system object at any time.  The job of defining new
> ACL
> > models is left to extensions as such as yours.
> >
> > >
> > > As such, I cannot understand why you would think there are two modes?
> > > (Where "mode" refers to the low order 9 bits of the mode attribute.)
> > >
> > > The interaction between setting of the low order 9 bits of mode and the
> > > setting of an ACL is determined by which "true form" the ACL has.
> > >
> >
> > Yes.  According to the latest ACL draft, the job of defininin those
> > interactions in job of the acl document only when the ACL model in effect
> > for that object I'd the NFSv4 ACL model.  When it is any other ACL model,
> > it is the job of the standards-track extension defining that new ACL
> > model.
> >
> > >
> > > For the weird case where a SETATTR is allowed to set an ACL of the
> > > other "true form" for a file object, the mode bits will be updated the
> > > same way as they would be if that ACL was set for the file object at
> > > any other time (ie. no previous ACL or a previous ACL of the same "true
> > > form"
> > >
> >
> > Agree. Although you describe this case as wierd, I cannot disagree but
> have
> > to point out that this is much less weird than a number of presidential
> > candidates :-)
> >
> > >
> > > W.r.t. clients that do not support the extension...
> > > These clients might set the mode bits and the effect would be no
> > > different than what occurs now.
> > > --> For a server that uses a "true form" of POSIX draft ACL, that
> > >      ACL might change, just as would happen now. It's just that the
> client
> > >      cannot actually "see" the ACL.
> > >
> > > W.r.t. servers that do not support the extension...
> > > The attributes will not be in the supported_attrs list and any
> > > attempt to GET/SET them should fail.
> > >
> > > rick
> > >
>
> The problem is with existing server which via MODE4_RGRP, MODE4_WGRP and
> MODE4_XGRP controls permissions of the OWNER_GROUP-only (per RFC8881).
> So changing these bits never affects principals with kerberos ticket
> which does not contain OWNER_GROUP in it. Clients using this NFS4 server
> can have a contract that this would always apply as a security thing.
>

There is no such contract although people might have such an expectation.


> Now, if the existing server implements POSIX ACL extension then for
> files which are in POSIX ACL true form would have to change meaning of
> MODE4_RGRP, MODE4_WGRP and MODE4_XGRP bits.


The meaning is not changed.

This server can serve data
> to both new POSIX clients (which will implement this extension) and also
> to clients from previous paragraph (without POSIX extension). So the
> NFS4 POSIX client with the POSIX extension (e.g. Linux or FreeBSD) can
> set ACL on new (or existing) file (ACL for more ACL_USER and ACL_GROUP),
> and server will automatically change true acl from from NFS4 to POSIX.
> All this is fine. The problem happens now when the non-POSIX NFS4 client
> from previous paragraph wants to just change permissions for users
> affected by primary group. So this client from previous paragraph per
> contract arguments will just change MODE4_*GRP bits and it will expect
> that this change does not affect permissions of other users.


If he has this expectation with regard to a local file, what happens?  My
understanding is that the effect would be the same as that provided for by
Rick's document.  If it isn't,  we have a problem and we can discuss how to
fix it.  It is possible that the decision to define the mode interaction in
this way was a mistake but our chances of fixing something like that now
are just about non-existent.

> But in

> reality it will change access to everybody except ACL_USER_OBJ and
> ACL_OTHER, per IEEE ACL draft (as MODE4_*GRP controls MASK). And this
> will break the contract for existing clients from previous paragraph.
>
> So if these existing servers do not want to break contract with existing
> non-POSIX NFS4 clients then they either are disallowed to implement
> POSIX ACL extension. Or they would have to somehow figure out if the
> connected client is POSIX-compatible or is not with this POSIX
> extension. For server one option could be to inspect OP_EXCHANGE_ID
> request (client put there its identification) and based on this the
> server can "detect" if the client is POSIX or not, and "process"
> attribute 33 in different way for POSIX and non-POSIX clients.
>
> Now if I'm looking at this, the best for these scenarios can be to
> separate POSIX ACL mode bits into new NFS4 attribute. So existing NFS4
> clients can use attribute 33 as before, server would process attribute
> 33 always as before (so server can MODE4_*GRP map just to group owner,
> not to mask). And for files in ACL true form there would be new
> attribute and POSIX client with this extension would know that the
> MODE4_*GRP of this new attribute would be MASK (if the POSIX ACL has
> MASK entry). This would allow for existing servers to have coexistence
> with existing non-POSIX NFS4 clients, new POSIX NFS4 clients with
> extension. And also would allow servers to continue serving in attribute
> 33 what was there before, independently of the true ACL form. Like for
> attribute 12, where server can provide POSIX-MAPPED-to-NFS4 form.
>
> Hopefully, this is more clear what I mean about forward and backward
> compatibility.
>

You are very unclear when you refer to "POSIX"  and "NON-POSIX" clients and
when you confuse user expectations with contracts.


> Anyway, it is up to you. I'm just trying to show some examples of the
> real issues and solution for it, to prevent future problems.
>

Fair enough.  It is up to Rick whether he wants to mention issues regarding
the unexpected results of changes in group bits.  If he does, we can
summarize the issues.  As far as fixing these issues, we cannot go past
matching the behavior of unmediated local access.