aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--RELNOTES2
-rw-r--r--src/man/firejail-profile.txt107
-rw-r--r--src/man/firejail.txt2
-rw-r--r--todo8
4 files changed, 55 insertions, 64 deletions
diff --git a/RELNOTES b/RELNOTES
index 8d70eac10..b804f2f81 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -14,7 +14,7 @@ firejail (0.9.36-rc1) baseline; urgency=low
14 * added /etc/firejail/nolocal.net network filter 14 * added /etc/firejail/nolocal.net network filter
15 * added /etc/firejail/webserver.net network filter 15 * added /etc/firejail/webserver.net network filter
16 * blacklisting firejail configuration by default 16 * blacklisting firejail configuration by default
17 * alow default gateway configuration for --interface option 17 * allow default gateway configuration for --interface option
18 * --debug enhancements: --debug-check-filenames, --debug-blacklists, 18 * --debug enhancements: --debug-check-filenames, --debug-blacklists,
19 --debug-whitelists 19 --debug-whitelists
20 * filesystem log 20 * filesystem log
diff --git a/src/man/firejail-profile.txt b/src/man/firejail-profile.txt
index 600b82d3d..e9cb1aa49 100644
--- a/src/man/firejail-profile.txt
+++ b/src/man/firejail-profile.txt
@@ -10,7 +10,7 @@ firejail \-\-profile=filename.profile
10Several command line options can be passed to the program using 10Several command line options can be passed to the program using
11profile files. Firejail chooses the profile file as follows: 11profile files. Firejail chooses the profile file as follows:
12 12
131. If a profile file is provided by the user with \-\-profile option, the profile file is loaded. 13\fB1.\fR If a profile file is provided by the user with \-\-profile option, the profile file is loaded.
14Example: 14Example:
15.PP 15.PP
16.RS 16.RS
@@ -21,7 +21,7 @@ Reading profile /home/netblue/icecat.profile
21[...] 21[...]
22.RE 22.RE
23 23
242. If a profile file with the same name as the application is present in ~/.config/firejail directory or 24\fB2.\fR If a profile file with the same name as the application is present in ~/.config/firejail directory or
25in /etc/firejail, the profile is loaded. ~/.config/firejail takes precedence over /etc/firejail. Example: 25in /etc/firejail, the profile is loaded. ~/.config/firejail takes precedence over /etc/firejail. Example:
26.PP 26.PP
27.RS 27.RS
@@ -36,7 +36,7 @@ Reading profile /home/netblue/.config/firejail/icecat.profile
36[...] 36[...]
37.RE 37.RE
38 38
393. Use a default.profile file if the sandbox 39\fB3.\fR Use a default.profile file if the sandbox
40is started by a regular user, or a server.profile file if the sandbox 40is started by a regular user, or a server.profile file if the sandbox
41is started by root. Firejail looks for these files in ~/.config/firejail directory, followed by /etc/firejail directory. 41is started by root. Firejail looks for these files in ~/.config/firejail directory, followed by /etc/firejail directory.
42To disable default profile loading, use --noroot command option. Example: 42To disable default profile loading, use --noroot command option. Example:
@@ -67,10 +67,10 @@ Child process initialized
67Scripting commands: 67Scripting commands:
68 68
69.TP 69.TP
70# this is a comment 70\fB# this is a comment
71 71
72.TP 72.TP
73\f\include other.profile 73\fBinclude other.profile
74Include other.profile file. 74Include other.profile file.
75 75
76Example: "include /etc/firejail/disable-common.inc" 76Example: "include /etc/firejail/disable-common.inc"
@@ -81,13 +81,13 @@ file in user home directory.
81Example: "include ${HOME}/myprofiles/profile1" will load "~/myprofiles/profile1" file. 81Example: "include ${HOME}/myprofiles/profile1" will load "~/myprofiles/profile1" file.
82 82
83.TP 83.TP
84\f\ noblacklist file_name 84\fBnoblacklist file_name
85If the file name matches file_name, the file will not be blacklisted in any blacklist commands that follow. 85If the file name matches file_name, the file will not be blacklisted in any blacklist commands that follow.
86 86
87Example: "noblacklist ${HOME}/.mozilla" 87Example: "noblacklist ${HOME}/.mozilla"
88 88
89.TP 89.TP
90\f\ignore command 90\fBignore command
91Ignore command. 91Ignore command.
92 92
93Example: "ignore seccomp" 93Example: "ignore seccomp"
@@ -102,7 +102,7 @@ Use \fBprivate\fR to set private mode.
102File globbing is supported, and PATH and HOME directories are searched. 102File globbing is supported, and PATH and HOME directories are searched.
103Examples: 103Examples:
104.TP 104.TP
105\f\blacklist file_or_directory 105\fBblacklist file_or_directory
106Blacklist directory or file. Examples: 106Blacklist directory or file. Examples:
107.br 107.br
108 108
@@ -116,118 +116,117 @@ blacklist ${PATH}/ifconfig
116blacklist ${HOME}/.ssh 116blacklist ${HOME}/.ssh
117 117
118.TP 118.TP
119\f\read-only file_or_directory 119\fBread-only file_or_directory
120Make directory or file read-only. 120Make directory or file read-only.
121.TP 121.TP
122\f\ tmpfs directory 122\fBtmpfs directory
123Mount an empty tmpfs filesystem on top of directory. 123Mount an empty tmpfs filesystem on top of directory.
124.TP 124.TP
125\f\bind directory1,directory2 125\fBbind directory1,directory2
126Mount-bind directory1 on top of directory2. This option is only available when running as root. 126Mount-bind directory1 on top of directory2. This option is only available when running as root.
127.TP 127.TP
128\f\bind file1,file2 128\fBbind file1,file2
129Mount-bind file1 on top of file2. This option is only available when running as root. 129Mount-bind file1 on top of file2. This option is only available when running as root.
130.TP 130.TP
131\f\private 131\fBprivate
132Mount new /root and /home/user directories in temporary 132Mount new /root and /home/user directories in temporary
133filesystems. All modifications are discarded when the sandbox is 133filesystems. All modifications are discarded when the sandbox is
134closed. 134closed.
135.TP 135.TP
136\f\private-bin file,file 136\fBprivate-bin file,file
137Build a new /bin in a temporary filesystem, and copy the programs in the list. 137Build a new /bin in a temporary filesystem, and copy the programs in the list.
138The same directory is also bind-mounted over /sbin, /usr/bin and /usr/sbin. 138The same directory is also bind-mounted over /sbin, /usr/bin and /usr/sbin.
139.TP 139.TP
140\f\private directory 140\fBprivate directory
141Use directory as user home. 141Use directory as user home.
142.TP 142.TP
143\f\private-home file,directory 143\fBprivate-home file,directory
144Build a new user home in a temporary 144Build a new user home in a temporary
145filesystem, and copy the files and directories in the list in the 145filesystem, and copy the files and directories in the list in the
146new home. All modifications are discarded when the sandbox is 146new home. All modifications are discarded when the sandbox is
147closed. 147closed.
148.TP 148.TP
149\f\private-dev 149\fBprivate-dev
150Create a new /dev directory. Only dri, null, full, zero, tty, pts, ptmx, random, urandom, log and shm devices are available. 150Create a new /dev directory. Only dri, null, full, zero, tty, pts, ptmx, random, urandom, log and shm devices are available.
151.TP 151.TP
152\f\private-etc file,directory 152\fBprivate-etc file,directory
153Build a new /etc in a temporary 153Build a new /etc in a temporary
154filesystem, and copy the files and directories in the list. 154filesystem, and copy the files and directories in the list.
155All modifications are discarded when the sandbox is closed. 155All modifications are discarded when the sandbox is closed.
156.TP 156.TP
157\f\whitelist file_or_directory 157\fBwhitelist file_or_directory
158Build a new user home in a temporary filesystem, and mount-bind file_or_directory. 158Build a new user home in a temporary filesystem, and mount-bind file_or_directory.
159The modifications to file_or_directory are persistent, everything else is discarded 159The modifications to file_or_directory are persistent, everything else is discarded
160when the sandbox is closed. 160when the sandbox is closed.
161.TP 161.TP
162\f\ tracelog 162\fBtracelog
163Blacklist violations logged to syslog. 163Blacklist violations logged to syslog.
164.SH Filters 164.SH Security filters
165\fBcaps\fR and \fBseccomp\fR enable Linux capabilities and seccomp filters. Examples: 165The following security filters are currently implemented:
166 166
167.TP 167.TP
168caps 168\fBcaps
169Enable default Linux capabilities filter. 169Enable default Linux capabilities filter.
170.TP 170.TP
171caps.drop all 171\fBcaps.drop all
172Blacklist all Linux capabilities. 172Blacklist all Linux capabilities.
173.TP 173.TP
174caps.drop capability,capability,capability 174\fBcaps.drop capability,capability,capability
175Blacklist given Linux capabilities. 175Blacklist given Linux capabilities.
176.TP 176.TP
177caps.keep capability,capability,capability 177\fBcaps.keep capability,capability,capability
178Whitelist given Linux capabilities. 178Whitelist given Linux capabilities.
179.TP 179.TP
180\f\seccomp 180\fBprotocol protocol1,protocol2,protocol3
181Enable protocol filter. The filter is based on seccomp and checks the
182first argument to socket system call. Recognized values: \fBunix\fR,
183\fBinet\fR, \fBinet6\fR, \fBnetlink\fR and \fBpacket\fR.
184.TP
185\fBseccomp
181Enable default seccomp filter. The default list is as follows: 186Enable default seccomp filter. The default list is as follows:
182mount, umount2, ptrace, kexec_load, open_by_handle_at, init_module, finit_module, delete_module, 187mount, umount2, ptrace, kexec_load, open_by_handle_at, init_module, finit_module, delete_module,
183iopl, ioperm, swapon, swapoff, syslog, process_vm_readv and process_vm_writev, 188iopl, ioperm, swapon, swapoff, syslog, process_vm_readv and process_vm_writev,
184sysfs,_sysctl, adjtimex, clock_adjtime, lookup_dcookie, perf_event_open, fanotify_init and kcmp. 189sysfs,_sysctl, adjtimex, clock_adjtime, lookup_dcookie, perf_event_open, fanotify_init and kcmp.
185.TP 190.TP
186\f\seccomp syscall,syscall,syscall 191\fBseccomp syscall,syscall,syscall
187Enable seccomp filter and blacklist the system calls in the list on top of default seccomp filter. 192Enable seccomp filter and blacklist the system calls in the list on top of default seccomp filter.
188.TP 193.TP
189\f\seccomp.drop syscall,syscall,syscall 194\fBseccomp.drop syscall,syscall,syscall
190Enable seccomp filter and blacklist the system calls in the list. 195Enable seccomp filter and blacklist the system calls in the list.
191.TP 196.TP
192\f\seccomp.keep syscall,syscall,syscall 197\fBseccomp.keep syscall,syscall,syscall
193Enable seccomp filter and whitelist the system calls in the list. 198Enable seccomp filter and whitelist the system calls in the list.
194
195
196.SH User Namespace
197Use \fBnoroot\fR to enable an user namespace. The namespace has only one user, the current user.
198There is no root account defined in the namespace.
199
200.TP 199.TP
201noroot 200\fBnoroot
202Enable an user namespace without root user defined. 201Use this command to enable an user namespace. The namespace has only one user, the current user.
203 202There is no root account (uid 0) defined in the namespace.
204 203
205.SH Resource limits 204.SH Resource limits
206These profile entries define the limits on system resources (rlimits) for the processes inside the sandbox. 205These profile entries define the limits on system resources (rlimits) for the processes inside the sandbox.
207The limits can be modified inside the sandbox using the regular \fBulimit\fR command. Examples: 206The limits can be modified inside the sandbox using the regular \fBulimit\fR command. Example:
208 207
209.TP 208.TP
210\f\rlimit-fsize 1024 209\fBrlimit-fsize 1024
211Set the maximum file size that can be created by a process to 1024 bytes. 210Set the maximum file size that can be created by a process to 1024 bytes.
212.TP 211.TP
213\f\rlimit-nproc 1000 212\fBrlimit-nproc 1000
214Set the maximum number of processes that can be created for the real user ID of the calling process to 1000. 213Set the maximum number of processes that can be created for the real user ID of the calling process to 1000.
215.TP 214.TP
216\f\rlimit-nofile 500 215\fBrlimit-nofile 500
217Set the maximum number of files that can be opened by a process to 500. 216Set the maximum number of files that can be opened by a process to 500.
218.TP 217.TP
219\f\rlimit-sigpending 200 218\fBrlimit-sigpending 200
220Set the maximum number of processes that can be created for the real user ID of the calling process to 200. 219Set the maximum number of processes that can be created for the real user ID of the calling process to 200.
221 220
222.SH CPU Affinity 221.SH CPU Affinity
223Set the CPU cores available for this sandbox. Examples: 222Set the CPU cores available for this sandbox using \fBcpu\fR command. Examples:
224 223
225.TP 224.TP
226cpu 1,2,3 225cpu 1,2,3
227Use only CPU cores 0, 1 and 2. 226Use only CPU cores 0, 1 and 2.
228 227
229.SH Control Groups 228.SH Control Groups
230Place the sandbox in an existing control group specified by the full path of the task file. Example: 229Place the sandbox in an existing control group specified by the full path of the task file using \fBcgroup\fR. Example:
231 230
232.TP 231.TP
233cgroup /sys/fs/cgroup/g1/tasks 232cgroup /sys/fs/cgroup/g1/tasks
@@ -236,7 +235,7 @@ The sandbox is placed in g1 control group.
236.SH User Environment 235.SH User Environment
237 236
238.TP 237.TP
239env name=value 238\fBenv name=value
240Set environment variable. Examples: 239Set environment variable. Examples:
241.br 240.br
242 241
@@ -246,36 +245,36 @@ env LD_LIBRARY_PATH=/opt/test/lib
246env CFLAGS="-W -Wall -Werror" 245env CFLAGS="-W -Wall -Werror"
247 246
248.TP 247.TP
249nogroups 248\fBnogroups
250Disable supplementary user groups 249Disable supplementary user groups
251.TP 250.TP
252shell none 251\fBshell none
253Run the program directly, without a shell. 252Run the program directly, without a shell.
254 253
255.SH Networking 254.SH Networking
256Networking features available in profile files. 255Networking features available in profile files.
257 256
258.TP 257.TP
259netfilter 258\fBnetfilter
260If a new network namespace is created, enabled default network filter. 259If a new network namespace is created, enabled default network filter.
261 260
262.TP 261.TP
263netfilter filename 262\fBnetfilter filename
264If a new network namespace is created, enabled the network filter in filename. 263If a new network namespace is created, enabled the network filter in filename.
265 264
266.TP 265.TP
267net none 266\fBnet none
268Enable a new, unconnected network namespace. The only interface 267Enable a new, unconnected network namespace. The only interface
269available in the new namespace is a new loopback interface (lo). 268available in the new namespace is a new loopback interface (lo).
270Use this option to deny network access to programs that don't 269Use this option to deny network access to programs that don't
271really need network access. 270really need network access.
272 271
273.TP 272.TP
274dns address 273\fBdns address
275Set a DNS server for the sandbox. Up to three DNS servers can be defined. 274Set a DNS server for the sandbox. Up to three DNS servers can be defined.
276 275
277.TP 276.TP
278hostname name 277\fBhostname name
279Set a hostname for the sandbox. 278Set a hostname for the sandbox.
280 279
281.SH RELOCATING PROFILES 280.SH RELOCATING PROFILES
diff --git a/src/man/firejail.txt b/src/man/firejail.txt
index 57b169e89..cd36bead6 100644
--- a/src/man/firejail.txt
+++ b/src/man/firejail.txt
@@ -973,7 +973,7 @@ $ firejail \-\-profile-path=/home/netblue/myprofiles
973 973
974.TP 974.TP
975\fB\-\-protocol=protocol,protocol,protocol 975\fB\-\-protocol=protocol,protocol,protocol
976Enable protocol filter. The filter is based on seccomp and the first argument to socket system call. 976Enable protocol filter. The filter is based on seccomp and checks the first argument to socket system call.
977Recognized values: unix, inet, inet6, netlink and packet. 977Recognized values: unix, inet, inet6, netlink and packet.
978.br 978.br
979 979
diff --git a/todo b/todo
index e87280f5e..cfc75787f 100644
--- a/todo
+++ b/todo
@@ -114,11 +114,3 @@ rework the calls to invalid_filename(), depending if globing is allowed or not,
114The POSIX standard defines what a “portable filename” is. This turns out to be just A-Z, a-z, 0-9, <period>, <underscore>, and <hyphen> 114The POSIX standard defines what a “portable filename” is. This turns out to be just A-Z, a-z, 0-9, <period>, <underscore>, and <hyphen>
115http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_276 115http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_276
116 116
11722. Fix manpage:
118W: firejail: manpage-has-errors-from-man usr/share/man/man5/firejail-profile.5.gz 84: `\ ' is not allowed in an escape name
119if building a 32bit package, rename the deb file manually
120
12123. transmission-gtk when using tracelog:
122
123Dec 12 07:32:36 debian kernel: [ 1564.772297] transmission-gt[3680]: segfault at 0 ip 00007f44ba515348
124sp 00007ffee7154288 error 4 in libc-2.13.so[7f44ba400000+