mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
a12a56fb24
Different versions of XFS support different numbers of ACLs on disk. Remove that subtest from this shared test to prevent it form causing spurious failures on filesystems that support more than 25 ACLs. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
221 lines
6.7 KiB
Plaintext
221 lines
6.7 KiB
Plaintext
QA output created by 051
|
|
|
|
=== Test minimal ACE ===
|
|
Setup file
|
|
-rwxrw-r-- id1 id2 file1
|
|
|
|
--- Test get and set of ACL ---
|
|
Note: Old interface gave an empty ACL - now output an ACL
|
|
file1 [u::rwx,g::rw-,o::r--]
|
|
Try using single colon separator
|
|
Note: Old interface FAILed because of single colon - new one allows it
|
|
Expect to PASS
|
|
file1 [u::r--,g::rwx,o::rw-]
|
|
|
|
--- Test sync of ACL with std permissions ---
|
|
-r--rwxrw- id1 id2 file1
|
|
-rw-rwxrw- id1 id2 file1
|
|
file1 [u::rw-,g::rwx,o::rw-]
|
|
|
|
--- Test owner permissions ---
|
|
file1 [u::r-x,g::---,o::---]
|
|
Expect to PASS
|
|
Test was executed
|
|
Expect to FAIL
|
|
./file1: Permission denied
|
|
|
|
--- Test group permissions ---
|
|
file1 [u::---,g::r-x,o::---]
|
|
Expect to FAIL - acl1 is owner
|
|
./file1: Permission denied
|
|
Expect to PASS - acl2 matches group
|
|
Test was executed
|
|
Expect to PASS - acl2 matches sup group
|
|
Test was executed
|
|
Expect to FAIL - acl3 is not in group
|
|
./file1: Permission denied
|
|
|
|
--- Test other permissions ---
|
|
file1 [u::---,g::---,o::r-x]
|
|
Expect to FAIL - acl1 is owner
|
|
./file1: Permission denied
|
|
Expect to FAIL - acl2 is in group
|
|
./file1: Permission denied
|
|
Expect to FAIL - acl2 is in sup. group
|
|
./file1: Permission denied
|
|
Expect to PASS - acl3 is not owner or in group
|
|
Test was executed
|
|
|
|
=== Test Extended ACLs ===
|
|
|
|
--- Test adding a USER ACE ---
|
|
Expect to FAIL as no MASK provided
|
|
chacl: access ACL 'u::---,g::---,o::---,u:id2:r-x': Missing or wrong entry at entry 3
|
|
Ensure that ACL has not been changed
|
|
file1 [u::---,g::---,o::r-x]
|
|
Expect to PASS - USER ACE matches user
|
|
file1 [u::---,u:id2:r-x,g::---,m::rwx,o::---]
|
|
Test was executed
|
|
Expect to FAIL - USER ACE does not match user
|
|
./file1: Permission denied
|
|
|
|
--- Test adding a GROUP ACE ---
|
|
Expect to FAIL as no MASK provided
|
|
chacl: access ACL 'u::---,g::---,o::---,g:id2:r-x': Missing or wrong entry at entry 3
|
|
Ensure that ACL has not been changed
|
|
file1 [u::---,u:id2:r-x,g::---,m::rwx,o::---]
|
|
file1 [u::---,g::---,g:id2:r-x,m::rwx,o::---]
|
|
Expect to PASS - GROUP ACE matches group
|
|
Test was executed
|
|
Expect to PASS - GROUP ACE matches sup group
|
|
Test was executed
|
|
Expect to FAIL - GROUP ACE does not match group
|
|
./file1: Permission denied
|
|
|
|
--- Test MASK ---
|
|
file1 [u::---,g::---,g:id2:r-x,m::-w-,o::---]
|
|
Expect to FAIL as MASK prohibits execution
|
|
./file1: Permission denied
|
|
Expect to FAIL as MASK prohibits execution
|
|
./file1: Permission denied
|
|
Expect to PASS as MASK allows execution
|
|
Test was executed
|
|
|
|
--- Test ACE priority ---
|
|
Expect to FAIL as should match on owner
|
|
./file1: Permission denied
|
|
Expect to PASS as should match on user
|
|
Test was executed
|
|
|
|
=== Test can read ACLs without access permissions ===
|
|
file1 [u::---,g::---,o::---]
|
|
|
|
=== Test Default ACLs ===
|
|
acldir [u::rwx,g::rwx,o::rwx/u::r-x,g::r--,o::---]
|
|
-r--r----- 0 0 file2
|
|
file2 [u::r--,g::r--,o::---]
|
|
-r--r----- 0 0 file3
|
|
file3 [u::r--,g::r--,o::---]
|
|
|
|
=== Removing ACLs ===
|
|
file1 [u::---,g::---,o::---]
|
|
acldir [u::rwx,g::rwx,o::rwx/u::r-x,g::r--,o::---]
|
|
acldir/file2 [u::r--,g::r--,o::---]
|
|
Remove ACLs...
|
|
Note: Old interface would mean empty ACLs - now we show mode ACLs
|
|
file1 [u::---,g::---,o::---]
|
|
acldir [u::rwx,g::rwx,o::rwx]
|
|
acldir/file2 [u::r--,g::r--,o::---]
|
|
|
|
=== Recursive change ACL ===
|
|
Change #1...
|
|
root [u::rwx,g::-w-,o::--x]
|
|
root/a [u::rwx,g::-w-,o::--x]
|
|
root/a/1 [u::rwx,g::-w-,o::--x]
|
|
root/a/1/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/2 [u::rwx,g::-w-,o::--x]
|
|
root/a/2/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/3 [u::rwx,g::-w-,o::--x]
|
|
root/a/3/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/4 [u::rwx,g::-w-,o::--x]
|
|
root/a/4/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/5 [u::rwx,g::-w-,o::--x]
|
|
root/a/5/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/6 [u::rwx,g::-w-,o::--x]
|
|
root/a/6/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/7 [u::rwx,g::-w-,o::--x]
|
|
root/a/7/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/8 [u::rwx,g::-w-,o::--x]
|
|
root/a/8/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/9 [u::rwx,g::-w-,o::--x]
|
|
root/a/9/mumble [u::rwx,g::-w-,o::--x]
|
|
root/a/0 [u::rwx,g::-w-,o::--x]
|
|
root/a/0/mumble [u::rwx,g::-w-,o::--x]
|
|
root/b [u::rwx,g::-w-,o::--x]
|
|
root/b/c1 [u::rwx,g::-w-,o::--x]
|
|
root/b/c1/1 [u::rwx,g::-w-,o::--x]
|
|
root/b/c2 [u::rwx,g::-w-,o::--x]
|
|
root/b/c2/2 [u::rwx,g::-w-,o::--x]
|
|
root/b/c3 [u::rwx,g::-w-,o::--x]
|
|
root/b/c3/3 [u::rwx,g::-w-,o::--x]
|
|
root/b/c4 [u::rwx,g::-w-,o::--x]
|
|
root/b/c4/4 [u::rwx,g::-w-,o::--x]
|
|
root/b/c5 [u::rwx,g::-w-,o::--x]
|
|
root/b/c5/5 [u::rwx,g::-w-,o::--x]
|
|
root/b/c6 [u::rwx,g::-w-,o::--x]
|
|
root/b/c6/6 [u::rwx,g::-w-,o::--x]
|
|
root/b/c7 [u::rwx,g::-w-,o::--x]
|
|
root/b/c7/7 [u::rwx,g::-w-,o::--x]
|
|
root/b/c8 [u::rwx,g::-w-,o::--x]
|
|
root/b/c8/8 [u::rwx,g::-w-,o::--x]
|
|
root/b/c9 [u::rwx,g::-w-,o::--x]
|
|
root/b/c9/9 [u::rwx,g::-w-,o::--x]
|
|
root/b/c0 [u::rwx,g::-w-,o::--x]
|
|
root/b/c0/0 [u::rwx,g::-w-,o::--x]
|
|
Change #2...
|
|
root [u::---,g::---,o::---]
|
|
root/a [u::---,g::---,o::---]
|
|
root/a/1 [u::---,g::---,o::---]
|
|
root/a/1/mumble [u::---,g::---,o::---]
|
|
root/a/2 [u::---,g::---,o::---]
|
|
root/a/2/mumble [u::---,g::---,o::---]
|
|
root/a/3 [u::---,g::---,o::---]
|
|
root/a/3/mumble [u::---,g::---,o::---]
|
|
root/a/4 [u::---,g::---,o::---]
|
|
root/a/4/mumble [u::---,g::---,o::---]
|
|
root/a/5 [u::---,g::---,o::---]
|
|
root/a/5/mumble [u::---,g::---,o::---]
|
|
root/a/6 [u::---,g::---,o::---]
|
|
root/a/6/mumble [u::---,g::---,o::---]
|
|
root/a/7 [u::---,g::---,o::---]
|
|
root/a/7/mumble [u::---,g::---,o::---]
|
|
root/a/8 [u::---,g::---,o::---]
|
|
root/a/8/mumble [u::---,g::---,o::---]
|
|
root/a/9 [u::---,g::---,o::---]
|
|
root/a/9/mumble [u::---,g::---,o::---]
|
|
root/a/0 [u::---,g::---,o::---]
|
|
root/a/0/mumble [u::---,g::---,o::---]
|
|
root/b [u::---,g::---,o::---]
|
|
root/b/c1 [u::---,g::---,o::---]
|
|
root/b/c1/1 [u::---,g::---,o::---]
|
|
root/b/c2 [u::---,g::---,o::---]
|
|
root/b/c2/2 [u::---,g::---,o::---]
|
|
root/b/c3 [u::---,g::---,o::---]
|
|
root/b/c3/3 [u::---,g::---,o::---]
|
|
root/b/c4 [u::---,g::---,o::---]
|
|
root/b/c4/4 [u::---,g::---,o::---]
|
|
root/b/c5 [u::---,g::---,o::---]
|
|
root/b/c5/5 [u::---,g::---,o::---]
|
|
root/b/c6 [u::---,g::---,o::---]
|
|
root/b/c6/6 [u::---,g::---,o::---]
|
|
root/b/c7 [u::---,g::---,o::---]
|
|
root/b/c7/7 [u::---,g::---,o::---]
|
|
root/b/c8 [u::---,g::---,o::---]
|
|
root/b/c8/8 [u::---,g::---,o::---]
|
|
root/b/c9 [u::---,g::---,o::---]
|
|
root/b/c9/9 [u::---,g::---,o::---]
|
|
root/b/c0 [u::---,g::---,o::---]
|
|
root/b/c0/0 [u::---,g::---,o::---]
|
|
|
|
=== Test out error messages for ACL text parsing ===
|
|
Note: Old interface gave more informative error msgs
|
|
+ chacl u file1
|
|
chacl: u - Invalid argument
|
|
+ chacl u: file1
|
|
chacl: u: - Invalid argument
|
|
+ chacl u:rumpledumpleunknownuser file1
|
|
chacl: u:rumpledumpleunknownuser - Invalid argument
|
|
+ chacl u:rumpledumpleunknownuser: file1
|
|
chacl: u:rumpledumpleunknownuser: - Invalid argument
|
|
+ chacl g:rumpledumpleunknowngrp file1
|
|
chacl: g:rumpledumpleunknowngrp - Invalid argument
|
|
+ chacl g:rumpledumpleunknowngrp: file1
|
|
chacl: g:rumpledumpleunknowngrp: - Invalid argument
|
|
+ chacl o:user1:rwx file1
|
|
chacl: o:user1:rwx - Invalid argument
|
|
+ chacl m:user1:rwx file1
|
|
chacl: m:user1:rwx - Invalid argument
|
|
+ chacl a::rwx file1
|
|
chacl: a::rwx - Invalid argument
|
|
+ set +x
|