[nfsv4] Re: Our different approaches to draft POSIX ACL support in NFSv4
Rick Macklem <rick.macklem@gmail.com> Mon, 22 July 2024 23:13 UTC
Return-Path: <rick.macklem@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 C544AC14E513 for <nfsv4@ietfa.amsl.com>; Mon, 22 Jul 2024 16:13:40 -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 TUOnyDsY6lGk for <nfsv4@ietfa.amsl.com>; Mon, 22 Jul 2024 16:13:40 -0700 (PDT)
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B620C14F5F3 for <nfsv4@ietf.org>; Mon, 22 Jul 2024 16:13:40 -0700 (PDT)
Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-70d1fb6c108so1094365b3a.3 for <nfsv4@ietf.org>; Mon, 22 Jul 2024 16:13:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721690019; x=1722294819; 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=WWkFxj4NPYOggNxsikZRVgq9v3nOSE9Og/KW/Jnhr3c=; b=B0Q/hEvpVkRSe1jnxC5NcORyqnT3+k/cvIgTP3rf7kPQ9dl2fqb0YJIiH1/gB3Ta6U Iqv+ZW9zGIC6xFGALzU9jVTqpfWKEf+zLWAM48CxxMn3tA71+iDEwNClen2UYAfRZpc3 U2ykPg/4U8gngz/uIo1Ol3CyDkX26bXj3fCMQm//7M75ZhkrfQHTfEJmcs0FDx3qvw/w TOia6qZ5dU0v/fVeyjGfSx0uFeIXCRPaWSiI2U/3wV1E1J0mI8l4uFEC1R2wMk4jXDLA cwk2oai5o+2kjhDpvJFedgjU0Uyq36USpn+UGxXhH6HGcDqMP8+MK42lZWf04VA8gFGA 7EMg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721690019; x=1722294819; 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=WWkFxj4NPYOggNxsikZRVgq9v3nOSE9Og/KW/Jnhr3c=; b=LxhVXfx9zPa23wv65gxpQK8MXKz5x6ljr2gQoAmWGQxOBA8UsAL5apcmFMilUEcCEM WV7dDa44xdmKJXj/iKzYkSVVpzQVvYT2TWWW6znY+xQBk5s7BSJxc/UZKjiNKPXqj/Kf 9Qr5mX1cL09RFfdr4vmFmLRhf5msyfacfxpC47s27Rl28iMWcKLQWUPiCxI09AKQJd7T xQwPbfHkhp3CSAy4ObGR1SUehC+UvW88kJFgXRSv/yjqEC5bH5V4olasyjuIbDd1jnYf Eg3tUUiFkH9PfwrbxuyVG7H9SKP97fJ9SFtMkIGmvUqFdYmQrWbG812Gcvf2PrUAjP6R eqJA==
X-Forwarded-Encrypted: i=1; AJvYcCVJoRGWQWiieGj0bw5F3BvwI9NghzpANF3nFEYbG6H3nJoG4C9B6lRlbLf6dAWu5Av0QnmiH/FwusppuXHecA==
X-Gm-Message-State: AOJu0YwwT1AmDbJjFLb74upERDykcN6wxc/nJqlgXDTaMIFCqnFgSZf5 Qozk0a/yNFD2WRqk/xFRyJHY4lncgX93ji3Q8aP6yaCVnHjqYvqOP3ZmTywS+b+nqi3KV/OiWg7 tzEQjQFxG1CsUyXMWIGGazggwjw==
X-Google-Smtp-Source: AGHT+IF6ChUalKGvf55CT747eqbPS25Hsaumwm56TlyohhxH2TQswqBxXlBX/UZEjIfdiZ228xLWwqgFw1BXwpSjznM=
X-Received: by 2002:a05:6a21:99a6:b0:1c0:e3bb:83ba with SMTP id adf61e73a8af0-1c428573440mr6570547637.5.1721690019274; Mon, 22 Jul 2024 16:13:39 -0700 (PDT)
MIME-Version: 1.0
References: <CADaq8jdvZ5pcFNN5zjuVHLTO30v9=2kYKzFdRxxbkTmHYZdTdA@mail.gmail.com> <CAM5tNy7Fw954gCzYHCTjRg7th_njSHhxznni48Zz4xsSXT631A@mail.gmail.com> <53DAEF45-2A4D-4066-97C2-7B09018DE99B@oracle.com>
In-Reply-To: <53DAEF45-2A4D-4066-97C2-7B09018DE99B@oracle.com>
From: Rick Macklem <rick.macklem@gmail.com>
Date: Mon, 22 Jul 2024 16:13:27 -0700
Message-ID: <CAM5tNy6a4ZG90i2ugXzuPqQ1zrsK9m8jLRKmv9VpnFG6m_Pqew@mail.gmail.com>
To: Chuck Lever III <chuck.lever@oracle.com>
Content-Type: multipart/alternative; boundary="000000000000032844061dde323b"
Message-ID-Hash: MFMMQJJZAUNFPM7RFGJGT2MISBLQDL3C
X-Message-ID-Hash: MFMMQJJZAUNFPM7RFGJGT2MISBLQDL3C
X-MailFrom: rick.macklem@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>, Bruce Fields <bfields@fieldses.org>
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [nfsv4] Re: Our different approaches to draft POSIX ACL support in NFSv4
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/qf7bv3ibEWxHFK95y4RUwst8ZUs>
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, Jul 22, 2024 at 8:29 AM Chuck Lever III <chuck.lever@oracle.com> wrote: > > > > On Jul 5, 2024, at 4:09 PM, Rick Macklem <rick.macklem@gmail.com> wrote: > > > > On Thu, Jul 4, 2024 at 5:22 AM David Noveck <davenoveck@gmail.com> > wrote: > >> > >> I'd appreciate it if you took a look at what I've done to better > support draft POSIX ACLs in NFSv4.1 and let me know your thoughts. > > I have glanced at it. I think my opinion is already well known, > > however it does not matter.. > > Why? > > Because Trond will decide what goes in the Linux NFSv4 client and > > NFSv4 server implementors will do > > whatever the Linux NFSv4 client wants/needs. > > I have encouraged Trond to comment. Until he does, I do not see any > > reason to proceed further w.r.t. POSIX draft ACLs vs NFSv4 ACLs. > > > > W.r.t. servers that implement a subset of NFSv4 ACLs natively, I will > > comment on nfsv4@ietf.org if/when I have a > > chance to look at what your draft proposes and compare that with what > > OpenZFS currently does. > > (I doubt the OpenZFS ACL semantics can change, but ??) > > > > rick > > > >> > >> There is a lot of work directed toward such support in acls-04. It > takes a different approach than your earlier proposal to create two new acl > attributes in that it treats the issues within the framework of the > existing ACL model, albeit with some major conceptual restructuring (but > leaving the existing XDR pretty much intact.). > >> > >> I am still open to approaches that strive to be more > draft-POSIX-ACL-oriented as discussed in my Appendix C.1 but feel those > will have to wait until NFSv4.2. It would be good if we can discuss those > and get enough agrrement to start implementation work on a common approach > to these issues. > >> > >> Right now, I'm prototyping the draft-POSIX-ACL support described within > acls-04 and I have no immediate plans to try anything in Appendix C. > However, if you have plans for client implementation work for > draft-POSIX-ACL-related implementation work, I could look at doing some > v4.2 prototype to match. I think we could do this before drafting a > proposed v4.2 extension. > > For unrelated reasons I'm currently looking at the Linux NFSACL > implementation, and questions about how that will relate to any > future NFSv4 POSIX ACL implementation started to bubble up in my > mind. > > Reading acl04, I find few if any references to preceding efforts > to handle POSIX ACLs within the framework of NFS. > > One place to start addressing that omission is to understand how > POSIX ACLs are handled by the pre-existing NFSACL protocol, and to > consider making any NFSv4 POSIX ACL extension compatible with that > work. That will help make existing implementations of POSIX ACLs > on NFSv3 more straightforward... not to mention preventing semantic > changes between NFSv3 and NFSv4 mount points that would make > deploying NFSv4 POSIX ACL support needlessly fraught. > > However, that would require surfacing a specification for the > NFSACL protocol. If one exists, it no doubt will have similar gaps > in its discussion of ACL and authorization semantics as the ones > Dave attempts to address here. (ie, it is indeed a challenging > subject to write about). > > Btw, I'm not suggesting that I currently know that such a > specification is available. To my knowledge, independent > implementations of NFSACL were reverse-engineered from the > Solaris on-the-wire behavior. > I just looked at opensolaris/usr/src/head/rpcsvc/nfs_acl.x which I think is the closest thing there is to a spec. for NFSACL. (FreeBSD does not implement this protocol and all I know about it is what this little .x file indicates.) It appears to handle POSIX draft ACLs in a manner similar to what new POSIX draft ACL attributes would do. The only difference appears to be that it provides a way for a client to query to find out how big the ACL list is without getting the actual ACL. (This could be done via additional new attributes, I think?) Here's a snippet of nfs_acl.x that I found interesting... /* * XXX { * This is a transitional interface to enable Solaris NFSv4 * clients to manipulate ACLs on Solaris servers until the * spec is complete enough to implement this inside the * NFSv4 protocol itself. NFSv4 does handle extended * attributes in-band. */ /* * This is the definition for the GETACL procedure which applies * to NFS Version 4 files. */ struct GETACL4args { nfs_fh4 fh; u_int mask; }; struct GETACL4resok { post_op_attr attr; secattr acl; }; struct GETACL4resfail { post_op_attr attr; }; union GETACL4res switch (nfsstat3 status) { case ACL4_OK: GETACL4resok resok; default: GETACL4resfail resfail; }; /* * This is the definition for the SETACL procedure which applies * to NFS Version 4 files. */ struct SETACL4args { nfs_fh4 fh; secattr acl; }; struct SETACL4resok { post_op_attr attr; }; struct SETACL4resfail { post_op_attr attr; }; I found the comment amusing. Note that "secattr" is the POSIX draft ACLs similar to what I proposed as new attributes for NFSv4.2. (The "mask" in the argument seems to indicate whether the client wants the count of entries in the ACL or the actual ACL.) Note that there are basically identical definitions for NFSv2 and NFSv3, except for the nfs_fh version. rick > > -- > Chuck Lever > > >
- [nfsv4] Our different approaches to draft POSIX A… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Chris Inacio
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Chris Inacio
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… Chris Inacio
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Chris Inacio
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… Trond Myklebust
- [nfsv4] Re: Our different approaches to draft POS… Christoph Hellwig
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Chuck Lever III
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem
- [nfsv4] Re: Our different approaches to draft POS… David Noveck
- [nfsv4] Re: Our different approaches to draft POS… Rick Macklem