source: trunk/packages/xen-3.1/xen-3.1/tools/xenstore/testsuite/06dirpermissions.test @ 34

Last change on this file since 34 was 34, checked in by hartmans, 18 years ago

Add xen and xen-common

File size: 2.4 KB
Line 
1# Root directory: owned by tool, everyone has read access.
2expect 0 READ
3getperm /
4
5# Create directory: inherits from root.
6mkdir /dir
7expect 0 READ
8getperm /dir
9setid 1
10expect 0 READ
11getperm /dir
12dir /dir
13expect write failed: Permission denied
14write /dir/test contents2
15
16# Remove everyone's read access to directoy.
17setid 0
18setperm /dir 0 NONE
19setid 1
20expect dir failed: Permission denied
21dir /dir
22expect read failed: Permission denied
23read /dir/test create contents2
24expect write failed: Permission denied
25write /dir/test contents2
26
27# Grant everyone write access to directory.
28setid 0
29setperm /dir 0 WRITE
30setid 1
31expect getperm failed: Permission denied
32getperm /dir
33expect dir failed: Permission denied
34dir /dir
35write /dir/test contents
36setid 0
37expect 1 WRITE
38getperm /dir/test
39setperm /dir/test 0 NONE
40expect contents
41read /dir/test
42
43# Grant everyone both read and write access.
44setperm /dir 0 READ/WRITE
45setid 1
46expect 0 READ/WRITE
47getperm /dir
48expect test
49dir /dir
50write /dir/test2 contents
51expect contents
52read /dir/test2
53setperm /dir/test2 1 NONE
54
55# Change so that user 1 owns it, noone else can do anything.
56setid 0
57setperm /dir 1 NONE
58expect 1 NONE
59getperm /dir
60expect test
61expect test2
62dir /dir
63write /dir/test3 contents
64
65# User 2 can do nothing.  Can't even tell if file exists.
66setid 2
67expect setperm failed: Permission denied
68setperm /dir 2 NONE
69expect getperm failed: Permission denied
70getperm /dir
71expect dir failed: Permission denied
72dir /dir
73expect read failed: Permission denied
74read /dir/test
75expect read failed: Permission denied
76read /dir/test2
77expect read failed: Permission denied
78read /dir/test3
79expect read failed: Permission denied
80read /dir/test4
81expect write failed: Permission denied
82write /dir/test contents
83expect write failed: Permission denied
84write /dir/test4 contents
85
86# Tools can always access things.
87setid 0
88expect 1 NONE
89getperm /dir
90expect test
91expect test2
92expect test3
93dir /dir
94write /dir/test4 contents
95
96# Inherited by child.
97mkdir /dir/subdir
98expect 1 NONE
99getperm /dir/subdir
100write /dir/subfile contents
101expect 1 NONE
102getperm /dir/subfile
103
104# But for domains, they own it.
105setperm /dir/subdir 2 READ/WRITE
106expect 2 READ/WRITE
107getperm /dir/subdir
108setid 3
109write /dir/subdir/subfile contents
110expect 3 READ/WRITE
111getperm /dir/subdir/subfile
112
113# Inheritence works through multiple directories, too.
114write /dir/subdir/1/2/3/4 contents
115expect 3 READ/WRITE
116getperm /dir/subdir/1/2/3/4
117mkdir /dir/subdir/a/b/c/d
118expect 3 READ/WRITE
119getperm /dir/subdir/a/b/c/d
Note: See TracBrowser for help on using the repository browser.