From ArchWiki
Revision as of 04:59, 30 January 2016 by Ilikenwf (talk | contribs) (note about paths with spaces, and whitelisting them)
Jump to navigation Jump to search

Firejail is an easy to use SUID sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces, seccomp-bpf and Linux capabilities. Used alone or combined with Grsecurity or other kernel hardening systems can further increase the security provided. Firejail is ideal for use with browsers, desktop applications, and daemons/servers alike.


Install the firejailAUR or firejail-gitAUR package which provide all of the requirements out of the box.


Firejail uses profiles for the applications executed inside of it - you can find the default profiles in /etc/firejail/application.profile. Should you require custom profiles for applications not included, or wish to modify the defaults, you may place new rules or copies of the defaults in ~/.config/firejail.

If you need to reference, whitelist, or blacklist a directory within a custom profile, such as with palemoonAUR, you must do so using the absolute path, without encapsulation or escapes:

   /home/user/.moonchild productions


To execute an application using firejail with seccomp protection, such as firefox, execute the following:

$ firejail --seccomp firefox

Private Mode

Firejail also includes a one time private mode, in which no mounts are made in the chroots to your home directory. In doing this, you can execute applications without performing any changes to disk. For example, to execute firefox in private mode, do the following:

$ firejail --seccomp --private firefox

Using Firejail by Default

For most applications launched from the console, or from .desktop files, you can place your own launcher proxies for each in /usr/local/bin. For example, create the following file for firefox make it executable:

firejail --seccomp /usr/bin/firefox $@

Desktop Files

Some applications use non standard paths. For these you will want to copy the .desktop launchers from /usr/share/applications/*.desktop to ~/.local/share/applications/ and then proceed to include firejail (and possibly seccomp) on the EXEC line.


For daemons, you will have to edit the initscripts directly to call them with firejail.


Some applications do not work properly with Firejail, and others simply require special configuration. In the instance any directories are disallowed or blacklisted for any given application, you may have to further edit the profile to enable nonstandard directories that said application needs to access. One example is wine; wine will not work with seccomp in most cases.

Other configurations exist; it is suggested you check out the man page for firejail to see them all, as firejail is in rapid development.


A GUI application for use with Firejail is also available, firetoolsAUR.