Repository navigation
Creating Profiles
Profiles are configurations defined as how Firejail will treat the application being run under it. This defines options such as what directories it has access to, what base system functionality it has access to, and so on.
Firejail's installation path depends on the package or install configuration being usually /usr/local or /.
Upon execution Firejail first looks in ~/.config/firejail/ for a profile and if it doesn't find one, it looks in /etc/firejail.
There are four types of profiles:
- Full profiles (
PROGRAM_NAME.profile)
contain a whole profile
like/etc/thunderbird.profile. - Alias profiles (
PROGRAM_NAME.profile)
refer to another profile
ie in/etc/thunderbird-beta.profileusinginclude thunderbird.profile. - Program specific profiles (
PROGRAM_NAME.local)
add commands to an existing full profile like for allowing local features
ie in a self-created filethunderbird.localwith contentignore nodbus. - The global profile (
globals.local)
adds the commands to all existing full profiles
by creating such profile. Therefore the easiest way to add one or more commands to a profile, is to create a.localfile in~/.config/firejail/and write the new commands to it.
noblacklist/nowhitelist permits/forbids file/location in any later blacklist. blacklist/whitelist permits/forbids everything not explicitly forbidden/permitted.
Be aware of correct use of read-only due to issue #1235.
For further flexibility you can use shell commands like firejail --whitelist=~/Downloads/thunderbird thunderbird.
System-wide profiles for pull requests are supposed to be created in folder etc and are based on a template in /usr/share/doc/firejail/profile.template.
The process is fairly straightforward, given the template:
- Copy
etc/templates/profile.templateto~/PROGRAM.profile - Open
~/PROGRAM.profilein a text editor and follow the introductions in the file. To run usefirejail --profile=PROGRAM.profile PROGRAM. If your program acts like a similar program (e.g. an electron app is similar to Discord and teams-for-linux), you can look at their profiles.
The debugger options--debug,--debug-{blacklists, caps, errnos, private-lib, protocols, syscalls, whitelists},--trace,--buildand--auditmay be of use. - Create a pull request.