aboutsummaryrefslogtreecommitdiffstats
path: root/test/fs/private-home-dir.exp
blob: f85a939b15580d6103ce8e84e108e7089a05984b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/usr/bin/expect -f
# This file is part of Firejail project
# Copyright (C) 2014-2016 Firejail Authors
# License GPL v2

set timeout 10
spawn $env(SHELL)
match_max 100000


if {[file exists ~/.asoundrc]} {
	puts "found .asoundrc file\n"
} else {
	send -- "touch ~/.asoundrc\r"
}
after 100

if {[file exists ~/.Xauthority]} {
	puts "found .Xauthority file\n"
} else {
	send -- "touch ~/.Xauthority\r"
}
after 100
send -- "rm -fr ~/_firejail_test_dir_\r"
after 100
send -- "mkdir ~/_firejail_test_dir_\r"
sleep 1

# testing profile and private
send -- "firejail --private=~/_firejail_test_dir_\r"
expect {
	timeout {puts "TESTING ERROR 0\n";exit}
	"Child process initialized"
}
sleep 1

send -- "ls -l ~\r"
expect {
	timeout {puts "TESTING ERROR 1\n";exit}
	"total 0"
}
after 100

send -- "ls -al ~\r"
expect {
	timeout {puts "TESTING ERROR 2\n";exit}
	".asoundrc"
}
expect {
	timeout {puts "TESTING ERROR 3\n";exit}
	".bashrc"
}
expect {
	timeout {puts "TESTING ERROR 4\n";exit}
	".Xauthority"
}
after 100

send -- "exit\r"
sleep 1


# testing profile and private
send -- "firejail --private=/etc\r"
expect {
	timeout {puts "TESTING ERROR 5\n";exit}
	"private directory should be owned by the current user"
}
sleep 1
send -- "mkdir ~/_firejail_test_dir_/test_dir_2\r"
after 100
send -- "touch ~/_firejail_test_dir_/test_dir_2/testfile\r"
sleep 1

send -- "firejail --debug --noprofile --blacklist=~/test_dir_2 --private=~/_firejail_test_dir_\r"
expect {
	timeout {puts "TESTING ERROR 6\n";exit}
	"Not blacklist"
}
expect {
	timeout {puts "TESTING ERROR 7\n";exit}
	"test_dir_2"
}
expect {
	timeout {puts "TESTING ERROR 8\n";exit}
	"Child process initialized"
}

sleep 1

send -- "find ~\r"
expect {
	timeout {puts "TESTING ERROR 9\n";exit}
	"testfile"
}
after 100

send -- "exit\r"
sleep 1

send -- "firejail --debug --noprofile --allow-private-blacklist --blacklist=~/test_dir_2 --private=~/_firejail_test_dir_\r"
expect {
	timeout {puts "TESTING ERROR 10\n";exit}
	"Disable"
}
expect {
	timeout {puts "TESTING ERROR 11\n";exit}
	"test_dir_2"
}
expect {
	timeout {puts "TESTING ERROR 12\n";exit}
	"Child process initialized"
}

sleep 1

send -- "ls ~/test_dir_2\r"
expect {
	timeout {puts "TESTING ERROR 13\n";exit}
	"cannot open directory"
}
after 100

send "exit\r"
sleep 1

send -- "rm -fr ~/_firejail_test_dir_\r"
after 100

puts "\nall done\n"