xref: /freebsd/tests/sys/acl/tools-crossfs.test (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*b3af24b4SEnji Cooper# Copyright (c) 2008, 2009 Edward Tomasz Napierała <trasz@FreeBSD.org>
2*b3af24b4SEnji Cooper#
3*b3af24b4SEnji Cooper# Redistribution and use in source and binary forms, with or without
4*b3af24b4SEnji Cooper# modification, are permitted provided that the following conditions
5*b3af24b4SEnji Cooper# are met:
6*b3af24b4SEnji Cooper# 1. Redistributions of source code must retain the above copyright
7*b3af24b4SEnji Cooper#    notice, this list of conditions and the following disclaimer.
8*b3af24b4SEnji Cooper# 2. Redistributions in binary form must reproduce the above copyright
9*b3af24b4SEnji Cooper#    notice, this list of conditions and the following disclaimer in the
10*b3af24b4SEnji Cooper#    documentation and/or other materials provided with the distribution.
11*b3af24b4SEnji Cooper#
12*b3af24b4SEnji Cooper# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13*b3af24b4SEnji Cooper# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14*b3af24b4SEnji Cooper# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15*b3af24b4SEnji Cooper# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16*b3af24b4SEnji Cooper# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17*b3af24b4SEnji Cooper# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18*b3af24b4SEnji Cooper# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19*b3af24b4SEnji Cooper# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20*b3af24b4SEnji Cooper# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21*b3af24b4SEnji Cooper# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22*b3af24b4SEnji Cooper# SUCH DAMAGE.
23*b3af24b4SEnji Cooper#
24*b3af24b4SEnji Cooper#
25*b3af24b4SEnji Cooper
26*b3af24b4SEnji Cooper# This is a tools-level test intended to verify that cp(1) and mv(1)
27*b3af24b4SEnji Cooper# do the right thing with respect to ACLs.  Run it as root using
28*b3af24b4SEnji Cooper# ACL-enabled kernel:
29*b3af24b4SEnji Cooper#
30*b3af24b4SEnji Cooper# /usr/src/tools/regression/acltools/run /usr/src/tools/regression/acltools/tools-nfs4.test
31*b3af24b4SEnji Cooper#
32*b3af24b4SEnji Cooper# You need to have three subdirectories, named nfs4, posix and none,
33*b3af24b4SEnji Cooper# with filesystems with NFSv4 ACLs, POSIX.1e ACLs and no ACLs enabled,
34*b3af24b4SEnji Cooper# respectively, mounted on them, in your current directory.
35*b3af24b4SEnji Cooper#
36*b3af24b4SEnji Cooper# WARNING: Creates files in unsafe way.
37*b3af24b4SEnji Cooper
38*b3af24b4SEnji Cooper$ whoami
39*b3af24b4SEnji Cooper> root
40*b3af24b4SEnji Cooper$ umask 022
41*b3af24b4SEnji Cooper
42*b3af24b4SEnji Cooper$ touch nfs4/xxx
43*b3af24b4SEnji Cooper$ getfacl -nq nfs4/xxx
44*b3af24b4SEnji Cooper>             owner@:rw-p--aARWcCos:-------:allow
45*b3af24b4SEnji Cooper>             group@:r-----a-R-c--s:-------:allow
46*b3af24b4SEnji Cooper>          everyone@:r-----a-R-c--s:-------:allow
47*b3af24b4SEnji Cooper
48*b3af24b4SEnji Cooper$ touch posix/xxx
49*b3af24b4SEnji Cooper$ getfacl -nq posix/xxx
50*b3af24b4SEnji Cooper> user::rw-
51*b3af24b4SEnji Cooper> group::r--
52*b3af24b4SEnji Cooper> other::r--
53*b3af24b4SEnji Cooper
54*b3af24b4SEnji Cooper# mv with POSIX.1e ACLs.
55*b3af24b4SEnji Cooper$ rm -f posix/xxx
56*b3af24b4SEnji Cooper$ rm -f posix/yyy
57*b3af24b4SEnji Cooper$ touch posix/xxx
58*b3af24b4SEnji Cooper$ chmod 456 posix/xxx
59*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
60*b3af24b4SEnji Cooper> -r--r-xrw-
61*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
62*b3af24b4SEnji Cooper$ mv posix/xxx posix/yyy
63*b3af24b4SEnji Cooper$ getfacl -nq posix/yyy
64*b3af24b4SEnji Cooper> user::r--
65*b3af24b4SEnji Cooper> user:42:--x
66*b3af24b4SEnji Cooper> group::r-x
67*b3af24b4SEnji Cooper> group:43:-w-
68*b3af24b4SEnji Cooper> mask::rwx
69*b3af24b4SEnji Cooper> other::rw-
70*b3af24b4SEnji Cooper$ ls -l posix/yyy | cut -d' ' -f1
71*b3af24b4SEnji Cooper> -r--rwxrw-+
72*b3af24b4SEnji Cooper
73*b3af24b4SEnji Cooper# mv from POSIX.1e to none.
74*b3af24b4SEnji Cooper$ rm -f posix/xxx
75*b3af24b4SEnji Cooper$ rm -f none/xxx
76*b3af24b4SEnji Cooper$ touch posix/xxx
77*b3af24b4SEnji Cooper$ chmod 345 posix/xxx
78*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
79*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
80*b3af24b4SEnji Cooper> --wxrwxr-x+
81*b3af24b4SEnji Cooper$ mv posix/xxx none/xxx
82*b3af24b4SEnji Cooper> mv: failed to set acl entries for none/xxx: Operation not supported
83*b3af24b4SEnji Cooper$ ls -l none/xxx | cut -d' ' -f1
84*b3af24b4SEnji Cooper> --wxrwxr-x
85*b3af24b4SEnji Cooper
86*b3af24b4SEnji Cooper# mv from POSIX.1e to NFSv4.
87*b3af24b4SEnji Cooper$ rm -f posix/xxx
88*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
89*b3af24b4SEnji Cooper$ touch posix/xxx
90*b3af24b4SEnji Cooper$ chmod 456 posix/xxx
91*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
92*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
93*b3af24b4SEnji Cooper> -r--rwxrw-+
94*b3af24b4SEnji Cooper$ mv posix/yyy nfs4/xxx
95*b3af24b4SEnji Cooper> mv: failed to set acl entries for nfs4/xxx: Invalid argument
96*b3af24b4SEnji Cooper$ getfacl -nq nfs4/xxx
97*b3af24b4SEnji Cooper>             owner@:-wxp----------:-------:deny
98*b3af24b4SEnji Cooper>             owner@:r-----aARWcCos:-------:allow
99*b3af24b4SEnji Cooper>             group@:rwxp--a-R-c--s:-------:allow
100*b3af24b4SEnji Cooper>          everyone@:rw-p--a-R-c--s:-------:allow
101*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
102*b3af24b4SEnji Cooper> -r--rwxrw-
103*b3af24b4SEnji Cooper
104*b3af24b4SEnji Cooper# mv with NFSv4 ACLs.
105*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
106*b3af24b4SEnji Cooper$ rm -f nfs4/yyy
107*b3af24b4SEnji Cooper$ touch nfs4/xxx
108*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
109*b3af24b4SEnji Cooper$ mv nfs4/xxx nfs4/yyy
110*b3af24b4SEnji Cooper$ getfacl -nq nfs4/yyy
111*b3af24b4SEnji Cooper>            user:42:--x-----------:-------:allow
112*b3af24b4SEnji Cooper>           group:43:-w------------:-------:allow
113*b3af24b4SEnji Cooper>             owner@:rw-p--aARWcCos:-------:allow
114*b3af24b4SEnji Cooper>             group@:r-----a-R-c--s:-------:allow
115*b3af24b4SEnji Cooper>          everyone@:r-----a-R-c--s:-------:allow
116*b3af24b4SEnji Cooper$ ls -l nfs4/yyy | cut -d' ' -f1
117*b3af24b4SEnji Cooper> -rw-r--r--+
118*b3af24b4SEnji Cooper
119*b3af24b4SEnji Cooper# mv from NFSv4 to POSIX.1e without any ACLs.
120*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
121*b3af24b4SEnji Cooper$ rm -f posix/xxx
122*b3af24b4SEnji Cooper$ touch nfs4/xxx
123*b3af24b4SEnji Cooper$ chmod 456 nfs4/xxx
124*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
125*b3af24b4SEnji Cooper> -r--r-xrw-
126*b3af24b4SEnji Cooper$ mv nfs4/xxx posix/xxx
127*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
128*b3af24b4SEnji Cooper> -r--r-xrw-
129*b3af24b4SEnji Cooper
130*b3af24b4SEnji Cooper# mv from NFSv4 to none.
131*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
132*b3af24b4SEnji Cooper$ rm -f none/xxx
133*b3af24b4SEnji Cooper$ touch nfs4/xxx
134*b3af24b4SEnji Cooper$ chmod 345 nfs4/xxx
135*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
136*b3af24b4SEnji Cooper> --wxr--r-x
137*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
138*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
139*b3af24b4SEnji Cooper> --wxr--r-x+
140*b3af24b4SEnji Cooper$ mv nfs4/xxx none/xxx
141*b3af24b4SEnji Cooper> mv: failed to set acl entries for none/xxx: Operation not supported
142*b3af24b4SEnji Cooper$ ls -l none/xxx | cut -d' ' -f1
143*b3af24b4SEnji Cooper> --wxr--r-x
144*b3af24b4SEnji Cooper
145*b3af24b4SEnji Cooper# mv from NFSv4 to POSIX.1e.
146*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
147*b3af24b4SEnji Cooper$ rm -f posix/xxx
148*b3af24b4SEnji Cooper$ touch nfs4/xxx
149*b3af24b4SEnji Cooper$ chmod 345 nfs4/xxx
150*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
151*b3af24b4SEnji Cooper> --wxr--r-x
152*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
153*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
154*b3af24b4SEnji Cooper> --wxr--r-x+
155*b3af24b4SEnji Cooper$ mv nfs4/xxx posix/xxx
156*b3af24b4SEnji Cooper> mv: failed to set acl entries for posix/xxx: Invalid argument
157*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
158*b3af24b4SEnji Cooper> --wxr--r-x
159*b3af24b4SEnji Cooper
160*b3af24b4SEnji Cooper# cp with POSIX.1e ACLs.
161*b3af24b4SEnji Cooper$ rm -f posix/xxx
162*b3af24b4SEnji Cooper$ rm -f posix/yyy
163*b3af24b4SEnji Cooper$ touch posix/xxx
164*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
165*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
166*b3af24b4SEnji Cooper> -rw-rwxr--+
167*b3af24b4SEnji Cooper$ cp posix/xxx posix/yyy
168*b3af24b4SEnji Cooper$ ls -l posix/yyy | cut -d' ' -f1
169*b3af24b4SEnji Cooper> -rw-r-xr--
170*b3af24b4SEnji Cooper
171*b3af24b4SEnji Cooper# cp -p with POSIX.1e ACLs.
172*b3af24b4SEnji Cooper$ rm -f posix/xxx
173*b3af24b4SEnji Cooper$ rm -f posix/yyy
174*b3af24b4SEnji Cooper$ touch posix/xxx
175*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
176*b3af24b4SEnji Cooper$ getfacl -nq posix/xxx
177*b3af24b4SEnji Cooper> user::rw-
178*b3af24b4SEnji Cooper> user:42:--x
179*b3af24b4SEnji Cooper> group::r--
180*b3af24b4SEnji Cooper> group:43:-w-
181*b3af24b4SEnji Cooper> mask::rwx
182*b3af24b4SEnji Cooper> other::r--
183*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
184*b3af24b4SEnji Cooper> -rw-rwxr--+
185*b3af24b4SEnji Cooper$ cp -p posix/xxx posix/yyy
186*b3af24b4SEnji Cooper$ getfacl -nq posix/yyy
187*b3af24b4SEnji Cooper> user::rw-
188*b3af24b4SEnji Cooper> user:42:--x
189*b3af24b4SEnji Cooper> group::r--
190*b3af24b4SEnji Cooper> group:43:-w-
191*b3af24b4SEnji Cooper> mask::rwx
192*b3af24b4SEnji Cooper> other::r--
193*b3af24b4SEnji Cooper$ ls -l posix/yyy | cut -d' ' -f1
194*b3af24b4SEnji Cooper> -rw-rwxr--+
195*b3af24b4SEnji Cooper
196*b3af24b4SEnji Cooper# cp from POSIX.1e to none.
197*b3af24b4SEnji Cooper$ rm -f posix/xxx
198*b3af24b4SEnji Cooper$ rm -f none/xxx
199*b3af24b4SEnji Cooper$ touch posix/xxx
200*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
201*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
202*b3af24b4SEnji Cooper> -rw-rwxr--+
203*b3af24b4SEnji Cooper$ cp posix/xxx none/xxx
204*b3af24b4SEnji Cooper$ ls -l none/xxx | cut -d' ' -f1
205*b3af24b4SEnji Cooper> -rw-r-xr--
206*b3af24b4SEnji Cooper
207*b3af24b4SEnji Cooper# cp -p from POSIX.1e to none.
208*b3af24b4SEnji Cooper$ rm -f posix/xxx
209*b3af24b4SEnji Cooper$ rm -f none/xxx
210*b3af24b4SEnji Cooper$ touch posix/xxx
211*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
212*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
213*b3af24b4SEnji Cooper> -rw-rwxr--+
214*b3af24b4SEnji Cooper$ cp -p posix/xxx none/xxx
215*b3af24b4SEnji Cooper> cp: failed to set acl entries for none/xxx: Operation not supported
216*b3af24b4SEnji Cooper$ ls -l none/xxx | cut -d' ' -f1
217*b3af24b4SEnji Cooper> -rw-rwxr--
218*b3af24b4SEnji Cooper
219*b3af24b4SEnji Cooper# cp from POSIX.1e to NFSv4.
220*b3af24b4SEnji Cooper$ rm -f posix/xxx
221*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
222*b3af24b4SEnji Cooper$ touch posix/xxx
223*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
224*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
225*b3af24b4SEnji Cooper> -rw-rwxr--+
226*b3af24b4SEnji Cooper$ cp posix/xxx nfs4/xxx
227*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
228*b3af24b4SEnji Cooper> -rw-r-xr--
229*b3af24b4SEnji Cooper
230*b3af24b4SEnji Cooper# cp -p from POSIX.1e to NFSv4.
231*b3af24b4SEnji Cooper$ rm -f posix/xxx
232*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
233*b3af24b4SEnji Cooper$ touch posix/xxx
234*b3af24b4SEnji Cooper$ setfacl -m u:42:x,g:43:w posix/xxx
235*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
236*b3af24b4SEnji Cooper> -rw-rwxr--+
237*b3af24b4SEnji Cooper$ cp -p posix/xxx nfs4/xxx
238*b3af24b4SEnji Cooper> cp: failed to set acl entries for nfs4/xxx: Invalid argument
239*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
240*b3af24b4SEnji Cooper> -rw-rwxr--
241*b3af24b4SEnji Cooper
242*b3af24b4SEnji Cooper# cp with NFSv4 ACLs.
243*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
244*b3af24b4SEnji Cooper$ rm -f nfs4/yyy
245*b3af24b4SEnji Cooper$ touch nfs4/xxx
246*b3af24b4SEnji Cooper$ chmod 543 nfs4/xxx
247*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
248*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
249*b3af24b4SEnji Cooper> -r-xr---wx+
250*b3af24b4SEnji Cooper$ cp nfs4/xxx nfs4/yyy
251*b3af24b4SEnji Cooper$ ls -l nfs4/yyy | cut -d' ' -f1
252*b3af24b4SEnji Cooper> -r-xr----x
253*b3af24b4SEnji Cooper
254*b3af24b4SEnji Cooper# cp -p with NFSv4 ACLs.
255*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
256*b3af24b4SEnji Cooper$ rm -f nfs4/yyy
257*b3af24b4SEnji Cooper$ touch nfs4/xxx
258*b3af24b4SEnji Cooper$ chmod 543 nfs4/xxx
259*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
260*b3af24b4SEnji Cooper$ cp -p nfs4/xxx nfs4/yyy
261*b3af24b4SEnji Cooper$ getfacl -nq nfs4/yyy
262*b3af24b4SEnji Cooper>            user:42:--x-----------:-------:allow
263*b3af24b4SEnji Cooper>           group:43:-w------------:-------:allow
264*b3af24b4SEnji Cooper>             owner@:--x-----------:-------:allow
265*b3af24b4SEnji Cooper>             owner@:-w-p----------:-------:deny
266*b3af24b4SEnji Cooper>             group@:-wxp----------:-------:deny
267*b3af24b4SEnji Cooper>             owner@:r-x---aARWcCos:-------:allow
268*b3af24b4SEnji Cooper>             group@:r-----a-R-c--s:-------:allow
269*b3af24b4SEnji Cooper>          everyone@:-wxp--a-R-c--s:-------:allow
270*b3af24b4SEnji Cooper$ ls -l nfs4/yyy | cut -d' ' -f1
271*b3af24b4SEnji Cooper> -r-xr---wx+
272*b3af24b4SEnji Cooper
273*b3af24b4SEnji Cooper# cp from NFSv4 to none.
274*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
275*b3af24b4SEnji Cooper$ rm -f none/xxx
276*b3af24b4SEnji Cooper$ touch nfs4/xxx
277*b3af24b4SEnji Cooper$ chmod 543 nfs4/xxx
278*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
279*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
280*b3af24b4SEnji Cooper> -r-xr---wx+
281*b3af24b4SEnji Cooper$ cp nfs4/xxx none/xxx
282*b3af24b4SEnji Cooper$ ls -l none/xxx | cut -d' ' -f1
283*b3af24b4SEnji Cooper> -r-xr----x
284*b3af24b4SEnji Cooper
285*b3af24b4SEnji Cooper# cp -p from NFSv4 to none.
286*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
287*b3af24b4SEnji Cooper$ rm -f none/xxx
288*b3af24b4SEnji Cooper$ touch nfs4/xxx
289*b3af24b4SEnji Cooper$ chmod 543 nfs4/xxx
290*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
291*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
292*b3af24b4SEnji Cooper> -r-xr---wx+
293*b3af24b4SEnji Cooper$ cp -p nfs4/xxx none/xxx
294*b3af24b4SEnji Cooper> cp: failed to set acl entries for none/xxx: Operation not supported
295*b3af24b4SEnji Cooper$ ls -l none/xxx | cut -d' ' -f1
296*b3af24b4SEnji Cooper> -r-xr---wx
297*b3af24b4SEnji Cooper
298*b3af24b4SEnji Cooper# cp from NFSv4 to POSIX.1e.
299*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
300*b3af24b4SEnji Cooper$ rm -f posix/xxx
301*b3af24b4SEnji Cooper$ touch nfs4/xxx
302*b3af24b4SEnji Cooper$ chmod 543 nfs4/xxx
303*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
304*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
305*b3af24b4SEnji Cooper> -r-xr---wx+
306*b3af24b4SEnji Cooper$ cp nfs4/xxx posix/xxx
307*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
308*b3af24b4SEnji Cooper> -r-xr----x
309*b3af24b4SEnji Cooper
310*b3af24b4SEnji Cooper# cp -p from NFSv4 to POSIX.1e.
311*b3af24b4SEnji Cooper$ rm -f nfs4/xxx
312*b3af24b4SEnji Cooper$ rm -f posix/xxx
313*b3af24b4SEnji Cooper$ touch nfs4/xxx
314*b3af24b4SEnji Cooper$ chmod 543 nfs4/xxx
315*b3af24b4SEnji Cooper$ setfacl -a0 u:42:x:allow,g:43:w:allow nfs4/xxx
316*b3af24b4SEnji Cooper$ ls -l nfs4/xxx | cut -d' ' -f1
317*b3af24b4SEnji Cooper> -r-xr---wx+
318*b3af24b4SEnji Cooper$ cp -p nfs4/xxx posix/xxx
319*b3af24b4SEnji Cooper> cp: failed to set acl entries for posix/xxx: Invalid argument
320*b3af24b4SEnji Cooper$ ls -l posix/xxx | cut -d' ' -f1
321*b3af24b4SEnji Cooper> -r-xr---wx
322