From owner-svn-src-head@freebsd.org Fri Sep 4 00:14:25 2015 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2317D9CA6DC; Fri, 4 Sep 2015 00:14:25 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 110BD147B; Fri, 4 Sep 2015 00:14:25 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id t840EPGi034823; Fri, 4 Sep 2015 00:14:25 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id t840ELno034811; Fri, 4 Sep 2015 00:14:21 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <201509040014.t840ELno034811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Fri, 4 Sep 2015 00:14:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r287445 - in head: bin/setfacl lib/libc/posix1e share/man/man9 sys/cddl/compat/opensolaris/kern sys/cddl/contrib/opensolaris/uts/common/sys sys/kern sys/sys tools/regression/acltools X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Sep 2015 00:14:25 -0000 Author: delphij Date: Fri Sep 4 00:14:20 2015 New Revision: 287445 URL: https://svnweb.freebsd.org/changeset/base/287445 Log: Expose an interface to determine if an ACE is inherited. Submitted by: sef Reviewed by: trasz MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D3540 Modified: head/bin/setfacl/setfacl.1 head/lib/libc/posix1e/acl_add_flag_np.3 head/lib/libc/posix1e/acl_support_nfs4.c head/share/man/man9/acl.9 head/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c head/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h head/sys/kern/subr_acl_nfs4.c head/sys/sys/acl.h head/tools/regression/acltools/tools-crossfs.test head/tools/regression/acltools/tools-nfs4-psarc.test head/tools/regression/acltools/tools-nfs4-trivial.test head/tools/regression/acltools/tools-nfs4.test Modified: head/bin/setfacl/setfacl.1 ============================================================================== --- head/bin/setfacl/setfacl.1 Thu Sep 3 22:15:56 2015 (r287444) +++ head/bin/setfacl/setfacl.1 Fri Sep 4 00:14:20 2015 (r287445) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 1, 2013 +.Dd September 4, 2015 .Dt SETFACL 1 .Os .Sh NAME @@ -378,9 +378,11 @@ dir_inherit inherit_only .It n no_propagate +.It I +inherited .El .Pp -Inheritance flags may be only set on directories. +Other than the "inherited" flag, inheritance flags may be only set on directories. .It Ar "ACL type" The ACL type field is either .Dq Li allow Modified: head/lib/libc/posix1e/acl_add_flag_np.3 ============================================================================== --- head/lib/libc/posix1e/acl_add_flag_np.3 Thu Sep 3 22:15:56 2015 (r287444) +++ head/lib/libc/posix1e/acl_add_flag_np.3 Fri Sep 4 00:14:20 2015 (r287445) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 30, 2014 +.Dd September 4, 2015 .Dt ACL_ADD_FLAG_NP 3 .Os .Sh NAME @@ -56,6 +56,7 @@ Valid values are: .It ACL_ENTRY_DIRECTORY_INHERIT Ta "Will be inherited by directories." .It ACL_ENTRY_NO_PROPAGATE_INHERIT Ta "Will not propagate." .It ACL_ENTRY_INHERIT_ONLY Ta "Inherit-only." +.It ACL_ENTRY_INHERITED Ta "Inherited from parent" .El .Sh RETURN VALUES .Rv -std acl_add_flag_np Modified: head/lib/libc/posix1e/acl_support_nfs4.c ============================================================================== --- head/lib/libc/posix1e/acl_support_nfs4.c Thu Sep 3 22:15:56 2015 (r287444) +++ head/lib/libc/posix1e/acl_support_nfs4.c Fri Sep 4 00:14:20 2015 (r287445) @@ -48,6 +48,7 @@ struct flagnames_struct a_flags[] = { ACL_ENTRY_NO_PROPAGATE_INHERIT, "no_propagate", 'n'}, { ACL_ENTRY_SUCCESSFUL_ACCESS, "successfull_access", 'S'}, { ACL_ENTRY_FAILED_ACCESS, "failed_access", 'F'}, + { ACL_ENTRY_INHERITED, "inherited", 'I' }, /* * There is no ACE_IDENTIFIER_GROUP here - SunOS does not show it * in the "flags" field. There is no ACE_OWNER, ACE_GROUP or Modified: head/share/man/man9/acl.9 ============================================================================== --- head/share/man/man9/acl.9 Thu Sep 3 22:15:56 2015 (r287444) +++ head/share/man/man9/acl.9 Fri Sep 4 00:14:20 2015 (r287445) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 18, 2009 +.Dd September 4, 2015 .Dt ACL 9 .Os .Sh NAME @@ -203,7 +203,13 @@ The following values are valid: .It Dv ACL_ENTRY_DIRECTORY_INHERIT .It Dv ACL_ENTRY_NO_PROPAGATE_INHERIT .It Dv ACL_ENTRY_INHERIT_ONLY +.It Dv ACL_ENTRY_INHERITED .El +The +.Dv ACL_ENTRY_INHERITED +flag is set on an ACE that has been inherited from its parent. +It may also be set programmatically, and is valid on both files +and directories. .El .Sh SEE ALSO .Xr acl 3 , Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c Thu Sep 3 22:15:56 2015 (r287444) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c Fri Sep 4 00:14:20 2015 (r287445) @@ -64,6 +64,8 @@ struct zfs2bsd flags[] = {{ACE_FILE_INHE ACL_ENTRY_NO_PROPAGATE_INHERIT}, {ACE_INHERIT_ONLY_ACE, ACL_ENTRY_INHERIT_ONLY}, + {ACE_INHERITED_ACE, + ACL_ENTRY_INHERITED}, {ACE_SUCCESSFUL_ACCESS_ACE_FLAG, ACL_ENTRY_SUCCESSFUL_ACCESS}, {ACE_FAILED_ACCESS_ACE_FLAG, Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h Thu Sep 3 22:15:56 2015 (r287444) +++ head/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h Fri Sep 4 00:14:20 2015 (r287445) @@ -189,11 +189,12 @@ typedef struct ace_object { ACE_DIRECTORY_INHERIT_ACE | \ ACE_NO_PROPAGATE_INHERIT_ACE | \ ACE_INHERIT_ONLY_ACE | \ + ACE_INHERITED_ACE | \ ACE_IDENTIFIER_GROUP) #define ACE_TYPE_FLAGS (ACE_OWNER|ACE_GROUP|ACE_EVERYONE| \ ACE_IDENTIFIER_GROUP) -#define ACE_INHERIT_FLAGS (ACE_FILE_INHERIT_ACE| \ +#define ACE_INHERIT_FLAGS (ACE_FILE_INHERIT_ACE| ACL_INHERITED_ACE| \ ACE_DIRECTORY_INHERIT_ACE|ACE_NO_PROPAGATE_INHERIT_ACE|ACE_INHERIT_ONLY_ACE) /* cmd args to acl(2) for aclent_t */ Modified: head/sys/kern/subr_acl_nfs4.c ============================================================================== --- head/sys/kern/subr_acl_nfs4.c Thu Sep 3 22:15:56 2015 (r287444) +++ head/sys/kern/subr_acl_nfs4.c Fri Sep 4 00:14:20 2015 (r287445) @@ -1068,6 +1068,7 @@ acl_nfs4_inherit_entries(const struct ac child_aclp->acl_cnt++; entry->ae_flags &= ~ACL_ENTRY_INHERIT_ONLY; + entry->ae_flags |= ACL_ENTRY_INHERITED; /* * If the type of the ACE is neither ALLOW nor DENY, Modified: head/sys/sys/acl.h ============================================================================== --- head/sys/sys/acl.h Thu Sep 3 22:15:56 2015 (r287444) +++ head/sys/sys/acl.h Fri Sep 4 00:14:20 2015 (r287445) @@ -249,11 +249,12 @@ typedef void *acl_t; #define ACL_ENTRY_INHERIT_ONLY 0x0008 #define ACL_ENTRY_SUCCESSFUL_ACCESS 0x0010 #define ACL_ENTRY_FAILED_ACCESS 0x0020 +#define ACL_ENTRY_INHERITED 0x0080 #define ACL_FLAGS_BITS (ACL_ENTRY_FILE_INHERIT | \ ACL_ENTRY_DIRECTORY_INHERIT | ACL_ENTRY_NO_PROPAGATE_INHERIT | \ ACL_ENTRY_INHERIT_ONLY | ACL_ENTRY_SUCCESSFUL_ACCESS | \ - ACL_ENTRY_FAILED_ACCESS) + ACL_ENTRY_FAILED_ACCESS | ACL_ENTRY_INHERITED) /* * Undefined value in ae_id field. ae_id should be set to this value Modified: head/tools/regression/acltools/tools-crossfs.test ============================================================================== --- head/tools/regression/acltools/tools-crossfs.test Thu Sep 3 22:15:56 2015 (r287444) +++ head/tools/regression/acltools/tools-crossfs.test Fri Sep 4 00:14:20 2015 (r287445) @@ -43,9 +43,9 @@ $ umask 022 $ touch nfs4/xxx $ getfacl -nq nfs4/xxx -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ touch posix/xxx $ getfacl -nq posix/xxx @@ -96,10 +96,10 @@ $ ls -l posix/xxx | cut -d' ' -f1 $ mv posix/yyy nfs4/xxx > mv: failed to set acl entries for nfs4/xxx: Invalid argument $ getfacl -nq nfs4/xxx -> owner@:-wxp----------:------:deny -> owner@:r-----aARWcCos:------:allow -> group@:rwxp--a-R-c--s:------:allow -> everyone@:rw-p--a-R-c--s:------:allow +> owner@:-wxp----------:-------:deny +> owner@:r-----aARWcCos:-------:allow +> group@:rwxp--a-R-c--s:-------:allow +> everyone@:rw-p--a-R-c--s:-------:allow $ ls -l nfs4/xxx | cut -d' ' -f1 > -r--rwxrw- @@ -110,11 +110,11 @@ $ touch nfs4/xxx $ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx $ mv nfs4/xxx nfs4/yyy $ getfacl -nq nfs4/yyy -> user:42:--x-----------:------:allow -> group:43:-w------------:------:allow -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:42:--x-----------:-------:allow +> group:43:-w------------:-------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ ls -l nfs4/yyy | cut -d' ' -f1 > -rw-r--r--+ @@ -261,14 +261,14 @@ $ chmod 543 nfs4/xxx $ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx $ cp -p nfs4/xxx nfs4/yyy $ getfacl -nq nfs4/yyy -> user:42:--x-----------:------:allow -> group:43:-w------------:------:allow -> owner@:--x-----------:------:allow -> owner@:-w-p----------:------:deny -> group@:-wxp----------:------:deny -> owner@:r-x---aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:-wxp--a-R-c--s:------:allow +> user:42:--x-----------:-------:allow +> group:43:-w------------:-------:allow +> owner@:--x-----------:-------:allow +> owner@:-w-p----------:-------:deny +> group@:-wxp----------:-------:deny +> owner@:r-x---aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:-wxp--a-R-c--s:-------:allow $ ls -l nfs4/yyy | cut -d' ' -f1 > -r-xr---wx+ Modified: head/tools/regression/acltools/tools-nfs4-psarc.test ============================================================================== --- head/tools/regression/acltools/tools-nfs4-psarc.test Thu Sep 3 22:15:56 2015 (r287444) +++ head/tools/regression/acltools/tools-nfs4-psarc.test Fri Sep 4 00:14:20 2015 (r287445) @@ -42,14 +42,14 @@ $ getfacl xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ getfacl -q xxx -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow # Check verbose mode formatting. $ getfacl -v xxx @@ -66,11 +66,11 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test user and group name resolving. $ rm xxx @@ -80,11 +80,11 @@ $ getfacl xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> user:root:-----------C--:------:allow -> group:daemon:----------c---:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> user:root:-----------C--:-------:allow +> group:daemon:----------c---:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Check whether ls correctly marks files with "+". $ ls -l xxx | cut -d' ' -f1 @@ -96,10 +96,10 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test setfacl -m. $ setfacl -a0 everyone@:rwx:deny xxx @@ -110,26 +110,26 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> owner@:rw-p--aARWcCos:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:r-----a-R-c--s:------:allow +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> owner@:rw-p--aARWcCos:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test getfacl -i. $ getfacl -i xxx > # file: xxx > # owner: root > # group: wheel -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> owner@:rw-p--aARWcCos:------:allow -> user:root:-----------C--:------:allow:0 -> group:daemon:----------c---:------:deny:1 -> everyone@:r-----a-R-c--s:------:allow +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> owner@:rw-p--aARWcCos:-------:allow +> user:root:-----------C--:-------:allow:0 +> group:daemon:----------c---:-------:deny:1 +> everyone@:r-----a-R-c--s:-------:allow # Make sure cp without any flags does not copy copy the ACL. $ cp xxx yyy @@ -143,13 +143,13 @@ $ getfacl -n yyy > # file: yyy > # owner: root > # group: wheel -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> owner@:rw-p--aARWcCos:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:r-----a-R-c--s:------:allow +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> owner@:rw-p--aARWcCos:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:r-----a-R-c--s:-------:allow $ rm yyy @@ -159,10 +159,10 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test setfacl -b. $ setfacl -b xxx @@ -170,9 +170,9 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ ls -l xxx | cut -d' ' -f1 > -rw-r--r-- @@ -196,23 +196,23 @@ $ ls -l nnn xxx yyy zzz | cut -d' ' -f1 $ getfacl -nq nnn xxx yyy zzz > getfacl: nnn: stat() failed: No such file or directory -> user:42:--x-----------:------:allow -> group:43:-w------------:------:allow -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:42:--x-----------:-------:allow +> group:43:-w------------:-------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow > -> user:42:--x-----------:------:allow -> group:43:-w------------:------:allow -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:42:--x-----------:-------:allow +> group:43:-w------------:-------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow > -> user:42:--x-----------:------:allow -> group:43:-w------------:------:allow -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:42:--x-----------:-------:allow +> group:43:-w------------:-------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ setfacl -b nnn xxx yyy zzz > setfacl: nnn: stat() failed: No such file or directory @@ -233,9 +233,9 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> group@:------a-R-c--s:------:allow -> everyone@:------a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:------a-R-c--s:-------:allow +> everyone@:------a-R-c--s:-------:allow $ ls -l xxx | cut -d' ' -f1 > -rw------- @@ -249,9 +249,9 @@ $ getfacl -n xxx > # file: xxx > # owner: 42 > # group: wheel -> owner@:rw-p--aARWcCos:------:allow -> group@:------a-R-c--s:------:allow -> everyone@:------a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:------a-R-c--s:-------:allow +> everyone@:------a-R-c--s:-------:allow $ ls -l xxx | cut -d' ' -f1 > -rw------- @@ -264,11 +264,11 @@ $ getfacl -n xxx > # file: xxx > # owner: 43 > # group: wheel -> owner@:rw-p----------:------:deny -> group@:r-------------:------:deny -> owner@:--x---aARWcCos:------:allow -> group@:-w-p--a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p----------:-------:deny +> group@:r-------------:-------:deny +> owner@:--x---aARWcCos:-------:allow +> group@:-w-p--a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ ls -l xxx | cut -d' ' -f1 > ---x-w-r-- @@ -281,11 +281,11 @@ $ getfacl -n xxx > # file: xxx > # owner: 43 > # group: wheel -> owner@:-wxp----------:------:deny -> group@:-w-p----------:------:deny -> owner@:r-----aARWcCos:------:allow -> group@:--x---a-R-c--s:------:allow -> everyone@:-w-p--a-R-c--s:------:allow +> owner@:-wxp----------:-------:deny +> group@:-w-p----------:-------:deny +> owner@:r-----aARWcCos:-------:allow +> group@:--x---a-R-c--s:-------:allow +> everyone@:-w-p--a-R-c--s:-------:allow $ ls -l xxx | cut -d' ' -f1 > -r----x-w- @@ -298,23 +298,23 @@ $ getfacl -n ddd > # file: ddd > # owner: root > # group: wheel -> user:42:r-x-----------:f-i---:allow -> group:42:-w--D---------:-d----:allow -> group:43:-w--D---------:-d----:deny -> group@:-----da-------:------:allow -> group:44:rw-p-da-------:------:allow -> owner@:rwxp--aARWcCos:------:allow -> group@:r-x---a-R-c--s:------:allow -> everyone@:-w-p--a-R-c--s:f-i---:allow +> user:42:r-x-----------:f-i----:allow +> group:42:-w--D---------:-d-----:allow +> group:43:-w--D---------:-d-----:deny +> group@:-----da-------:-------:allow +> group:44:rw-p-da-------:-------:allow +> owner@:rwxp--aARWcCos:-------:allow +> group@:r-x---a-R-c--s:-------:allow +> everyone@:-w-p--a-R-c--s:f-i----:allow $ chmod 777 ddd $ getfacl -n ddd > # file: ddd > # owner: root > # group: wheel -> owner@:rwxp--aARWcCos:------:allow -> group@:rwxp--a-R-c--s:------:allow -> everyone@:rwxp--a-R-c--s:------:allow +> owner@:rwxp--aARWcCos:-------:allow +> group@:rwxp--a-R-c--s:-------:allow +> everyone@:rwxp--a-R-c--s:-------:allow # Test applying ACL to mode. $ rmdir ddd @@ -360,104 +360,104 @@ $ setfacl -a0 user:42:write_acl/write_ow $ setfacl -a0 group:41:read_data/read_attributes:dni:allow ddd $ setfacl -a0 user:41:write_data/write_attributes:fn:allow ddd $ getfacl -qn ddd -> user:41:-w-----A------:f--n--:allow -> group:41:r-----a-------:-din--:allow -> user:42:-----------Co-:f-i---:allow -> user:42:r-x-----------:f-i---:allow -> group:42:-w--D---------:-d-n--:deny -> group:43:-w---------C--:f-in--:deny -> user:43:rwxp----------:------:allow -> owner@:rwxp--aARWcCos:------:allow -> group@:r-x---a-R-c--s:------:allow -> everyone@:r-x---a-R-c--s:------:allow +> user:41:-w-----A------:f--n---:allow +> group:41:r-----a-------:-din---:allow +> user:42:-----------Co-:f-i----:allow +> user:42:r-x-----------:f-i----:allow +> group:42:-w--D---------:-d-n---:deny +> group:43:-w---------C--:f-in---:deny +> user:43:rwxp----------:-------:allow +> owner@:rwxp--aARWcCos:-------:allow +> group@:r-x---a-R-c--s:-------:allow +> everyone@:r-x---a-R-c--s:-------:allow $ cd ddd $ touch xxx $ getfacl -qn xxx -> user:41:--------------:------:allow -> user:42:--------------:------:allow -> user:42:r-------------:------:allow -> group:43:-w---------C--:------:deny -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:41:--------------:------I:allow +> user:42:--------------:------I:allow +> user:42:r-------------:------I:allow +> group:43:-w---------C--:------I:deny +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ rm xxx $ umask 077 $ touch xxx $ getfacl -qn xxx -> user:41:--------------:------:allow -> user:42:--------------:------:allow -> user:42:--------------:------:allow -> group:43:-w---------C--:------:deny -> owner@:rw-p--aARWcCos:------:allow -> group@:------a-R-c--s:------:allow -> everyone@:------a-R-c--s:------:allow +> user:41:--------------:------I:allow +> user:42:--------------:------I:allow +> user:42:--------------:------I:allow +> group:43:-w---------C--:------I:deny +> owner@:rw-p--aARWcCos:-------:allow +> group@:------a-R-c--s:-------:allow +> everyone@:------a-R-c--s:-------:allow $ rm xxx $ umask 770 $ touch xxx $ getfacl -qn xxx -> owner@:rw-p----------:------:deny -> group@:rw-p----------:------:deny -> user:41:--------------:------:allow -> user:42:--------------:------:allow -> user:42:--------------:------:allow -> group:43:-w---------C--:------:deny -> owner@:------aARWcCos:------:allow -> group@:------a-R-c--s:------:allow -> everyone@:rw-p--a-R-c--s:------:allow +> owner@:rw-p----------:-------:deny +> group@:rw-p----------:-------:deny +> user:41:--------------:------I:allow +> user:42:--------------:------I:allow +> user:42:--------------:------I:allow +> group:43:-w---------C--:------I:deny +> owner@:------aARWcCos:-------:allow +> group@:------a-R-c--s:-------:allow +> everyone@:rw-p--a-R-c--s:-------:allow $ rm xxx $ umask 707 $ touch xxx $ getfacl -qn xxx -> owner@:rw-p----------:------:deny -> user:41:-w------------:------:allow -> user:42:--------------:------:allow -> user:42:r-------------:------:allow -> group:43:-w---------C--:------:deny -> owner@:------aARWcCos:------:allow -> group@:rw-p--a-R-c--s:------:allow -> everyone@:------a-R-c--s:------:allow +> owner@:rw-p----------:-------:deny +> user:41:-w------------:------I:allow +> user:42:--------------:------I:allow +> user:42:r-------------:------I:allow +> group:43:-w---------C--:------I:deny +> owner@:------aARWcCos:-------:allow +> group@:rw-p--a-R-c--s:-------:allow +> everyone@:------a-R-c--s:-------:allow $ umask 077 $ mkdir yyy $ getfacl -qn yyy -> group:41:------a-------:------:allow -> user:42:-----------Co-:f-i---:allow -> user:42:r-x-----------:f-i---:allow -> group:42:-w--D---------:------:deny -> owner@:rwxp--aARWcCos:------:allow -> group@:------a-R-c--s:------:allow -> everyone@:------a-R-c--s:------:allow +> group:41:------a-------:------I:allow +> user:42:-----------Co-:f-i---I:allow +> user:42:r-x-----------:f-i---I:allow +> group:42:-w--D---------:------I:deny +> owner@:rwxp--aARWcCos:-------:allow +> group@:------a-R-c--s:-------:allow +> everyone@:------a-R-c--s:-------:allow $ rmdir yyy $ umask 770 $ mkdir yyy $ getfacl -qn yyy -> owner@:rwxp----------:------:deny -> group@:rwxp----------:------:deny -> group:41:------a-------:------:allow -> user:42:-----------Co-:f-i---:allow -> user:42:r-x-----------:f-i---:allow -> group:42:-w--D---------:------:deny -> owner@:------aARWcCos:------:allow -> group@:------a-R-c--s:------:allow -> everyone@:rwxp--a-R-c--s:------:allow +> owner@:rwxp----------:-------:deny +> group@:rwxp----------:-------:deny +> group:41:------a-------:------I:allow +> user:42:-----------Co-:f-i---I:allow +> user:42:r-x-----------:f-i---I:allow +> group:42:-w--D---------:------I:deny +> owner@:------aARWcCos:-------:allow +> group@:------a-R-c--s:-------:allow +> everyone@:rwxp--a-R-c--s:-------:allow $ rmdir yyy $ umask 707 $ mkdir yyy $ getfacl -qn yyy -> owner@:rwxp----------:------:deny -> group:41:r-----a-------:------:allow -> user:42:-----------Co-:f-i---:allow -> user:42:r-x-----------:f-i---:allow -> group:42:-w--D---------:------:deny -> owner@:------aARWcCos:------:allow -> group@:rwxp--a-R-c--s:------:allow -> everyone@:------a-R-c--s:------:allow +> owner@:rwxp----------:-------:deny +> group:41:r-----a-------:------I:allow +> user:42:-----------Co-:f-i---I:allow +> user:42:r-x-----------:f-i---I:allow +> group:42:-w--D---------:------I:deny +> owner@:------aARWcCos:-------:allow +> group@:rwxp--a-R-c--s:-------:allow +> everyone@:------a-R-c--s:-------:allow # There is some complication regarding how write_acl and write_owner flags # get inherited. Make sure we got it right. @@ -478,34 +478,34 @@ $ umask 022 $ rm xxx $ touch xxx $ getfacl -nq xxx -> user:53:--------------:------:allow -> user:51:--------------:------:allow -> user:50:--------------:------:allow -> user:48:--------------:------:allow -> user:47:--------------:------:allow -> user:45:--------------:------:allow -> user:44:--------------:------:allow -> user:42:--------------:------:allow -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:53:--------------:------I:allow +> user:51:--------------:------I:allow +> user:50:--------------:------I:allow +> user:48:--------------:------I:allow +> user:47:--------------:------I:allow +> user:45:--------------:------I:allow +> user:44:--------------:------I:allow +> user:42:--------------:------I:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ rmdir yyy $ mkdir yyy $ getfacl -nq yyy -> user:53:--------------:------:allow -> user:52:--------------:------:allow -> user:50:--------------:------:allow -> user:49:--------------:------:allow -> user:47:--------------:fd----:allow -> user:46:--------------:-d----:allow -> user:45:-----------Co-:f-i---:allow -> user:44:--------------:fd----:allow -> user:43:--------------:-d----:allow -> user:42:-----------Co-:f-i---:allow -> owner@:rwxp--aARWcCos:------:allow -> group@:r-x---a-R-c--s:------:allow -> everyone@:r-x---a-R-c--s:------:allow +> user:53:--------------:------I:allow +> user:52:--------------:------I:allow +> user:50:--------------:------I:allow +> user:49:--------------:------I:allow +> user:47:--------------:fd----I:allow +> user:46:--------------:-d----I:allow +> user:45:-----------Co-:f-i---I:allow +> user:44:--------------:fd----I:allow +> user:43:--------------:-d----I:allow +> user:42:-----------Co-:f-i---I:allow +> owner@:rwxp--aARWcCos:-------:allow +> group@:r-x---a-R-c--s:-------:allow +> everyone@:r-x---a-R-c--s:-------:allow $ setfacl -b . $ setfacl -a0 u:42:Co:f:deny . @@ -524,34 +524,34 @@ $ umask 022 $ rm xxx $ touch xxx $ getfacl -nq xxx -> user:53:-----------Co-:------:deny -> user:51:-----------Co-:------:deny -> user:50:-----------Co-:------:deny -> user:48:-----------Co-:------:deny -> user:47:-----------Co-:------:deny -> user:45:-----------Co-:------:deny -> user:44:-----------Co-:------:deny -> user:42:-----------Co-:------:deny -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> user:53:-----------Co-:------I:deny +> user:51:-----------Co-:------I:deny +> user:50:-----------Co-:------I:deny +> user:48:-----------Co-:------I:deny +> user:47:-----------Co-:------I:deny +> user:45:-----------Co-:------I:deny +> user:44:-----------Co-:------I:deny +> user:42:-----------Co-:------I:deny +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow $ rmdir yyy $ mkdir yyy $ getfacl -nq yyy -> user:53:-----------Co-:------:deny -> user:52:-----------Co-:------:deny -> user:50:-----------Co-:------:deny -> user:49:-----------Co-:------:deny -> user:47:-----------Co-:fd----:deny -> user:46:-----------Co-:-d----:deny -> user:45:-----------Co-:f-i---:deny -> user:44:-----------Co-:fd----:deny -> user:43:-----------Co-:-d----:deny -> user:42:-----------Co-:f-i---:deny -> owner@:rwxp--aARWcCos:------:allow -> group@:r-x---a-R-c--s:------:allow -> everyone@:r-x---a-R-c--s:------:allow +> user:53:-----------Co-:------I:deny +> user:52:-----------Co-:------I:deny +> user:50:-----------Co-:------I:deny +> user:49:-----------Co-:------I:deny +> user:47:-----------Co-:fd----I:deny +> user:46:-----------Co-:-d----I:deny +> user:45:-----------Co-:f-i---I:deny +> user:44:-----------Co-:fd----I:deny +> user:43:-----------Co-:-d----I:deny +> user:42:-----------Co-:f-i---I:deny +> owner@:rwxp--aARWcCos:-------:allow +> group@:r-x---a-R-c--s:-------:allow +> everyone@:r-x---a-R-c--s:-------:allow $ rmdir yyy $ rm xxx Modified: head/tools/regression/acltools/tools-nfs4-trivial.test ============================================================================== --- head/tools/regression/acltools/tools-nfs4-trivial.test Thu Sep 3 22:15:56 2015 (r287444) +++ head/tools/regression/acltools/tools-nfs4-trivial.test Fri Sep 4 00:14:20 2015 (r287445) @@ -42,9 +42,9 @@ $ ls -l xxx | cut -d' ' -f1 > -rw-r--r-- $ getfacl -q xxx -> owner@:rw-p--aARWcCos:------:allow -> group@:r-----a-R-c--s:------:allow -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p--aARWcCos:-------:allow +> group@:r-----a-R-c--s:-------:allow +> everyone@:r-----a-R-c--s:-------:allow # Check whether ls(1) correctly recognizes draft-style trivial ACLs. $ rm xxx @@ -58,12 +58,12 @@ $ ls -l xxx | cut -d' ' -f1 > -rw-r--r-- $ getfacl -q xxx -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> group@:-wxp----------:------:deny -> group@:r-------------:------:allow -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> group@:-wxp----------:-------:deny +> group@:r-------------:-------:allow +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Make sure ls(1) actually can recognize something as non-trivial. $ setfacl -x0 xxx @@ -72,11 +72,11 @@ $ ls -l xxx | cut -d' ' -f1 > -rw-r--r--+ $ getfacl -q xxx -> owner@:rw-p---A-W-Co-:------:allow -> group@:-wxp----------:------:deny -> group@:r-------------:------:allow -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:rw-p---A-W-Co-:-------:allow +> group@:-wxp----------:-------:deny +> group@:r-------------:-------:allow +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow $ rm xxx Modified: head/tools/regression/acltools/tools-nfs4.test ============================================================================== --- head/tools/regression/acltools/tools-nfs4.test Thu Sep 3 22:15:56 2015 (r287444) +++ head/tools/regression/acltools/tools-nfs4.test Fri Sep 4 00:14:20 2015 (r287445) @@ -42,20 +42,20 @@ $ getfacl xxx > # file: xxx > # owner: root > # group: wheel -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> group@:-wxp----------:------:deny -> group@:r-------------:------:allow -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> group@:-wxp----------:-------:deny +> group@:r-------------:-------:allow +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow $ getfacl -q xxx -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> group@:-wxp----------:------:deny -> group@:r-------------:------:allow -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> group@:-wxp----------:-------:deny +> group@:r-------------:-------:allow +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Check verbose mode formatting. $ getfacl -v xxx @@ -75,14 +75,14 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> group@:-wxp----------:------:deny -> group@:r-------------:------:allow -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> group@:-wxp----------:-------:deny +> group@:r-------------:-------:allow +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test user and group name resolving. $ rm xxx @@ -92,14 +92,14 @@ $ getfacl xxx > # file: xxx > # owner: root > # group: wheel -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> user:root:-----------C--:------:allow -> group:daemon:----------c---:------:deny -> group@:-wxp----------:------:deny -> group@:r-------------:------:allow -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> user:root:-----------C--:-------:allow +> group:daemon:----------c---:-------:deny +> group@:-wxp----------:-------:deny +> group@:r-------------:-------:allow +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Check whether ls correctly marks files with "+". $ ls -l xxx | cut -d' ' -f1 @@ -112,12 +112,12 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:-wxp---A-W-Co-:------:deny -> everyone@:r-----a-R-c--s:------:allow +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:-wxp---A-W-Co-:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test setfacl -m. $ setfacl -a0 everyone@:rwx:deny xxx @@ -128,30 +128,30 @@ $ getfacl -n xxx > # file: xxx > # owner: root > # group: wheel -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:--------------:------:deny -> everyone@:r-----a-R-c--s:------:allow +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> user:0:-----------C--:-------:allow +> group:1:----------c---:-------:deny +> everyone@:--------------:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Test getfacl -i. $ getfacl -i xxx > # file: xxx > # owner: root > # group: wheel -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> user:root:-----------C--:------:allow:0 -> group:daemon:----------c---:------:deny:1 -> everyone@:--------------:------:deny -> everyone@:r-----a-R-c--s:------:allow +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny +> owner@:--x-----------:-------:deny +> owner@:rw-p---A-W-Co-:-------:allow +> user:root:-----------C--:-------:allow:0 +> group:daemon:----------c---:-------:deny:1 +> everyone@:--------------:-------:deny +> everyone@:r-----a-R-c--s:-------:allow # Make sure cp without any flags does not copy copy the ACL. $ cp xxx yyy @@ -165,15 +165,15 @@ $ getfacl -n yyy > # file: yyy > # owner: root > # group: wheel -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> everyone@:--------------:------:deny -> owner@:--x-----------:------:deny -> owner@:rw-p---A-W-Co-:------:allow -> user:0:-----------C--:------:allow -> group:1:----------c---:------:deny -> everyone@:--------------:------:deny -> everyone@:r-----a-R-c--s:------:allow +> everyone@:--------------:-------:deny +> everyone@:--------------:-------:deny *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***