[nfsv4] Review of draft-ietf-nfsv4-posix-acls-02
Chuck Lever <cel-ietf@chucklever.net> Wed, 09 September 2026 20:08 UTC
Return-Path: <cel-ietf@chucklever.net>
X-Original-To: nfsv4@mail2.ietf.org
Delivered-To: nfsv4@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 025E4137E9404 for <nfsv4@mail2.ietf.org>; Wed, 9 Sep 2026 13:08:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1788984481; bh=Thx2uk5OCPrNFEe11IvP2Hv0hlwBSlG/nOuNZsA9+PM=; h=Date:From:To:Cc:Subject; b=F/V2/ub47Z4YwCx2FTcOCLSElBtdrtIpOvKHufr7Zh2xljZMNLNDJMZ3kyJhuLxOI 2NSexgq8MR0P0PFTEICxTtWzXAcy0FaBIrS5F1bmdZEfv1Co0lLgaMiD2VqmbMOmk3 vo6YlnNODre9ke00gvSBz54k5c0UVs1us14732I8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=chucklever.net header.b="FeXOCxKO"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="SDMLsYjv"
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pyNb2DnERKt5 for <nfsv4@mail2.ietf.org>; Wed, 9 Sep 2026 13:08:00 -0700 (PDT)
Received: from fhigh-a8-smtp.messagingengine.com (fhigh-a8-smtp.messagingengine.com [103.168.172.159]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 46A18137E93FF for <nfsv4@ietf.org>; Wed, 9 Sep 2026 13:08:00 -0700 (PDT)
Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50]) by mailfhigh.phl.internal (Postfix) with ESMTP id E9F40140005D; Wed, 9 Sep 2026 16:07:53 -0400 (EDT)
Received: from phl-imap-15 ([10.202.2.104]) by phl-compute-10.internal (MEProxy); Wed, 09 Sep 2026 16:07:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chucklever.net; h=cc:cc:content-transfer-encoding:content-type:content-type :date:date:from:from:in-reply-to:message-id:mime-version :reply-to:subject:subject:to:to; s=fm3; t=1788984473; x= 1789070873; bh=Thx2uk5OCPrNFEe11IvP2Hv0hlwBSlG/nOuNZsA9+PM=; b=F eXOCxKOlYI7wnxzaNR7I97TDaqpPoLnTftswoI5hBtVqgPUW3lWEm1fhrPKkyvxC hSzvgPVl/5jg9COVEmp0i2MlVRVPSjcjm0NLN/GFoBmD23BbmWtekanyrzuNxovC qErtJiVDp3jByCM1ebM7kaUzDwAUxOsbjGucJtnKisictua7Syapb0LG7hYMR8cr 5qwFeFKyhQIIm9fiLSHYO7Mn74icQZOCMX12FHzhjD3j/NaMyRXWUCQq6o+akE8Z htMC+7uCqu+S5JkJOcQ7LwzAwyhyOY84ZSu+5iKWwjkyIZNJiCu93faXx1GjmKey Op03doU7z0lv5JAhKvZwQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1788984473; x=1789070873; bh=Thx2uk5OCPrNFEe11IvP2Hv0hlwB SlG/nOuNZsA9+PM=; b=SDMLsYjvAF36drWjtdz9OiMIdUbhivKq9Ce7AJAQo6cD w1PPRneAcOuXaytp16Egn/ah+xyoR0eWBLseoMmF1a1rvAlZ2nQKrvSgzmB7wRVe Y2Zg95DUBo8RkxBmaPRlC+9WjGuwHkex5pVPOwQQCkjR7gUYzw7WbwOEmcPbLHW8 hcrxnPEzE+yP1pYqejgRBwTwVnVWn8cVTrsaHMuawtUIwbZBQyIKRkIdnVxGN0Ek D2lgg9Gaq8s74yvtVE3X7IPKg6p8mvBTZwzH98bF9qWdl7HOZ3X3Xgyvnmbrt9Ai iFU8jyZwjda6kl3R7qPOeIgHj6aBQT1O5Mz4BzgKDw==
X-ME-Sender: <xms:mbyhauNTcAZXRqrp7nyFKIyM1oaQefOMF1AUpLBH1OMWaxOUxqXK3A> <xme:mbyhanx9BLT1rkUnIi8p7fNPp11KckR_g6UphTFL1sFc494LCYxPDzNnF503vn5T- NgkTUYhUBINNlBdzF8fVlkxPjUKN2cfZyY_GZbzc8He_HB4EBeIgmD0>
X-ME-Proxy-Cause: dmFkZTGpRq87VA00SjafLodLoA99P8jtCM3jwfJKUGC5udhuOYJmJtucSyPx7Gm2ZkRXxe 31KVTZ8PgK/nzeZ84fnuOc/l8GvbXfFdByq3VbPM/lvPkYHSYWDmTu7FHqthccOLvZRLGs jMu8jwrbO+BBjSGX3rsdZR3O/m4tvNBe3SDwBH+jBFukDQY0cXeCjq3FFrTJBM8GcN0CIn tttMFhQMQZj2Ozz+JeEdtVwdJu6v3d1YMdllbAXfCS2cE88dK0FcviXp+syRTT0x7sjmFS WQAsWA+wLEE/L3+QtqpVoSACYAAwxGT3K1WCCtRvEnYJhpuGvW7s5QOqaXz2+GS1yNWIuL oc0a2GbXUv7NuhKL3qIIt3QOzLhs9fyfhhQw9cYVXlLkGOVEwXrC19Dsa4C93T6gVMuM2X vFm2VZ5VxVbMa3/QuvbzG6wy9pd+OyLg64HrH4HVpCCInkwLoscfOM0Y+q4Zw8tW4Wm6oO su+PoqsFWfrFeFTr65mlKoeYhDnnp3UmWw6CsS+d6XF2eaYpq6V3OhfwIA1UWUl8OhyP18 lveY3eNA1a1ZbAmBBOWncWhbTMQLOji7JggJVqFQtTST87B9p4YjXje3FUEVrayRR49vi4 Dx2mf5LIYIWkib7EVf+8FRuqFYtFYPlPRZC1os+zd1IoTVFioo6hJMZ5AQvw
X-ME-Proxy: <xmx:mbyhatsa4inOZOO1nsH2h62mLOI69kxzyA6iWUmNxsaKgdSfhnOC9w> <xmx:mbyhat4oHFdVbn-QABA787ar7Zl5srpUncDb94VhUFmYTfqLMnwF5Q> <xmx:mbyhauLi2sgKdMHRsNgap-4OcFqFu-XJKQStFMRB7cgzx9iQosBwxw> <xmx:mbyhat4pLDpB7sVK_Tu-T_cG1B2f5rpTDqVMdwadQIxK78rKjfh5nw> <xmx:mbyhauA-RwmulKBoSG-KyUOaprX0euKtBHY1-fM3MDtr-tu7S9V758N0>
Feedback-ID: ibe064b1f:Fastmail
Received: by mailuser.phl.internal (Postfix, from userid 501) id B77607811F0; Wed, 9 Sep 2026 16:07:53 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
MIME-Version: 1.0
X-ThreadId: AJJqS3sze4aF
Date: Wed, 09 Sep 2026 16:07:31 -0400
From: Chuck Lever <cel-ietf@chucklever.net>
To: nfsv4@ietf.org
Message-Id: <700d1fce-8a1f-48ee-b22f-06c74cfa6e1a@slotpi15m67>
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: IJMQ5HJWD5SMZMRHUOBNCP6DWBWDHKC6
X-Message-ID-Hash: IJMQ5HJWD5SMZMRHUOBNCP6DWBWDHKC6
X-MailFrom: cel-ietf@chucklever.net
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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [nfsv4] Review of draft-ietf-nfsv4-posix-acls-02
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/h0921NFgD1g4cb0YKMHWdN9At78>
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>
Rick, thanks for un-expiring the posix-acls draft! This review is as an individual contributor, not a chair position. It was prepared with AI assistance against the -02 text and the list archive, and I have checked each point below against the draft myself. The design of the proposed extension looks settled to me. The items below are what I think has to be resolved in the text before a WGLC can succeed. For brevity, I'm skipping editorial and nit-level comments in this pass. Issues 1. Attribute numbers 89 and 90 collide with draft-haynes-nfsv4-flexfiles-v2-08. Section 10 of this draft declares FATTR4_ACL_TRUEFORM = 89 and FATTR4_ACL_TRUEFORM_SCOPE = 90; the flexfiles-v2 XDR declares FATTR4_CODING_BLOCK_SIZE = 89 and FATTR4_CHUNKED_DATA_FILE = 90. Neighbouring numbers are already taken (delstid 83-86, uncacheable-files 87, uncacheable-directories 88). Rick and Tom, please coordinate on which draft moves, and record the assignment in Section 8 the way uncacheable-directories does for 88. Since posix-acls is already a WG document, IMHO it has squatters rights to the values 89 and 90. 2. Section 11 does not meet BCP 72 Section 5. It says only that accurate ACLs "should improve file system security when ACLs are used". Three things the body already establishes need to be stated there. First, RFC 8881 Section 6.2.1.3.1 binds ACE4_READ_ACL to "GETATTR of acl, dacl, or sacl" and ACE4_WRITE_ACL to "SETATTR of acl and mode"; the draft never says whether posix_access_acl and posix_default_acl are governed by those bits, or what governs them on a POSIX-model server. Second, Section 6 says an extension-unaware client "may set the NFSv4 ACL (acl/dacl) attribute and switch a file object's acl_trueform to ACL_MODEL_NFS4", and the Section 6 bullets say the stored POSIX ACLs are then deleted; that is a residual risk and belongs in Section 11 with an applicability note. Third, mode synchronization (Section 6) and GETATTR atomicity (Section 7) are SHOULDs; Section 11 should say what a client that uses mode for local access decisions can be told by a server that does not honour them. RFC 8275 Section 6 is about the right size. 3. Section 5 leaves the create path undecided when a client sends mode. It requires that in a directory with a POSIX default ACL "the low-order nine bits of the mode MUST be specified by mode_umask", but Section 3 promises that extension-unaware clients continue to interoperate, and RFC 8275 Section 5 only says a client "should use mode_umask in place of mode". The draft does not say whether a server receiving mode intersects the default ACL with the already-umasked mode, rejects the operation, or ignores the default ACL. The server side is also unstated: RFC 8275 Section 5 says mu_umask is ignored when "an object inherits any ACEs from its parent directory", written for NFSv4 ACEs, and this draft never says a POSIX default ACL counts as inherited ACEs for that purpose. Please state both. 4. Section 4 misdescribes the mask. It says "the permission bit must be set in both the Group_obj or Group ACE as well as the Mask ACE for permission to be granted." In POSIX draft ACLs the mask also bounds named User entries (acl(5): "the maximum access rights that can be granted by entries of type ACL_USER, ACL_GROUP_OBJ, or ACL_GROUP"). A server built from Section 4 grants a named user their full ACE where every deployed implementation masks it. The later sentence about group mode bits "limiting the upper bound for the Group_obj and Group ACEs" has the same gap. 5. The relationship between mode and the POSIX access ACL is normative only through a SHOULD that points at descriptive text. Section 6 says mode "SHOULD be synchronized with the true form ACL ... synchronization is described in Section 4", and Section 4 introduces itself as "a brief description of POSIX ACLs as they are currently implemented by various vendors" with no requirements language. RFC 8881 Section 6.4.1 states the NFSv4 counterparts as server requirements. The draft needs to decide whether a server supporting posix_access_acl MUST keep mode and the access ACL consistent, and if so promote the Section 4 rules. Pali's 2024 point that group mode bits reflecting the mask conflicts with RFC 8881's definition of mode still has no answer on the list, and belongs in the same decision. 6. The thread on my review of draft-rmacklem-nfsv4-posix-acls-13 (https://mailarchive.ietf.org/arch/msg/nfsv4/kEHzr0uvQ0XakdV-I3jILV2QIPQ/) ended with several points still open: the behaviour of a server that supports both ACL models on one file system, what a client is expected to do with acl_trueform_scope, and how an extension-unaware client on an ACL_SCOPE_FILE_OBJECT server is protected from silently converting a POSIX ACL to an NFSv4 ACL. My last message in that thread asked why a client that can ignore acl_trueform_scope entirely needs it in the protocol. -00 through -02 do not address those points and there has been no follow-up on the list. Other comments Section 9.3 says deleting a default ACL "might set the file object's acl_trueform to ACL_MODEL_NONE". Under ACL_SCOPE_FILE_OBJECT a directory can be ACL_MODEL_POSIX_DRAFT with only a default ACL. What does GETATTR of posix_access_acl return in that state, and is "might" a server choice? The typedefs binding the attribute numbers to their XDR types (typedef aclmodel4 fattr4_acl_trueform; and the other three) were added in -01 and removed in -02. Without them the XDR never ties attribute 89 to aclmodel4. Was the removal intended? Section 13.1 says the FreeBSD implementation "does not explore the case of ACL_SCOPE_FILE_OBJECT", and the Linux patch is tested against that server. The Section 6 rules for that scope are the most intricate part of the document and nothing has exercised them. It would help a WGLC if something did, or if the draft said which implementation is expected to. Both Section 14.2 references that define the ACL model are informative, and [IEEE] carries no locator for a withdrawn draft that cannot be found. Section 5 rests a MUST on it. Possibly add a sentence in Section 3 or 4 that this document is normative for posixace4 semantics, with [Gruenbacher] as the description of the model it follows. -- Chuck Lever
- [nfsv4] Review of draft-ietf-nfsv4-posix-acls-02 Chuck Lever