1FIREJAIL-PROFILE(5)       firejail profiles man page       FIREJAIL-PROFILE(5)
2
3
4

NAME

6       profile - Security profile file syntax for Firejail
7
8

USAGE

10       firejail --profile=filename.profile
11       firejail --profile=profile_name
12
13

DESCRIPTION

15       Several command line options can be passed to the program using profile
16       files. Firejail chooses the profile file as follows:
17
18       1. If a profile file is provided by the user with --profile option, the
19       profile  file is loaded. If a profile name is given, it is searched for
20       first in the ~/.config/firejail directory and  if  not  found  then  in
21       /etc/firejail directory. Profile names do not include the .profile suf‐
22       fix.  Example:
23
24              $ firejail --profile=/home/netblue/icecat.profile icecat
25              Reading profile /home/netblue/icecat.profile
26              [...]
27
28
29              $ firejail --profile=icecat icecat-wrapper.sh
30              Reading profile /etc/firejail/icecat.profile
31              [...]
32
33       2. If a profile file with the same name as the application  is  present
34       in  ~/.config/firejail  directory  or  in /etc/firejail, the profile is
35       loaded. ~/.config/firejail takes precedence over  /etc/firejail.  Exam‐
36       ple:
37
38              $ firejail icecat
39              Command name #icecat#
40              Found icecat profile in /home/netblue/.config/firejail directory
41              Reading profile /home/netblue/.config/firejail/icecat.profile
42              [...]
43
44       3.  Use  a  default.profile file if the sandbox is started by a regular
45       user, or a server.profile file if the sandbox is started by root. Fire‐
46       jail looks for these files in ~/.config/firejail directory, followed by
47       /etc/firejail directory.  To disable default profile loading, use --no‐
48       profile command option. Example:
49
50              $ firejail
51              Reading profile /etc/firejail/default.profile
52              Parent pid 8553, child pid 8554
53              Child process initialized
54              [...]
55
56              $ firejail --noprofile
57              Parent pid 8553, child pid 8554
58              Child process initialized
59              [...]
60
61

Templates

63       In  /usr/share/doc/firejail  there  are two templates to write new pro‐
64       files.
65              profile.template - for regular profiles
66              redirect_alias-profile.template - for aliasing/redirecting  pro‐
67              files
68
69
70

Scripting

72       Scripting commands:
73
74
75       File and directory names
76              File  and  directory  names containing spaces are supported. The
77              space character ' ' should not be escaped.
78
79              Example: "blacklist ~/My Virtual Machines"
80
81
82       # this is a comment
83
84
85       ?CONDITIONAL: profile line
86              Conditionally add profile line.
87
88              Example: "?HAS_APPIMAGE: whitelist ${HOME}/special/appimage/dir"
89
90              This example will load the whitelist profile line  only  if  the
91              --appimage option has been specified on the command line.
92
93              Currently  the  only conditionals supported this way are HAS_AP‐
94              PIMAGE, HAS_NET, HAS_NODBUS, HAS_NOSOUND and HAS_X11. The condi‐
95              tionals BROWSER_DISABLE_U2F and BROWSER_ALLOW_DRM can be enabled
96              or disabled globally in Firejail's configuration file.
97
98              The profile line may be any profile line that you would normally
99              use in a profile except for "quiet" and "include" lines.
100
101
102       include other.profile
103              Include other.profile file.
104
105              Example: "include /etc/firejail/disable-common.inc"
106
107              The  file  name  can be prefixed with a macro such as ${HOME} or
108              ${CFG}.  ${HOME} is expanded as user home directory, and  ${CFG}
109              is expanded as Firejail system configuration directory - in most
110              cases /etc/firejail or /usr/local/etc/firejail.
111
112              Example:   "include   ${HOME}/myprofiles/profile1"   will   load
113              "~/myprofiles/profile1" file.
114
115              Example:  "include ${CFG}/firefox.profile" will load "/etc/fire‐
116              jail/firefox.profile" file.
117
118              The file name may also be just the name without the leading  di‐
119              rectory  components.  In this case, first the user config direc‐
120              tory (${HOME}/.config/firejail) is searched for  the  file  name
121              and  if  not  found  then  the system configuration directory is
122              search for the file name.  Note:  Unlike  the  --profile  option
123              which  takes  a  profile name without the '.profile' suffix, in‐
124              clude must be given the full file name.
125
126              Example:  "include  firefox.profile"  will  load  "${HOME}/.con‐
127              fig/firejail/firefox.profile"  file  and  if  it  does not exist
128              "${CFG}/firefox.profile" will be loaded.
129
130              System configuration files  in  ${CFG}  are  overwritten  during
131              software installation.  Persistent configuration at system level
132              is handled in ".local" files. For every profile file  in  ${CFG}
133              directory, the user can create a corresponding .local file stor‐
134              ing modifications to the  persistent  configuration.  Persistent
135              .local files are included at the start of regular profile files.
136
137
138       noblacklist file_name
139              If  the file name matches file_name, the file will not be black‐
140              listed in any blacklist commands that follow.
141
142              Example: "noblacklist ${HOME}/.mozilla"
143
144
145       nowhitelist file_name
146              If the file  name  matches  file_name,  the  file  will  not  be
147              whitelisted in any whitelist commands that follow.
148
149              Example: "nowhitelist ~/.config"
150
151
152       ignore Ignore command.
153
154              Example: "ignore seccomp"
155              Example: "ignore net eth0"
156
157       quiet  Disable  Firejail's output. This should be the first uncommented
158              command in the profile file.
159
160              Example: "quiet"
161
162

Filesystem

164       These profile entries define a chroot filesystem built on  top  of  the
165       existing  host filesystem. Each line describes a file/directory that is
166       inaccessible (blacklist), a read-only file or directory (read-only),  a
167       tmpfs  mounted on top of an existing directory (tmpfs), or mount-bind a
168       directory or file on top of another directory or file (bind).  Use pri‐
169       vate  to  set  private  mode.  File globbing is supported, and PATH and
170       HOME directories are searched, see the firejail FILE  GLOBBING  section
171       for more details.  Examples:
172
173       blacklist file_or_directory
174              Blacklist directory or file. Examples:
175
176              blacklist /usr/bin
177              blacklist /usr/bin/gcc*
178              blacklist ${PATH}/ifconfig
179              blacklist ${HOME}/.ssh
180
181
182       blacklist-nolog file_or_directory
183              When  --tracelog flag is set, blacklisting generates syslog mes‐
184              sages if the sandbox tries to  access  the  file  or  directory.
185              blacklist-nolog  command  disables syslog messages for this par‐
186              ticular file or directory. Examples:
187
188              blacklist-nolog /usr/bin
189              blacklist-nolog /usr/bin/gcc*
190
191
192       bind directory1,directory2
193              Mount-bind directory1 on top of directory2. This option is  only
194              available when running as root.
195
196       bind file1,file2
197              Mount-bind  file1 on top of file2. This option is only available
198              when running as root.
199
200       disable-mnt
201              Disable /mnt, /media, /run/mount and /run/media access.
202
203       keep-dev-shm
204              /dev/shm directory is untouched (even with private-dev).
205
206       keep-var-tmp
207              /var/tmp directory is untouched.
208
209       mkdir directory
210              Create  a  directory  in  user  home,  under  /tmp,   or   under
211              /run/user/<UID> before the sandbox is started.  The directory is
212              created if it doesn't already exist.
213
214              Use this command for whitelisted directories you  need  to  pre‐
215              serve  when  the  sandbox is closed. Without it, the application
216              will create the directory, and the  directory  will  be  deleted
217              when  the sandbox is closed. Subdirectories are recursively cre‐
218              ated. Example from firefox profile:
219
220              mkdir ~/.mozilla
221              whitelist ~/.mozilla
222              mkdir ~/.cache/mozilla/firefox
223              whitelist ~/.cache/mozilla/firefox
224
225              For files in /run/user/<PID> use ${RUNUSER} macro:
226
227              mkdir ${RUNUSER}/firejail-testing
228
229       mkfile file
230              Similar to mkdir, this command creates an  empty  file  in  user
231              home,  or  /tmp,  or under /run/user/<UID> before the sandbox is
232              started. The file is created if it doesn't already exist.
233
234       noexec file_or_directory
235              Remount the file or the directory noexec, nodev and nosuid.
236
237       private
238              Mount new /root and /home/user directories in temporary filesys‐
239              tems.  All  modifications  are  discarded  when  the  sandbox is
240              closed.
241
242       private directory
243              Use directory as user home.
244
245       private-bin file,file
246              Build a new /bin in a temporary filesystem, and  copy  the  pro‐
247              grams  in  the list.  The files in the list must be expressed as
248              relative to the /bin, /sbin, /usr/bin,  /usr/sbin,  or  /usr/lo‐
249              cal/bin  directories.   The  same directory is also bind-mounted
250              over /sbin, /usr/bin and /usr/sbin.
251
252       private-cache
253              Mount an empty temporary filesystem on top of the .cache  direc‐
254              tory  in  user  home.  All  modifications are discarded when the
255              sandbox is closed.
256
257       private-cwd
258              Set working directory inside jail to  the  home  directory,  and
259              failing that, the root directory.
260
261       private-cwd directory
262              Set working directory inside the jail.
263
264       private-dev
265              Create  a new /dev directory. Only disc, dri, dvb, hidraw, null,
266              full, zero, tty, pts, ptmx, random, snd,  urandom,  video,  log,
267              shm and usb devices are available.  Use the options no3d, nodvd,
268              nosound, notv, nou2f and novideo for additional restrictions.
269
270
271       private-etc file,directory
272              Build a new /etc in a temporary filesystem, and copy  the  files
273              and  directories  in the list.  The files and directories in the
274              list must be expressed as relative to the /etc  directory.   All
275              modifications are discarded when the sandbox is closed.
276
277       private-home file,directory
278              Build  a  new  user home in a temporary filesystem, and copy the
279              files and directories in the list in the new  home.   The  files
280              and directories in the list must be expressed as relative to the
281              current user's home directory.  All modifications are  discarded
282              when the sandbox is closed.
283
284       private-lib file,directory
285              Build  a  new /lib directory and bring in the libraries required
286              by the application to run.  The files  and  directories  in  the
287              list  must be expressed as relative to the /lib directory.  This
288              feature is still under development, see man 1 firejail for  some
289              examples.
290
291       private-opt file,directory
292              Build  a  new /opt in a temporary filesystem, and copy the files
293              and directories in the list.  The files and directories  in  the
294              list  must  be expressed as relative to the /opt directory.  All
295              modifications are discarded when the sandbox is closed.
296
297       private-srv file,directory
298              Build a new /srv in a temporary filesystem, and copy  the  files
299              and  directories  in the list.  The files and directories in the
300              list must be expressed as relative to the /srv  directory.   All
301              modifications are discarded when the sandbox is closed.
302
303       private-tmp
304              Mount  an  empty  temporary  filesystem on top of /tmp directory
305              whitelisting /tmp/.X11-unix.
306
307       read-only file_or_directory
308              Make directory or file read-only.
309
310       read-write file_or_directory
311              Make directory or file read-write.
312
313       tmpfs directory
314              Mount an empty tmpfs filesystem on top of directory. This option
315              is available only when running the sandbox as root.
316
317       tracelog
318              Blacklist violations logged to syslog.
319
320       whitelist file_or_directory
321              Whitelist  directory or file. A temporary file system is mounted
322              on the top directory, and the whitelisted files are mount-binded
323              inside.  Modifications  to whitelisted files are persistent, ev‐
324              erything else is discarded when the sandbox is closed.  The  top
325              directory  could  be  user home, /dev, /etc, /media, /mnt, /opt,
326              /srv, /sys/module, /usr/share, /var, and /tmp.
327
328              Symbolic link handling: with the exception of  user  home,  both
329              the  link and the real file should be in the same top directory.
330              For user home, both the link and the real file should  be  owned
331              by the user.
332
333       writable-etc
334              Mount /etc directory read-write.
335
336       writable-run-user
337              Disable  the  default  blacklisting of run/user/$UID/systemd and
338              /run/user/$UID/gnupg.
339
340       writable-var
341              Mount /var directory read-write.
342
343       writable-var-log
344              Use the real /var/log directory, not  a  clone.  By  default,  a
345              tmpfs  is  mounted  on top of /var/log directory, and a skeleton
346              filesystem is created based on the original /var/log.
347
348

Security filters

350       The following security filters are currently implemented:
351
352
353       allow-debuggers
354              Allow tools such  as  strace  and  gdb  inside  the  sandbox  by
355              whitelisting system calls ptrace and process_vm_readv.
356
357       caps   Enable default Linux capabilities filter.
358
359       caps.drop capability,capability,capability
360              Blacklist given Linux capabilities.
361
362       caps.drop all
363              Blacklist all Linux capabilities.
364
365       caps.keep capability,capability,capability
366              Whitelist given Linux capabilities.
367
368       memory-deny-write-execute
369              Install a seccomp filter to block attempts to create memory map‐
370              pings that are both writable and executable, to change  mappings
371              to be executable or to create executable shared memory.
372
373       nonewprivs
374              Sets  the NO_NEW_PRIVS prctl.  This ensures that child processes
375              cannot acquire new privileges using execve(2);   in  particular,
376              this means that calling a suid binary (or one with file capabil‐
377              ities) does not result in an increase of privilege.
378
379       noroot Use this command  to enable an user namespace. The namespace has
380              only  one user, the current user.  There is no root account (uid
381              0) defined in the namespace.
382
383       protocol protocol1,protocol2,protocol3
384              Enable protocol filter. The  filter  is  based  on  seccomp  and
385              checks the first argument to socket system call. Recognized val‐
386              ues: unix, inet, inet6, netlink, packet and bluetooth.
387
388       seccomp
389              Enable seccomp filter and blacklist the syscalls in the  default
390              list. See man 1 firejail for more details.
391
392       seccomp.32
393              Enable  seccomp filter and blacklist the syscalls in the default
394              list for 32 bit system calls on a 64 bit architecture system.
395
396       seccomp syscall,syscall,syscall
397              Enable seccomp filter and blacklist the system calls in the list
398              on top of default seccomp filter.
399
400       seccomp.32 syscall,syscall,syscall
401              Enable seccomp filter and blacklist the system calls in the list
402              on top of default seccomp filter for 32 bit system calls on a 64
403              bit architecture system.
404
405       seccomp.block-secondary
406              Enable  seccomp  filter  and filter system call architectures so
407              that only the native architecture is allowed.
408
409       seccomp.drop syscall,syscall,syscall
410              Enable seccomp filter and blacklist  the  system  calls  in  the
411              list.
412
413       seccomp.32.drop syscall,syscall,syscall
414              Enable seccomp filter and blacklist the system calls in the list
415              for 32 bit system calls on a 64 bit architecture system.
416
417       seccomp.keep syscall,syscall,syscall
418              Enable seccomp filter and whitelist  the  system  calls  in  the
419              list.
420
421       seccomp.32.keep syscall,syscall,syscall
422              Enable seccomp filter and whitelist the system calls in the list
423              for 32 bit system calls on a 64 bit architecture system.
424
425       seccomp-error-action kill | log | ERRNO
426              Return a different error instead of EPERM to the  process,  kill
427              it when an attempt is made to call a blocked system call, or al‐
428              low but log the attempt.
429
430       x11    Enable X11 sandboxing.
431
432       x11 none
433              Blacklist /tmp/.X11-unix directory, ${HOME}/.Xauthority and file
434              specified in ${XAUTHORITY} environment variable.  Remove DISPLAY
435              and XAUTHORITY environment variables.  Stop with  error  message
436              if X11 abstract socket will be accessible in jail.
437
438       x11 xephyr
439              Enable X11 sandboxing with Xephyr server.
440
441       x11 xorg
442              Enable X11 sandboxing with X11 security extension.
443
444       x11 xpra
445              Enable X11 sandboxing with Xpra server.
446
447       x11 xvfb
448              Enable X11 sandboxing with Xvfb server.
449
450       xephyr-screen WIDTHxHEIGHT
451              Set  screen size for x11 xephyr. This command should be included
452              in the profile file before x11 xephyr command.
453
454              Example:
455
456              xephyr-screen 640x480
457              x11 xephyr
458

DBus filtering

460       Access to the session and system DBus UNIX sockets can be allowed, fil‐
461       tered  or disabled. To disable the abstract sockets (and force applica‐
462       tions to use the filtered UNIX socket) you would need to request a  new
463       network namespace using --net command. Another option is to remove unix
464       from the --protocol set.
465
466       Filtering requires installing the xdg-dbus-proxy utility. Filter  rules
467       can  be  specified  for well-known DBus names, but they are also propa‐
468       gated to the owning unique name, too. The permissions are "sticky"  and
469       are  kept  even  if the corresponding well-known name is released (how‐
470       ever, applications rarely release well-known names in practice).  Names
471       may  have  a  .*  suffix  to match all names underneath them, including
472       themselves  (e.g.  "foo.bar.*"  matches  "foo.bar",  "foo.bar.baz"  and
473       "foo.bar.baz.quux",  but  not "foobar"). For more information, see xdg-
474       dbus-proxy(1).
475
476       Examples:
477
478
479       dbus-system filter
480              Enable filtered access to the system DBus. Filters can be speci‐
481              fied with the dbus-system.talk and dbus-system.own commands.
482
483       dbus-system none
484              Disable  access  to the system DBus. Once access is disabled, it
485              cannot be relaxed to filtering.
486
487       dbus-system.own org.gnome.ghex.*
488              Allow the application to own the  name  org.gnome.ghex  and  all
489              names underneath in on the system DBus.
490
491       dbus-system.talk org.freedesktop.Notifications
492              Allow  the application to talk to the name org.freedesktop.Noti‐
493              fications on the system DBus.
494
495       dbus-system.see org.freedesktop.Notifications
496              Allow  the  application  to  see  but  not  talk  to  the   name
497              org.freedesktop.Notifications on the system DBus.
498
499       dbus-system.call  org.freedesktop.Notifications=org.freedesktop.Notifi‐
500       cations.*@/org/freedesktop/Notifications
501              Allow  the  application  to  call  methods  of   the   interface
502              org.freedesktop.Notifications  of the object exposed at the path
503              /org/freedesktop/Notifications by the client owning the bus name
504              org.freedesktop.Notifications on the system DBus.
505
506       dbus-system.broadcast org.freedesktop.Notifications=org.freedesktop.No‐
507       tifications.*@/org/freedesktop/Notifications
508              Allow the application to receive broadcast signals from the  the
509              interface org.freedesktop.Notifications of the object exposed at
510              the path /org/freedesktop/Notifications by the client owning the
511              bus name org.freedesktop.Notifications on the system DBus.
512
513       dbus-user filter
514              Enable filtered access to the session DBus. Filters can be spec‐
515              ified with the dbus-user.talk and dbus-user.own commands.
516
517       dbus-user none
518              Disable access to the session DBus. Once access is disabled,  it
519              cannot be relaxed to filtering.
520
521       dbus-user.own org.gnome.ghex.*
522              Allow  the  application  to  own the name org.gnome.ghex and all
523              names underneath in on the session DBus.
524
525       dbus-user.talk org.freedesktop.Notifications
526              Allow the application to talk to the name  org.freedesktop.Noti‐
527              fications on the session DBus.
528
529       dbus-user.see org.freedesktop.Notifications
530              Allow   the  application  to  see  but  not  talk  to  the  name
531              org.freedesktop.Notifications on the session DBus.
532
533       dbus-user.call  org.freedesktop.Notifications=org.freedesktop.Notifica‐
534       tions.*@/org/freedesktop/Notifications
535              Allow   the   application  to  call  methods  of  the  interface
536              org.freedesktop.Notifications of the object exposed at the  path
537              /org/freedesktop/Notifications by the client owning the bus name
538              org.freedesktop.Notifications on the session DBus.
539
540       dbus-user.broadcast org.freedesktop.Notifications=org.freedesktop.Noti‐
541       fications.*@/org/freedesktop/Notifications
542              Allow  the application to receive broadcast signals from the the
543              interface org.freedesktop.Notifications of the object exposed at
544              the path /org/freedesktop/Notifications by the client owning the
545              bus name org.freedesktop.Notifications on the session DBus.
546
547       nodbus (deprecated)
548              Disable D-Bus access (both system and session buses). Equivalent
549              to dbus-system none and dbus-user none.
550
551
552       Individual  filters can be overridden via the --ignore command. Suppos‐
553       ing a profile has
554              [...]
555              dbus-user filter
556              dbus-user.own org.mozilla.firefox.*
557              dbus-user.talk org.freedesktop.Notifications
558              dbus-system none
559              [...]
560
561              and the  user  wants  to  disable  notifications,  this  can  be
562              achieved by putting the below in a local override file:
563              [...]
564              ignore dbus-user.talk org.freedesktop.Notifications
565              [...]
566

Resource limits, CPU affinity, Control Groups

568       These  profile  entries define the limits on system resources (rlimits)
569       for the processes inside the sandbox.  The limits can be  modified  in‐
570       side  the sandbox using the regular ulimit command. cpu command config‐
571       ures the CPU cores available, and cgroup command place the  sandbox  in
572       an existing control group.
573
574       Examples:
575
576
577       cgroup /sys/fs/cgroup/g1/tasks
578              The sandbox is placed in g1 control group.
579
580       cpu 0,1,2
581              Use only CPU cores 0, 1 and 2.
582
583       nice -5
584              Set a nice value of -5 to all processes running inside the sand‐
585              box.
586
587       rlimit-as 123456789012
588              Set  the  maximum  size  of  the  process's  virtual  memory  to
589              123456789012 bytes.
590
591       rlimit-cpu 123
592              Set the maximum CPU time in seconds.
593
594       rlimit-fsize 1024
595              Set  the  maximum  file size that can be created by a process to
596              1024 bytes.
597
598       rlimit-nproc 1000
599              Set the maximum number of processes that can be created for  the
600              real user ID of the calling process to 1000.
601
602       rlimit-nofile 500
603              Set  the maximum number of files that can be opened by a process
604              to 500.
605
606       rlimit-sigpending 200
607              Set the maximum number of processes that can be created for  the
608              real user ID of the calling process to 200.
609
610       timeout hh:mm:ss
611              Kill  the  sandbox automatically after the time has elapsed. The
612              time is specified in hours/minutes/seconds format.
613
614

User Environment

616       allusers
617              All user home directories are visible inside the sandbox. By de‐
618              fault, only current user home directory is visible.
619
620
621       env name=value
622              Set environment variable. Examples:
623
624              env LD_LIBRARY_PATH=/opt/test/lib
625              env CFLAGS="-W -Wall -Werror"
626
627
628       ipc-namespace
629              Enable IPC namespace.
630
631       name sandboxname
632              Set sandbox name. Example:
633
634              name browser
635
636
637       no3d   Disable 3D hardware acceleration.
638
639       noautopulse
640              Disable  automatic ~/.config/pulse init, for complex setups such
641              as remote pulse servers or non-standard socket paths.
642
643       nodvd  Disable DVD and audio CD devices.
644
645       nogroups
646              Disable supplementary user groups
647
648       nosound
649              Disable sound system.
650
651       notv   Disable DVB (Digital Video Broadcasting) TV devices.
652
653       nou2f  Disable U2F devices.
654
655       novideo
656              Disable video devices.
657
658       shell none
659              Run the program directly, without a shell.
660
661
662

Networking

664       Networking features available in profile files.
665
666
667       defaultgw address
668              Use this address as default gateway in  the  new  network  name‐
669              space.
670
671
672       dns address
673              Set a DNS server for the sandbox. Up to three DNS servers can be
674              defined.
675
676
677       hostname name
678              Set a hostname for the sandbox.
679
680
681       hosts-file file
682              Use file as /etc/hosts.
683
684
685       ip address
686              Assign IP addresses to the last network interface defined  by  a
687              net command. A default gateway is assigned by default.
688
689              Example:
690              net eth0
691              ip 10.10.20.56
692
693
694       ip none
695              No IP address and no default gateway are configured for the last
696              interface defined by a net command. Use this option in case  you
697              intend to start an external DHCP client in the sandbox.
698
699              Example:
700              net eth0
701              ip none
702
703
704       ip dhcp
705              Acquire an IP address and default gateway for the last interface
706              defined by a net command, as well as set the DNS servers accord‐
707              ing  to  the  DHCP  response.   This  command  requires  the ISC
708              dhclient DHCP client to be installed and will start it automati‐
709              cally inside the sandbox.
710
711              Example:
712              net br0
713              ip dhcp
714
715              This command should not be used in conjunction with the dns com‐
716              mand if the DHCP server is set to configure DNS servers for  the
717              clients,  because  the  manually  specified  DNS servers will be
718              overwritten.
719
720              The DHCP client will NOT release the DHCP lease when the sandbox
721              terminates.   If  your DHCP server requires leases to be explic‐
722              itly released, consider running a DHCP client and releasing  the
723              lease manually in conjunction with the net none command.
724
725
726       ip6 address
727              Assign IPv6 addresses to the last network interface defined by a
728              net command.
729
730              Example:
731              net eth0
732              ip6 2001:0db8:0:f101::1/64
733
734
735       ip6 dhcp
736              Acquire an IPv6 address and default gateway for the last  inter‐
737              face  defined  by  a net command, as well as set the DNS servers
738              according to the DHCP response.  This command requires  the  ISC
739              dhclient DHCP client to be installed and will start it automati‐
740              cally inside the sandbox.
741
742              Example:
743              net br0
744              ip6 dhcp
745
746              This command should not be used in conjunction with the dns com‐
747              mand  if the DHCP server is set to configure DNS servers for the
748              clients, because the manually  specified  DNS  servers  will  be
749              overwritten.
750
751              The DHCP client will NOT release the DHCP lease when the sandbox
752              terminates.  If your DHCP server requires leases to  be  explic‐
753              itly  released, consider running a DHCP client and releasing the
754              lease manually.
755
756
757       iprange address,address
758              Assign  an  IP address in the provided range to the last network
759              interface  defined  by  a  net command.  A  default  gateway  is
760              assigned by default.
761
762              Example:
763
764              net eth0
765              iprange 192.168.1.150,192.168.1.160
766
767
768       mac address
769              Assign MAC addresses to the last network interface defined by  a
770              net command.
771
772
773       machine-id
774              Spoof  id  number  in  /etc/machine-id file - a new random id is
775              generated inside the sandbox.
776
777
778       mtu number
779              Assign a MTU value to the last network interface  defined  by  a
780              net command.
781
782
783       net bridge_interface
784              Enable a new network namespace and connect it to this bridge in‐
785              terface.  Unless specified with option --ip and --defaultgw,  an
786              IP  address and a default gateway will be assigned automatically
787              to the sandbox. The IP address is verified using ARP before  as‐
788              signment.  The  address  configured  as  default  gateway is the
789              bridge device IP address. Up to four --net bridge devices can be
790              defined. Mixing bridge and macvlan devices is allowed.
791
792
793       net ethernet_interface|wireless_interface
794              Enable  a  new network namespace and connect it to this ethernet
795              interface using the standard Linux macvlan or ipvlan driver. Un‐
796              less  specified  with option --ip and --defaultgw, an IP address
797              and a default gateway will  be  assigned  automatically  to  the
798              sandbox. The IP address is verified using ARP before assignment.
799              The address configured as default gateway is the default gateway
800              of  the  host.  Up  to four --net devices can be defined. Mixing
801              bridge and macvlan devices is allowed.
802
803
804       net none
805              Enable a new, unconnected network namespace. The only  interface
806              available in the new namespace is a new loopback interface (lo).
807              Use this option to deny network access to  programs  that  don't
808              really need network access.
809
810
811       net tap_interface
812              Enable  a  new network namespace and connect it to this ethernet
813              tap interface using the standard Linux macvlan driver.   If  the
814              tap  interface  is  not  configured, the sandbox will not try to
815              configure the interface inside the sandbox.  Please use ip, net‐
816              mask and defaultgw to specify the configuration.
817
818
819       netfilter
820              If  a  new network namespace is created, enabled default network
821              filter.
822
823
824       netfilter filename
825              If a new network namespace is created, enabled the network  fil‐
826              ter in filename.
827
828
829
830       netmask address
831              Use  this  option when you want to assign an IP address in a new
832              namespace and the parent interface specified  by  --net  is  not
833              configured.  An  IP  address  and a default gateway address also
834              have to be added.
835
836
837       netns namespace
838              Run the program in a named, persistent network namespace.  These
839              can be created and configured using "ip netns".
840
841
842       veth-name name
843              Use  this  name  for  the  interface connected to the bridge for
844              --net=bridge_interface commands, instead of the default one.
845

Other

847       deterministic-exit-code
848              Always exit firejail with the first child's exit status. The de‐
849              fault  behavior  is to use the exit status of the final child to
850              exit, which can be nondeterministic.
851
852
853       join-or-start sandboxname
854              Join the sandbox identified by name or start a new one.  Same as
855              "firejail  --join=sandboxname" command if sandbox with specified
856              name exists, otherwise same as "name sandboxname".
857
858

FILES

860       /etc/firejail/filename.profile, $HOME/.config/firejail/filename.profile
861
862

LICENSE

864       Firejail is free software; you can redistribute it and/or modify it un‐
865       der  the  terms  of  the GNU General Public License as published by the
866       Free Software Foundation; either version 2 of the License, or (at  your
867       option) any later version.
868
869       Homepage: https://firejail.wordpress.com
870

SEE ALSO

872       firejail(1),   firemon(1),   firecfg(1),  firejail-login(5),  firejail-
873       users(5),         ⟨https://github.com/netblue30/firejail/wiki/Creating-
874       Profiles⟩
875
876
877
8780.9.64.4                           Feb 2021                FIREJAIL-PROFILE(5)
Impressum