Deleted Added
full compact
00.t (196948) 00.t (210984)
1#!/bin/sh
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/granular/00.t 196948 2009-09-07 19:40:22Z trasz $
2# $FreeBSD: head/tools/regression/fstest/tests/granular/00.t 210984 2010-08-06 23:58:54Z pjd $
3
4desc="NFSv4 granular permissions checking - WRITE_DATA vs APPEND_DATA on directories"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
3
4desc="NFSv4 granular permissions checking - WRITE_DATA vs APPEND_DATA on directories"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9[ "${os}:${fs}" = "FreeBSD:ZFS" ] || quick_exit
10
9echo "1..49"
10
11n0=`namegen`
12n1=`namegen`
13n2=`namegen`
14n3=`namegen`
15
16expect 0 mkdir ${n2} 0755
17expect 0 mkdir ${n3} 0777
18cdir=`pwd`
19cd ${n2}
20
21# Tests 2..7 - check out whether root user can do stuff.
22# Can create files?
23expect 0 create ${n0} 0644
24
25# Can create symlinks?
26expect 0 link ${n0} ${n1}
27expect 0 unlink ${n1}
28expect 0 unlink ${n0}
29
30# Can create directories?
31expect 0 mkdir ${n0} 0755
32expect 0 rmdir ${n0}
33
34# Check whether user 65534 is permitted to create and remove
35# files, but not subdirectories.
36expect 0 prependacl . user:65534:write_data::allow,user:65534:append_data::deny
37
38# Can create files?
39expect 0 -u 65534 -g 65534 create ${n0} 0644
40
41# Can create symlinks?
42expect 0 -u 65534 -g 65534 link ${n0} ${n1}
43expect 0 -u 65534 -g 65534 unlink ${n1}
44expect 0 -u 65534 -g 65534 unlink ${n0}
45
46# Can create directories?
47expect EACCES -u 65534 -g 65534 mkdir ${n0} 0755
48expect ENOENT -u 65534 -g 65534 rmdir ${n0}
49expect 0 mkdir ${n0} 0755
50expect 0 -u 65534 -g 65534 rmdir ${n0}
51
52# Can move files from other directory?
53expect 0 create ../${n3}/${n1} 0644
54expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
55
56# Can move files from other directory overwriting existing files?
57expect 0 create ../${n3}/${n1} 0644
58expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
59
60expect 0 -u 65534 -g 65534 unlink ${n0}
61
62# Can move directories from other directory?
63expect 0 mkdir ../${n3}/${n1} 0777
64expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
65
66# Can move directories from other directory overwriting existing directory?
67expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
68expect 0 -u 65534 -g 65534 rmdir ../${n3}/${n1}
69
70# Check whether user 65534 is permitted to create
71# subdirectories, but not files - and to remove neither of them.
72expect 0 prependacl . user:65534:write_data::deny,user:65534:append_data::allow
73
74# Can create files?
75expect EACCES -u 65534 -g 65534 create ${n0} 0644
76
77# Can create symlinks?
78expect 0 create ${n0} 0644
79expect EACCES -u 65534 -g 65534 link ${n0} ${n1}
80expect ENOENT -u 65534 -g 65534 unlink ${n1}
81expect EACCES -u 65534 -g 65534 unlink ${n0}
82expect 0 unlink ${n0}
83
84# Can create directories?
85expect 0 -u 65534 -g 65534 mkdir ${n0} 0755
86expect EACCES -u 65534 -g 65534 rmdir ${n0}
87expect 0 rmdir ${n0}
88
89# Can move files from other directory?
90expect 0 create ../${n3}/${n1} 0644
91expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
92
93# Can move files from other directory overwriting existing files?
94expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
95expect 0 -u 65534 -g 65534 unlink ../${n3}/${n1}
96
97# Can move directories from other directory?
98expect 0 mkdir ../${n3}/${n1} 0777
99expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
100
101# Can move directories from other directory overwriting existing directory?
102expect 0 mkdir ../${n3}/${n1} 0777
103expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
104expect 0 prependacl . user:65534:delete_child::allow
105expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
106expect 0 -u 65534 -g 65534 rmdir ${n0}
107
108cd ${cdir}
109expect 0 rmdir ${n2}
110expect 0 rmdir ${n3}
11echo "1..49"
12
13n0=`namegen`
14n1=`namegen`
15n2=`namegen`
16n3=`namegen`
17
18expect 0 mkdir ${n2} 0755
19expect 0 mkdir ${n3} 0777
20cdir=`pwd`
21cd ${n2}
22
23# Tests 2..7 - check out whether root user can do stuff.
24# Can create files?
25expect 0 create ${n0} 0644
26
27# Can create symlinks?
28expect 0 link ${n0} ${n1}
29expect 0 unlink ${n1}
30expect 0 unlink ${n0}
31
32# Can create directories?
33expect 0 mkdir ${n0} 0755
34expect 0 rmdir ${n0}
35
36# Check whether user 65534 is permitted to create and remove
37# files, but not subdirectories.
38expect 0 prependacl . user:65534:write_data::allow,user:65534:append_data::deny
39
40# Can create files?
41expect 0 -u 65534 -g 65534 create ${n0} 0644
42
43# Can create symlinks?
44expect 0 -u 65534 -g 65534 link ${n0} ${n1}
45expect 0 -u 65534 -g 65534 unlink ${n1}
46expect 0 -u 65534 -g 65534 unlink ${n0}
47
48# Can create directories?
49expect EACCES -u 65534 -g 65534 mkdir ${n0} 0755
50expect ENOENT -u 65534 -g 65534 rmdir ${n0}
51expect 0 mkdir ${n0} 0755
52expect 0 -u 65534 -g 65534 rmdir ${n0}
53
54# Can move files from other directory?
55expect 0 create ../${n3}/${n1} 0644
56expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
57
58# Can move files from other directory overwriting existing files?
59expect 0 create ../${n3}/${n1} 0644
60expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
61
62expect 0 -u 65534 -g 65534 unlink ${n0}
63
64# Can move directories from other directory?
65expect 0 mkdir ../${n3}/${n1} 0777
66expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
67
68# Can move directories from other directory overwriting existing directory?
69expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
70expect 0 -u 65534 -g 65534 rmdir ../${n3}/${n1}
71
72# Check whether user 65534 is permitted to create
73# subdirectories, but not files - and to remove neither of them.
74expect 0 prependacl . user:65534:write_data::deny,user:65534:append_data::allow
75
76# Can create files?
77expect EACCES -u 65534 -g 65534 create ${n0} 0644
78
79# Can create symlinks?
80expect 0 create ${n0} 0644
81expect EACCES -u 65534 -g 65534 link ${n0} ${n1}
82expect ENOENT -u 65534 -g 65534 unlink ${n1}
83expect EACCES -u 65534 -g 65534 unlink ${n0}
84expect 0 unlink ${n0}
85
86# Can create directories?
87expect 0 -u 65534 -g 65534 mkdir ${n0} 0755
88expect EACCES -u 65534 -g 65534 rmdir ${n0}
89expect 0 rmdir ${n0}
90
91# Can move files from other directory?
92expect 0 create ../${n3}/${n1} 0644
93expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
94
95# Can move files from other directory overwriting existing files?
96expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
97expect 0 -u 65534 -g 65534 unlink ../${n3}/${n1}
98
99# Can move directories from other directory?
100expect 0 mkdir ../${n3}/${n1} 0777
101expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
102
103# Can move directories from other directory overwriting existing directory?
104expect 0 mkdir ../${n3}/${n1} 0777
105expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
106expect 0 prependacl . user:65534:delete_child::allow
107expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0}
108expect 0 -u 65534 -g 65534 rmdir ${n0}
109
110cd ${cdir}
111expect 0 rmdir ${n2}
112expect 0 rmdir ${n3}