summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2015-11-15 23:54:34 +0000
committerngie <ngie@FreeBSD.org>2015-11-15 23:54:34 +0000
commit252de1301513347bd4e8a2d3e69622cf1221b41d (patch)
tree4099760cd029dcb87031552770181b8ffc70e5fd
parent2f2934388ea5d90db8198d62ae1e5271def8c346 (diff)
downloadFreeBSD-src-252de1301513347bd4e8a2d3e69622cf1221b41d.zip
FreeBSD-src-252de1301513347bd4e8a2d3e69622cf1221b41d.tar.gz
MFC r289195:
Integrate the tests from lib/libarchive, usr.bin/cpio, and usr.bin/tar in to the FreeBSD test suite functional_test.sh was ported from bin/sh/tests/functional_test.sh, as a small wrapper around libarchive_test, bsdcpio_test, and bsdtar_test provided by upstream. A handful of testcases in lib/libarchive/tests have been disabled as they were failing when run with kyua test (see BROKEN_TESTS in lib/libarchive/tests/Makefile) As a sidenote: this removes the check/test targets from the Makefiles as they don't match the pattern used in the rest of the FreeBSD test suite. Sponsored by: EMC / Isilon Storage Division Conflicts: lib/libarchive/test usr.bin/cpio/test
-rw-r--r--bin/setfacl/setfacl.16
-rw-r--r--lib/libc/posix1e/acl_add_flag_np.33
-rw-r--r--lib/libc/posix1e/acl_support_nfs4.c1
-rw-r--r--share/man/man9/acl.98
-rw-r--r--sys/cddl/compat/opensolaris/kern/opensolaris_acl.c2
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/sys/acl.h3
-rw-r--r--sys/kern/subr_acl_nfs4.c1
-rw-r--r--sys/sys/acl.h3
-rw-r--r--tools/regression/acltools/tools-crossfs.test40
-rw-r--r--tools/regression/acltools/tools-nfs4-psarc.test406
-rw-r--r--tools/regression/acltools/tools-nfs4-trivial.test28
-rw-r--r--tools/regression/acltools/tools-nfs4.test860
12 files changed, 688 insertions, 673 deletions
diff --git a/bin/setfacl/setfacl.1 b/bin/setfacl/setfacl.1
index 4104315..cfb0f01 100644
--- a/bin/setfacl/setfacl.1
+++ b/bin/setfacl/setfacl.1
@@ -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
diff --git a/lib/libc/posix1e/acl_add_flag_np.3 b/lib/libc/posix1e/acl_add_flag_np.3
index fafdd4f..8b2ea2f 100644
--- a/lib/libc/posix1e/acl_add_flag_np.3
+++ b/lib/libc/posix1e/acl_add_flag_np.3
@@ -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
diff --git a/lib/libc/posix1e/acl_support_nfs4.c b/lib/libc/posix1e/acl_support_nfs4.c
index 4878b43..1eece98 100644
--- a/lib/libc/posix1e/acl_support_nfs4.c
+++ b/lib/libc/posix1e/acl_support_nfs4.c
@@ -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
diff --git a/share/man/man9/acl.9 b/share/man/man9/acl.9
index c6c7159..23cc19a 100644
--- a/share/man/man9/acl.9
+++ b/share/man/man9/acl.9
@@ -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 ,
diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c b/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
index c10b101..0bbad36 100644
--- a/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
+++ b/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
@@ -64,6 +64,8 @@ struct zfs2bsd flags[] = {{ACE_FILE_INHERIT_ACE,
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,
diff --git a/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h b/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h
index 991978e..768ccdf 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h
@@ -187,11 +187,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 */
diff --git a/sys/kern/subr_acl_nfs4.c b/sys/kern/subr_acl_nfs4.c
index ef378a0..3e23579 100644
--- a/sys/kern/subr_acl_nfs4.c
+++ b/sys/kern/subr_acl_nfs4.c
@@ -1068,6 +1068,7 @@ acl_nfs4_inherit_entries(const struct acl *parent_aclp,
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,
diff --git a/sys/sys/acl.h b/sys/sys/acl.h
index 2f8715d..9806a54 100644
--- a/sys/sys/acl.h
+++ b/sys/sys/acl.h
@@ -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
diff --git a/tools/regression/acltools/tools-crossfs.test b/tools/regression/acltools/tools-crossfs.test
index 498fba5..1f59637 100644
--- a/tools/regression/acltools/tools-crossfs.test
+++ b/tools/regression/acltools/tools-crossfs.test
@@ -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+
diff --git a/tools/regression/acltools/tools-nfs4-psarc.test b/tools/regression/acltools/tools-nfs4-psarc.test
index e1e8ffc..9ab0b51 100644
--- a/tools/regression/acltools/tools-nfs4-psarc.test
+++ b/tools/regression/acltools/tools-nfs4-psarc.test
@@ -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_owner:fi:allow ddd
$ 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
diff --git a/tools/regression/acltools/tools-nfs4-trivial.test b/tools/regression/acltools/tools-nfs4-trivial.test
index ae49032..366b099 100644
--- a/tools/regression/acltools/tools-nfs4-trivial.test
+++ b/tools/regression/acltools/tools-nfs4-trivial.test
@@ -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
diff --git a/tools/regression/acltools/tools-nfs4.test b/tools/regression/acltools/tools-nfs4.test
index 72826fb..e2ddc2b 100644
--- a/tools/regression/acltools/tools-nfs4.test
+++ b/tools/regression/acltools/tools-nfs4.test
@@ -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
+> 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
$ rm yyy
@@ -183,11 +183,11 @@ $ 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@: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@:r-----a-R-c--s:-------:allow
# Test setfacl -b.
$ setfacl -b xxx
@@ -195,12 +195,12 @@ $ getfacl -n 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
$ ls -l xxx | cut -d' ' -f1
> -rw-r--r--
@@ -224,32 +224,32 @@ $ 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@:--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
+> user:42:--x-----------:-------:allow
+> group:43:-w------------:-------: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
>
-> user:42:--x-----------:------:allow
-> group:43:-w------------:------: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
+> user:42:--x-----------:-------:allow
+> group:43:-w------------:-------: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
>
-> user:42:--x-----------:------:allow
-> group:43:-w------------:------: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
+> user:42:--x-----------:-------:allow
+> group:43:-w------------:-------: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
$ setfacl -b nnn xxx yyy zzz
> setfacl: nnn: stat() failed: No such file or directory
@@ -270,23 +270,23 @@ $ getfacl -n xxx
> # file: xxx
> # owner: root
> # group: wheel
-> user:42:r-------------:------:deny
-> user:42:r-------------:------:allow
-> user:43:-w------------:------:deny
-> user:43:-w------------:------:allow
-> user:44:--x-----------:------:deny
-> user:44:--x-----------:------:allow
-> owner@:--------------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:--------------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> owner@:--x-----------:------:deny
-> owner@:rw-p---A-W-Co-:------:allow
-> group@:rwxp----------:------:deny
-> group@:--------------:------:allow
-> everyone@:rwxp---A-W-Co-:------:deny
-> everyone@:------a-R-c--s:------:allow
+> user:42:r-------------:-------:deny
+> user:42:r-------------:-------:allow
+> user:43:-w------------:-------:deny
+> user:43:-w------------:-------:allow
+> user:44:--x-----------:-------:deny
+> user:44:--x-----------:-------:allow
+> owner@:--------------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> owner@:--x-----------:-------:deny
+> owner@:rw-p---A-W-Co-:-------:allow
+> group@:rwxp----------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:rwxp---A-W-Co-:-------:deny
+> everyone@:------a-R-c--s:-------:allow
$ ls -l xxx | cut -d' ' -f1
> -rw-------+
@@ -299,18 +299,18 @@ $ getfacl -n xxx
> # file: xxx
> # owner: 42
> # group: wheel
-> user:42:--------------:------:deny
-> user:42:r-------------:------:allow
-> user:43:-w------------:------:deny
-> user:43:-w------------:------:allow
-> user:44:--x-----------:------:deny
-> user:44:--x-----------:------:allow
-> owner@:--x-----------:------:deny
-> owner@:rw-p---A-W-Co-:------:allow
-> group@:rwxp----------:------:deny
-> group@:--------------:------:allow
-> everyone@:rwxp---A-W-Co-:------:deny
-> everyone@:------a-R-c--s:------:allow
+> user:42:--------------:-------:deny
+> user:42:r-------------:-------:allow
+> user:43:-w------------:-------:deny
+> user:43:-w------------:-------:allow
+> user:44:--x-----------:-------:deny
+> user:44:--x-----------:-------:allow
+> owner@:--x-----------:-------:deny
+> owner@:rw-p---A-W-Co-:-------:allow
+> group@:rwxp----------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:rwxp---A-W-Co-:-------:deny
+> everyone@:------a-R-c--s:-------:allow
$ ls -l xxx | cut -d' ' -f1
> -rw-------+
@@ -323,18 +323,18 @@ $ getfacl -n xxx
> # file: xxx
> # owner: 43
> # group: wheel
-> user:42:r-------------:------:deny
-> user:42:r-------------:------:allow
-> user:43:-w------------:------:deny
-> user:43:-w------------:------:allow
-> user:44:--x-----------:------:deny
-> user:44:--x-----------:------:allow
-> owner@:rw-p----------:------:deny
-> owner@:--x----A-W-Co-:------:allow
-> group@:r-x-----------:------:deny
-> group@:-w-p----------:------:allow
-> everyone@:-wxp---A-W-Co-:------:deny
-> everyone@:r-----a-R-c--s:------:allow
+> user:42:r-------------:-------:deny
+> user:42:r-------------:-------:allow
+> user:43:-w------------:-------:deny
+> user:43:-w------------:-------:allow
+> user:44:--x-----------:-------:deny
+> user:44:--x-----------:-------:allow
+> owner@:rw-p----------:-------:deny
+> owner@:--x----A-W-Co-:-------:allow
+> group@:r-x-----------:-------:deny
+> group@:-w-p----------:-------:allow
+> everyone@:-wxp---A-W-Co-:-------:deny
+> everyone@:r-----a-R-c--s:-------:allow
$ ls -l xxx | cut -d' ' -f1
> ---x-w-r--+
@@ -347,18 +347,18 @@ $ getfacl -n xxx
> # file: xxx
> # owner: 43
> # group: wheel
-> user:42:r-------------:------:deny
-> user:42:r-------------:------:allow
-> user:43:-w------------:------:deny
-> user:43:-w------------:------:allow
-> user:44:--------------:------:deny
-> user:44:--x-----------:------:allow
-> owner@:-wxp----------:------:deny
-> owner@:r------A-W-Co-:------:allow
-> group@:rw-p----------:------:deny
-> group@:--x-----------:------:allow
-> everyone@:r-x----A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:------:allow
+> user:42:r-------------:-------:deny
+> user:42:r-------------:-------:allow
+> user:43:-w------------:-------:deny
+> user:43:-w------------:-------:allow
+> user:44:--------------:-------:deny
+> user:44:--x-----------:-------:allow
+> owner@:-wxp----------:-------:deny
+> owner@:r------A-W-Co-:-------:allow
+> group@:rw-p----------:-------:deny
+> group@:--x-----------:-------:allow
+> everyone@:r-x----A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:-------:allow
$ ls -l xxx | cut -d' ' -f1
> -r----x-w-+
@@ -371,43 +371,43 @@ $ 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@:--------------:------:deny
-> owner@:rwxp---A-W-Co-:------:allow
-> group@:-w-p----------:------:deny
-> group@:r-x-----------:------:allow
-> everyone@:-w-p---A-W-Co-:------:deny
-> 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@:--------------:-------:deny
+> owner@:rwxp---A-W-Co-:-------:allow
+> group@:-w-p----------:-------:deny
+> group@:r-x-----------:-------:allow
+> everyone@:-w-p---A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:f-i----:allow
$ chmod 777 ddd
$ getfacl -n ddd
> # file: ddd
> # owner: root
> # group: wheel
-> user:42:r-x-----------:f-i---:allow
-> group:42:-w--D---------:-di---:allow
-> group:42:--------------:------:deny
-> group:42:-w--D---------:------:allow
-> group:43:-w--D---------:-di---:deny
-> group:43:-w--D---------:------:deny
-> group@:-----da-------:------:allow
-> group:44:--------------:------:deny
-> group:44:rw-p-da-------:------:allow
-> owner@:--------------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:--------------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:f-i---:allow
-> owner@:--------------:------:deny
-> owner@:rwxp---A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:rwxp----------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> everyone@:rwxp--a-R-c--s:------:allow
+> user:42:r-x-----------:f-i----:allow
+> group:42:-w--D---------:-di----:allow
+> group:42:--------------:-------:deny
+> group:42:-w--D---------:-------:allow
+> group:43:-w--D---------:-di----:deny
+> group:43:-w--D---------:-------:deny
+> group@:-----da-------:-------:allow
+> group:44:--------------:-------:deny
+> group:44:rw-p-da-------:-------:allow
+> owner@:--------------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:f-i----:allow
+> owner@:--------------:-------:deny
+> owner@:rwxp---A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:rwxp----------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> everyone@:rwxp--a-R-c--s:-------:allow
$ rmdir ddd
$ mkdir ddd
@@ -420,27 +420,27 @@ $ getfacl -n ddd
> # file: ddd
> # owner: root
> # group: wheel
-> user:42:r-x-----------:f-i---:allow
-> group:42:-w--D---------:-di---:allow
-> group:42:--------------:------:deny
-> group:42:----D---------:------:allow
-> group:43:-w--D---------:-di---:deny
-> group:43:-w--D---------:------:deny
-> group@:-----da-------:------:allow
-> group:44:r-------------:------:deny
-> group:44:r----da-------:------:allow
-> owner@:--------------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:--------------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:f-i---:allow
-> owner@:rw-p----------:------:deny
-> owner@:--x----A-W-Co-:------:allow
-> group@:r-x-----------:------:deny
-> group@:-w-p----------:------:allow
-> everyone@:-wxp---A-W-Co-:------:deny
-> everyone@:r-----a-R-c--s:------:allow
+> user:42:r-x-----------:f-i----:allow
+> group:42:-w--D---------:-di----:allow
+> group:42:--------------:-------:deny
+> group:42:----D---------:-------:allow
+> group:43:-w--D---------:-di----:deny
+> group:43:-w--D---------:-------:deny
+> group@:-----da-------:-------:allow
+> group:44:r-------------:-------:deny
+> group:44:r----da-------:-------:allow
+> owner@:--------------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:f-i----:allow
+> owner@:rw-p----------:-------:deny
+> owner@:--x----A-W-Co-:-------:allow
+> group@:r-x-----------:-------:deny
+> group@:-w-p----------:-------:allow
+> everyone@:-wxp---A-W-Co-:-------:deny
+> everyone@:r-----a-R-c--s:-------:allow
$ rmdir ddd
$ mkdir ddd
@@ -453,29 +453,29 @@ $ getfacl -n ddd
> # file: ddd
> # owner: root
> # group: wheel
-> user:42:r-------------:------:deny
-> user:42:r-x-----------:------:allow
-> user:42:r-x-----------:f-i---:allow
-> group:42:-w--D---------:-di---:allow
-> group:42:-w------------:------:deny
-> group:42:-w--D---------:------:allow
-> group:43:-w--D---------:-di---:deny
-> group:43:-w--D---------:------:deny
-> group@:-----da-------:------:allow
-> group:44:rw-p----------:------:deny
-> group:44:rw-p-da-------:------:allow
-> owner@:--------------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:--------------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:f-i---:allow
-> owner@:-wxp----------:------:deny
-> owner@:r------A-W-Co-:------:allow
-> group@:rw-p----------:------:deny
-> group@:--x-----------:------:allow
-> everyone@:r-x----A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:------:allow
+> user:42:r-------------:-------:deny
+> user:42:r-x-----------:-------:allow
+> user:42:r-x-----------:f-i----:allow
+> group:42:-w--D---------:-di----:allow
+> group:42:-w------------:-------:deny
+> group:42:-w--D---------:-------:allow
+> group:43:-w--D---------:-di----:deny
+> group:43:-w--D---------:-------:deny
+> group@:-----da-------:-------:allow
+> group:44:rw-p----------:-------:deny
+> group:44:rw-p-da-------:-------:allow
+> owner@:--------------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:f-i----:allow
+> owner@:-wxp----------:-------:deny
+> owner@:r------A-W-Co-:-------:allow
+> group@:rw-p----------:-------:deny
+> group@:--x-----------:-------:allow
+> everyone@:r-x----A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:-------:allow
$ rmdir ddd
$ mkdir ddd
@@ -489,29 +489,29 @@ $ getfacl -n ddd
> # file: ddd
> # owner: 42
> # group: wheel
-> user:42:--x-----------:------:deny
-> user:42:r-x-----------:------:allow
-> user:42:r-x-----------:f-i---:allow
-> group:42:-w--D---------:-di---:allow
-> group:42:-w------------:------:deny
-> group:42:-w--D---------:------:allow
-> group:43:-w--D---------:-di---:deny
-> group:43:-w--D---------:------:deny
-> group@:-----da-------:------:allow
-> group:44:rw-p----------:------:deny
-> group:44:rw-p-da-------:------:allow
-> owner@:--------------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:--------------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:f-i---:allow
-> owner@:-wxp----------:------:deny
-> owner@:r------A-W-Co-:------:allow
-> group@:rw-p----------:------:deny
-> group@:--x-----------:------:allow
-> everyone@:r-x----A-W-Co-:------:deny
-> everyone@:-w-p--a-R-c--s:------:allow
+> user:42:--x-----------:-------:deny
+> user:42:r-x-----------:-------:allow
+> user:42:r-x-----------:f-i----:allow
+> group:42:-w--D---------:-di----:allow
+> group:42:-w------------:-------:deny
+> group:42:-w--D---------:-------:allow
+> group:43:-w--D---------:-di----:deny
+> group:43:-w--D---------:-------:deny
+> group@:-----da-------:-------:allow
+> group:44:rw-p----------:-------:deny
+> group:44:rw-p-da-------:-------:allow
+> owner@:--------------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:f-i----:allow
+> owner@:-wxp----------:-------:deny
+> owner@:r------A-W-Co-:-------:allow
+> group@:rw-p----------:-------:deny
+> group@:--x-----------:-------:allow
+> everyone@:r-x----A-W-Co-:-------:deny
+> everyone@:-w-p--a-R-c--s:-------:allow
# Test applying ACL to mode.
$ rmdir ddd
@@ -557,137 +557,137 @@ $ setfacl -a0 user:42:write_acl/write_owner:fi:allow ddd
$ 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@:--------------:------:deny
-> owner@:rwxp---A-W-Co-:------:allow
-> group@:-w-p----------:------:deny
-> group@:r-x-----------:------:allow
-> everyone@:-w-p---A-W-Co-:------:deny
-> 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@:--------------:-------:deny
+> owner@:rwxp---A-W-Co-:-------:allow
+> group@:-w-p----------:-------:deny
+> group@:r-x-----------:-------:allow
+> everyone@:-w-p---A-W-Co-:-------:deny
+> everyone@:r-x---a-R-c--s:-------:allow
$ cd ddd
$ touch xxx
$ getfacl -qn xxx
-> user:41:-w------------:------:deny
-> user:41:-w-----A------:------:allow
-> user:42:--------------:------:deny
-> user:42:--------------:------:allow
-> user:42:--x-----------:------:deny
-> user:42:r-x-----------:------:allow
-> group:43:-w---------C--:------:deny
-> 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
+> user:41:-w------------:-------:deny
+> user:41:-w-----A------:-------:allow
+> user:42:--------------:-------:deny
+> user:42:--------------:-------:allow
+> user:42:--x-----------:-------:deny
+> user:42:r-x-----------:-------:allow
+> group:43:-w---------C--:-------:deny
+> 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
$ rm xxx
$ umask 077
$ touch xxx
$ getfacl -qn xxx
-> user:41:-w------------:------:deny
-> user:41:-w-----A------:------:allow
-> user:42:--------------:------:deny
-> user:42:--------------:------:allow
-> user:42:r-x-----------:------:deny
-> user:42:r-x-----------:------:allow
-> group:43:-w---------C--:------:deny
-> owner@:--x-----------:------:deny
-> owner@:rw-p---A-W-Co-:------:allow
-> group@:rwxp----------:------:deny
-> group@:--------------:------:allow
-> everyone@:rwxp---A-W-Co-:------:deny
-> everyone@:------a-R-c--s:------:allow
+> user:41:-w------------:-------:deny
+> user:41:-w-----A------:-------:allow
+> user:42:--------------:-------:deny
+> user:42:--------------:-------:allow
+> user:42:r-x-----------:-------:deny
+> user:42:r-x-----------:-------:allow
+> group:43:-w---------C--:-------:deny
+> owner@:--x-----------:-------:deny
+> owner@:rw-p---A-W-Co-:-------:allow
+> group@:rwxp----------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:rwxp---A-W-Co-:-------:deny
+> everyone@:------a-R-c--s:-------:allow
$ rm xxx
$ umask 770
$ touch xxx
$ getfacl -qn xxx
-> user:41:-w------------:------:deny
-> user:41:-w-----A------:------:allow
-> user:42:--------------:------:deny
-> user:42:--------------:------:allow
-> user:42:r-x-----------:------:deny
-> user:42:r-x-----------:------:allow
-> group:43:-w---------C--:------:deny
-> owner@:rwxp----------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:rwxp----------:------:deny
-> group@:--------------:------:allow
-> everyone@:--x----A-W-Co-:------:deny
-> everyone@:rw-p--a-R-c--s:------:allow
+> user:41:-w------------:-------:deny
+> user:41:-w-----A------:-------:allow
+> user:42:--------------:-------:deny
+> user:42:--------------:-------:allow
+> user:42:r-x-----------:-------:deny
+> user:42:r-x-----------:-------:allow
+> group:43:-w---------C--:-------:deny
+> owner@:rwxp----------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:rwxp----------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:--x----A-W-Co-:-------:deny
+> everyone@:rw-p--a-R-c--s:-------:allow
$ rm xxx
$ umask 707
$ touch xxx
$ getfacl -qn xxx
-> user:41:--------------:------:deny
-> user:41:-w-----A------:------:allow
-> user:42:--------------:------:deny
-> user:42:--------------:------:allow
-> user:42:--x-----------:------:deny
-> user:42:r-x-----------:------:allow
-> group:43:-w---------C--:------:deny
-> owner@:rwxp----------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--x-----------:------:deny
-> group@:rw-p----------:------:allow
-> everyone@:rwxp---A-W-Co-:------:deny
-> everyone@:------a-R-c--s:------:allow
+> user:41:--------------:-------:deny
+> user:41:-w-----A------:-------:allow
+> user:42:--------------:-------:deny
+> user:42:--------------:-------:allow
+> user:42:--x-----------:-------:deny
+> user:42:r-x-----------:-------:allow
+> group:43:-w---------C--:-------:deny
+> owner@:rwxp----------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--x-----------:-------:deny
+> group@:rw-p----------:-------:allow
+> everyone@:rwxp---A-W-Co-:-------:deny
+> everyone@:------a-R-c--s:-------:allow
$ umask 077
$ mkdir yyy
$ getfacl -qn yyy
-> group:41:r-------------:------: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@:--------------:------:deny
-> owner@:rwxp---A-W-Co-:------:allow
-> group@:rwxp----------:------:deny
-> group@:--------------:------:allow
-> everyone@:rwxp---A-W-Co-:------:deny
-> everyone@:------a-R-c--s:------:allow
+> group:41:r-------------:-------: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@:--------------:-------:deny
+> owner@:rwxp---A-W-Co-:-------:allow
+> group@:rwxp----------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:rwxp---A-W-Co-:-------:deny
+> everyone@:------a-R-c--s:-------:allow
$ rmdir yyy
$ umask 770
$ mkdir yyy
$ getfacl -qn yyy
-> group:41:r-------------:------: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@:rwxp----------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:rwxp----------:------:deny
-> group@:--------------:------:allow
-> everyone@:-------A-W-Co-:------:deny
-> everyone@:rwxp--a-R-c--s:------:allow
+> group:41:r-------------:-------: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@:rwxp----------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:rwxp----------:-------:deny
+> group@:--------------:-------:allow
+> everyone@:-------A-W-Co-:-------:deny
+> everyone@:rwxp--a-R-c--s:-------:allow
$ rmdir yyy
$ umask 707
$ mkdir yyy
$ getfacl -qn yyy
-> group:41:--------------:------:deny
-> group:41:------a-------:------:allow
-> user:42:-----------Co-:f-i---:allow
-> user:42:r-x-----------:f-i---:allow
-> group:42:-w--D---------:------:deny
-> owner@:rwxp----------:------:deny
-> owner@:-------A-W-Co-:------:allow
-> group@:--------------:------:deny
-> group@:rwxp----------:------:allow
-> everyone@:rwxp---A-W-Co-:------:deny
-> everyone@:------a-R-c--s:------:allow
+> group:41:--------------:-------:deny
+> group:41:------a-------:-------:allow
+> user:42:-----------Co-:f-i----:allow
+> user:42:r-x-----------:f-i----:allow
+> group:42:-w--D---------:-------:deny
+> owner@:rwxp----------:-------:deny
+> owner@:-------A-W-Co-:-------:allow
+> group@:--------------:-------:deny
+> group@:rwxp----------:-------:allow
+> everyone@:rwxp---A-W-Co-:-------:deny
+> 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.
@@ -708,60 +708,60 @@ $ umask 022
$ rm xxx
$ touch xxx
$ getfacl -nq xxx
-> user:53:--------------:------:deny
-> user:53:--------------:------:allow
-> user:51:--------------:------:deny
-> user:51:--------------:------:allow
-> user:50:--------------:------:deny
-> user:50:--------------:------:allow
-> user:48:--------------:------:deny
-> user:48:--------------:------:allow
-> user:47:--------------:------:deny
-> user:47:--------------:------:allow
-> user:45:--------------:------:deny
-> user:45:--------------:------:allow
-> user:44:--------------:------:deny
-> user:44:--------------:------:allow
-> user:42:--------------:------:deny
-> user:42:--------------:------: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
+> user:53:--------------:-------:deny
+> user:53:--------------:-------:allow
+> user:51:--------------:-------:deny
+> user:51:--------------:-------:allow
+> user:50:--------------:-------:deny
+> user:50:--------------:-------:allow
+> user:48:--------------:-------:deny
+> user:48:--------------:-------:allow
+> user:47:--------------:-------:deny
+> user:47:--------------:-------:allow
+> user:45:--------------:-------:deny
+> user:45:--------------:-------:allow
+> user:44:--------------:-------:deny
+> user:44:--------------:-------:allow
+> user:42:--------------:-------:deny
+> user:42:--------------:-------: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
$ rmdir yyy
$ mkdir yyy
$ getfacl -nq yyy
-> user:53:--------------:------:deny
-> user:53:--------------:------:allow
-> user:52:--------------:------:deny
-> user:52:--------------:------:allow
-> user:50:--------------:------:deny
-> user:50:--------------:------:allow
-> user:49:--------------:------:deny
-> user:49:--------------:------:allow
-> user:47:-----------Co-:fdi---:allow
-> user:47:--------------:------:deny
-> user:47:--------------:------:allow
-> user:46:-----------Co-:-di---:allow
-> user:46:--------------:------:deny
-> user:46:--------------:------:allow
-> user:45:-----------Co-:f-i---:allow
-> user:44:-----------Co-:fdi---:allow
-> user:44:--------------:------:deny
-> user:44:--------------:------:allow
-> user:43:-----------Co-:-di---:allow
-> user:43:--------------:------:deny
-> user:43:--------------:------:allow
-> user:42:-----------Co-:f-i---:allow
-> owner@:--------------:------:deny
-> owner@:rwxp---A-W-Co-:------:allow
-> group@:-w-p----------:------:deny
-> group@:r-x-----------:------:allow
-> everyone@:-w-p---A-W-Co-:------:deny
-> everyone@:r-x---a-R-c--s:------:allow
+> user:53:--------------:-------:deny
+> user:53:--------------:-------:allow
+> user:52:--------------:-------:deny
+> user:52:--------------:-------:allow
+> user:50:--------------:-------:deny
+> user:50:--------------:-------:allow
+> user:49:--------------:-------:deny
+> user:49:--------------:-------:allow
+> user:47:-----------Co-:fdi----:allow
+> user:47:--------------:-------:deny
+> user:47:--------------:-------:allow
+> user:46:-----------Co-:-di----:allow
+> user:46:--------------:-------:deny
+> user:46:--------------:-------:allow
+> user:45:-----------Co-:f-i----:allow
+> user:44:-----------Co-:fdi----:allow
+> user:44:--------------:-------:deny
+> user:44:--------------:-------:allow
+> user:43:-----------Co-:-di----:allow
+> user:43:--------------:-------:deny
+> user:43:--------------:-------:allow
+> user:42:-----------Co-:f-i----:allow
+> owner@:--------------:-------:deny
+> owner@:rwxp---A-W-Co-:-------:allow
+> group@:-w-p----------:-------:deny
+> group@:r-x-----------:-------:allow
+> everyone@:-w-p---A-W-Co-:-------:deny
+> everyone@:r-x---a-R-c--s:-------:allow
$ setfacl -b .
$ setfacl -a0 u:42:Co:f:deny .
@@ -780,44 +780,44 @@ $ 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@:--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
+> 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@:--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
$ 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-:fdi---:deny
-> user:47:-----------Co-:------:deny
-> user:46:-----------Co-:-di---:deny
-> user:46:-----------Co-:------:deny
-> user:45:-----------Co-:f-i---:deny
-> user:44:-----------Co-:fdi---:deny
-> user:44:-----------Co-:------:deny
-> user:43:-----------Co-:-di---:deny
-> user:43:-----------Co-:------:deny
-> user:42:-----------Co-:f-i---:deny
-> owner@:--------------:------:deny
-> owner@:rwxp---A-W-Co-:------:allow
-> group@:-w-p----------:------:deny
-> group@:r-x-----------:------:allow
-> everyone@:-w-p---A-W-Co-:------:deny
-> everyone@:r-x---a-R-c--s:------:allow
+> user:53:-----------Co-:-------:deny
+> user:52:-----------Co-:-------:deny
+> user:50:-----------Co-:-------:deny
+> user:49:-----------Co-:-------:deny
+> user:47:-----------Co-:fdi----:deny
+> user:47:-----------Co-:-------:deny
+> user:46:-----------Co-:-di----:deny
+> user:46:-----------Co-:-------:deny
+> user:45:-----------Co-:f-i----:deny
+> user:44:-----------Co-:fdi----:deny
+> user:44:-----------Co-:-------:deny
+> user:43:-----------Co-:-di----:deny
+> user:43:-----------Co-:-------:deny
+> user:42:-----------Co-:f-i----:deny
+> owner@:--------------:-------:deny
+> owner@:rwxp---A-W-Co-:-------:allow
+> group@:-w-p----------:-------:deny
+> group@:r-x-----------:-------:allow
+> everyone@:-w-p---A-W-Co-:-------:deny
+> everyone@:r-x---a-R-c--s:-------:allow
$ rmdir yyy
$ rm xxx
OpenPOWER on IntegriCloud