aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.git-blame-ignore-revs2
-rw-r--r--.github/workflows/build.yml4
-rw-r--r--Makefile.in2
-rw-r--r--README57
-rw-r--r--README.md162
-rw-r--r--RELNOTES23
-rwxr-xr-xconfigure135
-rw-r--r--configure.ac119
-rwxr-xr-xcontrib/jail_prober.py28
-rw-r--r--contrib/vim/ftdetect/firejail.vim12
-rw-r--r--contrib/vim/syntax/firejail.vim27
-rw-r--r--etc/firejail.config35
-rw-r--r--etc/inc/allow-bin-sh.inc6
-rw-r--r--etc/inc/allow-common-devel.inc42
-rw-r--r--etc/inc/allow-gjs.inc16
-rw-r--r--etc/inc/allow-java.inc10
-rw-r--r--etc/inc/allow-lua.inc16
-rw-r--r--etc/inc/allow-nodejs.inc4
-rw-r--r--etc/inc/allow-opengl-game.inc8
-rw-r--r--etc/inc/allow-perl.inc16
-rw-r--r--etc/inc/allow-php.inc6
-rw-r--r--etc/inc/allow-python2.inc10
-rw-r--r--etc/inc/allow-python3.inc12
-rw-r--r--etc/inc/allow-ruby.inc4
-rw-r--r--etc/inc/allow-ssh.inc8
-rw-r--r--etc/inc/disable-common.inc699
-rw-r--r--etc/inc/disable-devel.inc80
-rw-r--r--etc/inc/disable-interpreters.inc84
-rw-r--r--etc/inc/disable-passwdmgr.inc30
-rw-r--r--etc/inc/disable-programs.inc2170
-rw-r--r--etc/inc/disable-shell.inc22
-rw-r--r--etc/inc/disable-xdg.inc8
-rw-r--r--etc/inc/whitelist-1793-workaround.inc46
-rw-r--r--etc/inc/whitelist-common.inc129
-rw-r--r--etc/inc/whitelist-player-common.inc10
-rw-r--r--etc/inc/whitelist-runuser-common.inc20
-rw-r--r--etc/inc/whitelist-usr-share-common.inc126
-rw-r--r--etc/inc/whitelist-var-common.inc18
-rw-r--r--etc/profile-a-l/0ad.profile18
-rw-r--r--etc/profile-a-l/2048-qt.profile8
-rw-r--r--etc/profile-a-l/Cryptocat.profile2
-rw-r--r--etc/profile-a-l/Discord.profile4
-rw-r--r--etc/profile-a-l/DiscordCanary.profile4
-rw-r--r--etc/profile-a-l/Fritzing.profile4
-rw-r--r--etc/profile-a-l/JDownloader.profile6
-rw-r--r--etc/profile-a-l/abiword.profile4
-rw-r--r--etc/profile-a-l/abrowser.profile8
-rw-r--r--etc/profile-a-l/agetpkg.profile6
-rw-r--r--etc/profile-a-l/akonadi_control.profile32
-rw-r--r--etc/profile-a-l/akregator.profile14
-rw-r--r--etc/profile-a-l/alacarte.profile14
-rw-r--r--etc/profile-a-l/alienarena.profile6
-rw-r--r--etc/profile-a-l/alpine.profile104
-rw-r--r--etc/profile-a-l/alpinef.profile14
-rw-r--r--etc/profile-a-l/amarok.profile2
-rw-r--r--etc/profile-a-l/amule.profile6
-rw-r--r--etc/profile-a-l/android-studio.profile14
-rw-r--r--etc/profile-a-l/anki.profile9
-rw-r--r--etc/profile-a-l/anydesk.profile4
-rw-r--r--etc/profile-a-l/aosp.profile14
-rw-r--r--etc/profile-a-l/apostrophe.profile17
-rw-r--r--etc/profile-a-l/arch-audit.profile4
-rw-r--r--etc/profile-a-l/archaudit-report.profile2
-rw-r--r--etc/profile-a-l/archiver-common.profile2
-rw-r--r--etc/profile-a-l/ardour5.profile12
-rw-r--r--etc/profile-a-l/arduino.profile6
-rw-r--r--etc/profile-a-l/aria2c.profile10
-rw-r--r--etc/profile-a-l/ark.profile6
-rw-r--r--etc/profile-a-l/arm.profile4
-rw-r--r--etc/profile-a-l/artha.profile14
-rw-r--r--etc/profile-a-l/assogiate.profile4
-rw-r--r--etc/profile-a-l/asunder.profile10
-rw-r--r--etc/profile-a-l/atom.profile4
-rw-r--r--etc/profile-a-l/atril.profile6
-rw-r--r--etc/profile-a-l/audacious.profile6
-rw-r--r--etc/profile-a-l/audacity.profile6
-rw-r--r--etc/profile-a-l/audio-recorder.profile10
-rw-r--r--etc/profile-a-l/authenticator-rs.profile8
-rw-r--r--etc/profile-a-l/authenticator.profile4
-rw-r--r--etc/profile-a-l/autokey-common.profile4
-rw-r--r--etc/profile-a-l/avidemux.profile12
-rw-r--r--etc/profile-a-l/aweather.profile4
-rw-r--r--etc/profile-a-l/awesome.profile2
-rw-r--r--etc/profile-a-l/ballbuster.profile6
-rw-r--r--etc/profile-a-l/baloo_file.profile12
-rw-r--r--etc/profile-a-l/balsa.profile36
-rw-r--r--etc/profile-a-l/barrier.profile6
-rw-r--r--etc/profile-a-l/basilisk.profile8
-rw-r--r--etc/profile-a-l/bcompare.profile4
-rw-r--r--etc/profile-a-l/beaker.profile4
-rw-r--r--etc/profile-a-l/bibletime.profile20
-rw-r--r--etc/profile-a-l/bijiben.profile13
-rw-r--r--etc/profile-a-l/bitcoin-qt.profile8
-rw-r--r--etc/profile-a-l/bitlbee.profile4
-rw-r--r--etc/profile-a-l/bitwarden.profile45
-rw-r--r--etc/profile-a-l/blackbox.profile2
-rw-r--r--etc/profile-a-l/blender.profile6
-rw-r--r--etc/profile-a-l/bless.profile2
-rw-r--r--etc/profile-a-l/blobby.profile52
-rw-r--r--etc/profile-a-l/blobwars.profile6
-rw-r--r--etc/profile-a-l/bnox.profile8
-rw-r--r--etc/profile-a-l/brackets.profile2
-rw-r--r--etc/profile-a-l/brasero.profile2
-rw-r--r--etc/profile-a-l/brave.profile22
-rw-r--r--etc/profile-a-l/bzflag.profile4
-rw-r--r--etc/profile-a-l/calibre.profile6
-rw-r--r--etc/profile-a-l/calligra.profile2
-rw-r--r--etc/profile-a-l/calligragemini.profile2
-rw-r--r--etc/profile-a-l/calligraplan.profile2
-rw-r--r--etc/profile-a-l/calligraplanwork.profile2
-rw-r--r--etc/profile-a-l/calligrasheets.profile2
-rw-r--r--etc/profile-a-l/calligrastage.profile2
-rw-r--r--etc/profile-a-l/calligrawords.profile2
-rw-r--r--etc/profile-a-l/cameramonitor.profile2
-rw-r--r--etc/profile-a-l/cantata.profile8
-rw-r--r--etc/profile-a-l/cargo.profile9
-rw-r--r--etc/profile-a-l/catfish.profile4
-rw-r--r--etc/profile-a-l/cawbird.profile2
-rw-r--r--etc/profile-a-l/celluloid.profile14
-rw-r--r--etc/profile-a-l/checkbashisms.profile4
-rw-r--r--etc/profile-a-l/cheese.profile10
-rw-r--r--etc/profile-a-l/cherrytree.profile4
-rw-r--r--etc/profile-a-l/chromium-browser-privacy.profile10
-rw-r--r--etc/profile-a-l/chromium-common.profile13
-rw-r--r--etc/profile-a-l/chromium.profile16
-rw-r--r--etc/profile-a-l/cin.profile2
-rw-r--r--etc/profile-a-l/clamav.profile2
-rw-r--r--etc/profile-a-l/claws-mail.profile6
-rw-r--r--etc/profile-a-l/clawsker.profile4
-rw-r--r--etc/profile-a-l/clementine.profile6
-rw-r--r--etc/profile-a-l/clion-eap.profile10
-rw-r--r--etc/profile-a-l/clion.profile17
-rw-r--r--etc/profile-a-l/clipgrab.profile6
-rw-r--r--etc/profile-a-l/clipit.profile8
-rw-r--r--etc/profile-a-l/cliqz.profile12
-rw-r--r--etc/profile-a-l/cmus.profile4
-rw-r--r--etc/profile-a-l/code.profile8
-rw-r--r--etc/profile-a-l/colorful.profile6
-rw-r--r--etc/profile-a-l/com.github.bleakgrey.tootle.profile6
-rw-r--r--etc/profile-a-l/com.github.dahenson.agenda.profile12
-rw-r--r--etc/profile-a-l/com.github.johnfactotum.Foliate.profile18
-rw-r--r--etc/profile-a-l/com.github.phase1geo.minder.profile14
-rw-r--r--etc/profile-a-l/conkeror.profile22
-rw-r--r--etc/profile-a-l/conky.profile2
-rw-r--r--etc/profile-a-l/corebird.profile2
-rw-r--r--etc/profile-a-l/cower.profile4
-rw-r--r--etc/profile-a-l/coyim.profile4
-rw-r--r--etc/profile-a-l/cpio.profile4
-rw-r--r--etc/profile-a-l/crawl.profile4
-rw-r--r--etc/profile-a-l/crow.profile4
-rw-r--r--etc/profile-a-l/curl.profile8
-rw-r--r--etc/profile-a-l/cyberfox.profile8
-rw-r--r--etc/profile-a-l/d-feet.profile6
-rw-r--r--etc/profile-a-l/darktable.profile6
-rw-r--r--etc/profile-a-l/dbus-send.profile4
-rw-r--r--etc/profile-a-l/dconf-editor.profile2
-rw-r--r--etc/profile-a-l/dconf.profile4
-rw-r--r--etc/profile-a-l/ddgr.profile13
-rw-r--r--etc/profile-a-l/ddgtk.profile4
-rw-r--r--etc/profile-a-l/deadbeef.profile4
-rw-r--r--etc/profile-a-l/deluge.profile6
-rw-r--r--etc/profile-a-l/desktopeditors.profile6
-rw-r--r--etc/profile-a-l/devhelp.profile6
-rw-r--r--etc/profile-a-l/devilspie.profile6
-rw-r--r--etc/profile-a-l/devilspie2.profile8
-rw-r--r--etc/profile-a-l/dia.profile6
-rw-r--r--etc/profile-a-l/dig.profile10
-rw-r--r--etc/profile-a-l/digikam.profile12
-rw-r--r--etc/profile-a-l/dillo.profile8
-rw-r--r--etc/profile-a-l/dino.profile6
-rw-r--r--etc/profile-a-l/discord-canary.profile4
-rw-r--r--etc/profile-a-l/discord-common.profile4
-rw-r--r--etc/profile-a-l/discord.profile4
-rw-r--r--etc/profile-a-l/display.profile2
-rw-r--r--etc/profile-a-l/dnox.profile8
-rw-r--r--etc/profile-a-l/dnscrypt-proxy.profile10
-rw-r--r--etc/profile-a-l/dnsmasq.profile8
-rw-r--r--etc/profile-a-l/dolphin-emu.profile14
-rw-r--r--etc/profile-a-l/dooble.profile6
-rw-r--r--etc/profile-a-l/dosbox.profile4
-rw-r--r--etc/profile-a-l/dragon.profile8
-rw-r--r--etc/profile-a-l/drawio.profile6
-rw-r--r--etc/profile-a-l/drill.profile6
-rw-r--r--etc/profile-a-l/dropbox.profile14
-rw-r--r--etc/profile-a-l/easystroke.profile4
-rw-r--r--etc/profile-a-l/electron-mail.profile6
-rw-r--r--etc/profile-a-l/electron.profile2
-rw-r--r--etc/profile-a-l/electrum.profile4
-rw-r--r--etc/profile-a-l/element-desktop.profile6
-rw-r--r--etc/profile-a-l/elinks.profile40
-rw-r--r--etc/profile-a-l/emacs.profile4
-rw-r--r--etc/profile-a-l/email-common.profile30
-rw-r--r--etc/profile-a-l/enchant.profile6
-rw-r--r--etc/profile-a-l/enox.profile8
-rw-r--r--etc/profile-a-l/enpass.profile20
-rw-r--r--etc/profile-a-l/eo-common.profile8
-rw-r--r--etc/profile-a-l/eog.profile4
-rw-r--r--etc/profile-a-l/eom.profile4
-rw-r--r--etc/profile-a-l/ephemeral.profile10
-rw-r--r--etc/profile-a-l/epiphany.profile14
-rw-r--r--etc/profile-a-l/equalx.profile18
-rw-r--r--etc/profile-a-l/etr.profile10
-rw-r--r--etc/profile-a-l/evince.profile14
-rw-r--r--etc/profile-a-l/evolution.profile18
-rw-r--r--etc/profile-a-l/exiftool.profile4
-rw-r--r--etc/profile-a-l/falkon.profile12
-rw-r--r--etc/profile-a-l/fbreader.profile4
-rw-r--r--etc/profile-a-l/fdns.profile8
-rw-r--r--etc/profile-a-l/feedreader.profile10
-rw-r--r--etc/profile-a-l/ferdi.profile18
-rw-r--r--etc/profile-a-l/fetchmail.profile4
-rw-r--r--etc/profile-a-l/ffmpeg.profile10
-rw-r--r--etc/profile-a-l/file-roller.profile4
-rw-r--r--etc/profile-a-l/file.profile2
-rw-r--r--etc/profile-a-l/filezilla.profile4
-rw-r--r--etc/profile-a-l/firedragon.profile8
-rw-r--r--etc/profile-a-l/firefox-common-addons.profile130
-rw-r--r--etc/profile-a-l/firefox-common.profile10
-rw-r--r--etc/profile-a-l/firefox-esr.profile2
-rw-r--r--etc/profile-a-l/firefox.profile25
-rw-r--r--etc/profile-a-l/five-or-more.profile6
-rw-r--r--etc/profile-a-l/flameshot.profile8
-rw-r--r--etc/profile-a-l/flashpeak-slimjet.profile8
-rw-r--r--etc/profile-a-l/flowblade.profile4
-rw-r--r--etc/profile-a-l/fluxbox.profile2
-rw-r--r--etc/profile-a-l/font-manager.profile10
-rw-r--r--etc/profile-a-l/fontforge.profile4
-rw-r--r--etc/profile-a-l/fossamail.profile12
-rw-r--r--etc/profile-a-l/four-in-a-row.profile2
-rw-r--r--etc/profile-a-l/fractal.profile6
-rw-r--r--etc/profile-a-l/franz.profile18
-rw-r--r--etc/profile-a-l/freecad.profile4
-rw-r--r--etc/profile-a-l/freeciv.profile4
-rw-r--r--etc/profile-a-l/freecol.profile18
-rw-r--r--etc/profile-a-l/freemind.profile4
-rw-r--r--etc/profile-a-l/freetube.profile4
-rw-r--r--etc/profile-a-l/frogatto.profile7
-rw-r--r--etc/profile-a-l/frozen-bubble.profile4
-rw-r--r--etc/profile-a-l/funnyboat.profile57
-rw-r--r--etc/profile-a-l/gajim.profile24
-rw-r--r--etc/profile-a-l/galculator.profile4
-rw-r--r--etc/profile-a-l/gapplication.profile3
-rw-r--r--etc/profile-a-l/gcloud.profile6
-rw-r--r--etc/profile-a-l/gconf-editor.profile4
-rw-r--r--etc/profile-a-l/gconf.profile10
-rw-r--r--etc/profile-a-l/geany.profile2
-rw-r--r--etc/profile-a-l/geary.profile36
-rw-r--r--etc/profile-a-l/gedit.profile4
-rw-r--r--etc/profile-a-l/geeqie.profile6
-rw-r--r--etc/profile-a-l/gfeeds.profile19
-rw-r--r--etc/profile-a-l/gget.profile6
-rw-r--r--etc/profile-a-l/ghostwriter.profile16
-rw-r--r--etc/profile-a-l/gimp.profile22
-rw-r--r--etc/profile-a-l/gist.profile10
-rw-r--r--etc/profile-a-l/git-cola.profile32
-rw-r--r--etc/profile-a-l/git.profile34
-rw-r--r--etc/profile-a-l/gitg.profile10
-rw-r--r--etc/profile-a-l/github-desktop.profile8
-rw-r--r--etc/profile-a-l/gitter.profile10
-rw-r--r--etc/profile-a-l/gjs.profile8
-rw-r--r--etc/profile-a-l/gl-117.profile6
-rw-r--r--etc/profile-a-l/glaxium.profile6
-rw-r--r--etc/profile-a-l/globaltime.profile2
-rw-r--r--etc/profile-a-l/gmpc.profile10
-rw-r--r--etc/profile-a-l/gnome-2048.profile4
-rw-r--r--etc/profile-a-l/gnome-books.profile4
-rw-r--r--etc/profile-a-l/gnome-builder.profile8
-rw-r--r--etc/profile-a-l/gnome-calendar.profile4
-rw-r--r--etc/profile-a-l/gnome-characters.profile2
-rw-r--r--etc/profile-a-l/gnome-chess.profile8
-rw-r--r--etc/profile-a-l/gnome-clocks.profile4
-rw-r--r--etc/profile-a-l/gnome-contacts.profile2
-rw-r--r--etc/profile-a-l/gnome-documents.profile4
-rw-r--r--etc/profile-a-l/gnome-hexgl.profile2
-rw-r--r--etc/profile-a-l/gnome-keyring.profile14
-rw-r--r--etc/profile-a-l/gnome-klotski.profile4
-rw-r--r--etc/profile-a-l/gnome-latex.profile8
-rw-r--r--etc/profile-a-l/gnome-logs.profile2
-rw-r--r--etc/profile-a-l/gnome-mahjongg.profile2
-rw-r--r--etc/profile-a-l/gnome-maps.profile20
-rw-r--r--etc/profile-a-l/gnome-mines.profile6
-rw-r--r--etc/profile-a-l/gnome-mplayer.profile6
-rw-r--r--etc/profile-a-l/gnome-music.profile4
-rw-r--r--etc/profile-a-l/gnome-nettool.profile2
-rw-r--r--etc/profile-a-l/gnome-nibbles.profile6
-rw-r--r--etc/profile-a-l/gnome-passwordsafe.profile12
-rw-r--r--etc/profile-a-l/gnome-photos.profile2
-rw-r--r--etc/profile-a-l/gnome-pie.profile2
-rw-r--r--etc/profile-a-l/gnome-pomodoro.profile6
-rw-r--r--etc/profile-a-l/gnome-recipes.profile10
-rw-r--r--etc/profile-a-l/gnome-ring.profile2
-rw-r--r--etc/profile-a-l/gnome-robots.profile2
-rw-r--r--etc/profile-a-l/gnome-schedule.profile22
-rw-r--r--etc/profile-a-l/gnome-screenshot.profile4
-rw-r--r--etc/profile-a-l/gnome-sound-recorder.profile4
-rw-r--r--etc/profile-a-l/gnome-sudoku.profile4
-rw-r--r--etc/profile-a-l/gnome-system-log.profile2
-rw-r--r--etc/profile-a-l/gnome-taquin.profile2
-rw-r--r--etc/profile-a-l/gnome-todo.profile2
-rw-r--r--etc/profile-a-l/gnome-twitch.profile8
-rw-r--r--etc/profile-a-l/gnome-weather.profile2
-rw-r--r--etc/profile-a-l/gnote.profile10
-rw-r--r--etc/profile-a-l/gnubik.profile2
-rw-r--r--etc/profile-a-l/godot.profile6
-rw-r--r--etc/profile-a-l/goobox.profile2
-rw-r--r--etc/profile-a-l/google-chrome-beta.profile16
-rw-r--r--etc/profile-a-l/google-chrome-unstable.profile16
-rw-r--r--etc/profile-a-l/google-chrome.profile16
-rw-r--r--etc/profile-a-l/google-earth.profile8
-rw-r--r--etc/profile-a-l/google-play-music-desktop-player.profile4
-rw-r--r--etc/profile-a-l/googler-common.profile62
-rw-r--r--etc/profile-a-l/googler.profile13
-rw-r--r--etc/profile-a-l/gpa.profile2
-rw-r--r--etc/profile-a-l/gpg-agent.profile16
-rw-r--r--etc/profile-a-l/gpg.profile16
-rw-r--r--etc/profile-a-l/gpicview.profile4
-rw-r--r--etc/profile-a-l/gpredict.profile4
-rw-r--r--etc/profile-a-l/gradio.profile8
-rw-r--r--etc/profile-a-l/gramps.profile4
-rw-r--r--etc/profile-a-l/gravity-beams-and-evaporating-stars.profile2
-rw-r--r--etc/profile-a-l/gthumb.profile6
-rw-r--r--etc/profile-a-l/gtk-pipe-viewer.profile12
-rw-r--r--etc/profile-a-l/gtk-straw-viewer.profile2
-rw-r--r--etc/profile-a-l/gtk-update-icon-cache.profile2
-rw-r--r--etc/profile-a-l/gtk-youtube-viewer.profile2
-rw-r--r--etc/profile-a-l/gtk2-youtube-viewer.profile4
-rw-r--r--etc/profile-a-l/gtk3-youtube-viewer.profile4
-rw-r--r--etc/profile-a-l/guayadeque.profile4
-rw-r--r--etc/profile-a-l/gummi.profile4
-rw-r--r--etc/profile-a-l/gunzip.profile2
-rw-r--r--etc/profile-a-l/guvcview.profile12
-rw-r--r--etc/profile-a-l/gwenview.profile22
-rw-r--r--etc/profile-a-l/gzip.profile2
-rw-r--r--etc/profile-a-l/handbrake.profile6
-rw-r--r--etc/profile-a-l/hashcat.profile8
-rw-r--r--etc/profile-a-l/hasher-common.profile2
-rw-r--r--etc/profile-a-l/hedgewars.profile4
-rw-r--r--etc/profile-a-l/hexchat.profile9
-rw-r--r--etc/profile-a-l/highlight.profile2
-rw-r--r--etc/profile-a-l/homebank.profile8
-rw-r--r--etc/profile-a-l/host.profile4
-rw-r--r--etc/profile-a-l/hugin.profile6
-rw-r--r--etc/profile-a-l/hyperrogue.profile6
-rw-r--r--etc/profile-a-l/i2prouter.profile20
-rw-r--r--etc/profile-a-l/i3.profile2
-rw-r--r--etc/profile-a-l/icecat.profile8
-rw-r--r--etc/profile-a-l/icedove.profile12
-rw-r--r--etc/profile-a-l/idea.sh.profile12
-rw-r--r--etc/profile-a-l/imagej.profile2
-rw-r--r--etc/profile-a-l/img2txt.profile8
-rw-r--r--etc/profile-a-l/impressive.profile10
-rw-r--r--etc/profile-a-l/inkscape.profile16
-rw-r--r--etc/profile-a-l/inox.profile8
-rw-r--r--etc/profile-a-l/iridium.profile8
-rw-r--r--etc/profile-a-l/itch.profile8
-rw-r--r--etc/profile-a-l/jami-gnome.profile8
-rw-r--r--etc/profile-a-l/jd-gui.profile2
-rw-r--r--etc/profile-a-l/jerry.profile2
-rw-r--r--etc/profile-a-l/jitsi-meet-desktop.profile6
-rw-r--r--etc/profile-a-l/jitsi.profile2
-rw-r--r--etc/profile-a-l/jumpnbump.profile6
-rw-r--r--etc/profile-a-l/k3b.profile10
-rw-r--r--etc/profile-a-l/kaffeine.profile16
-rw-r--r--etc/profile-a-l/kalgebra.profile6
-rw-r--r--etc/profile-a-l/karbon.profile2
-rw-r--r--etc/profile-a-l/kate.profile28
-rw-r--r--etc/profile-a-l/kazam.profile8
-rw-r--r--etc/profile-a-l/kcalc.profile16
-rw-r--r--etc/profile-a-l/kdenlive.profile8
-rw-r--r--etc/profile-a-l/kdiff3.profile8
-rw-r--r--etc/profile-a-l/keepass.profile16
-rw-r--r--etc/profile-a-l/keepassx.profile10
-rw-r--r--etc/profile-a-l/keepassxc.profile30
-rw-r--r--etc/profile-a-l/kget.profile14
-rw-r--r--etc/profile-a-l/kid3-qt.profile2
-rw-r--r--etc/profile-a-l/kid3.profile6
-rw-r--r--etc/profile-a-l/kino.profile4
-rw-r--r--etc/profile-a-l/kiwix-desktop.profile8
-rw-r--r--etc/profile-a-l/klatexformula.profile4
-rw-r--r--etc/profile-a-l/klavaro.profile8
-rw-r--r--etc/profile-a-l/kmail.profile42
-rw-r--r--etc/profile-a-l/kmplayer.profile10
-rw-r--r--etc/profile-a-l/knotes.profile6
-rw-r--r--etc/profile-a-l/kodi.profile12
-rw-r--r--etc/profile-a-l/konversation.profile10
-rw-r--r--etc/profile-a-l/kopete.profile12
-rw-r--r--etc/profile-a-l/krita.profile8
-rw-r--r--etc/profile-a-l/krunner.profile6
-rw-r--r--etc/profile-a-l/ktorrent.profile30
-rw-r--r--etc/profile-a-l/ktouch.profile8
-rw-r--r--etc/profile-a-l/kube.profile36
-rw-r--r--etc/profile-a-l/kwin_x11.profile8
-rw-r--r--etc/profile-a-l/kwrite.profile18
-rw-r--r--etc/profile-a-l/latex-common.profile2
-rw-r--r--etc/profile-a-l/leafpad.profile2
-rw-r--r--etc/profile-a-l/less.profile4
-rw-r--r--etc/profile-a-l/librecad.profile51
-rw-r--r--etc/profile-a-l/libreoffice.profile6
-rw-r--r--etc/profile-a-l/librewolf.profile19
-rw-r--r--etc/profile-a-l/liferea.profile14
-rw-r--r--etc/profile-a-l/lightsoff.profile2
-rw-r--r--etc/profile-a-l/lincity-ng.profile4
-rw-r--r--etc/profile-a-l/links-common.profile63
-rw-r--r--etc/profile-a-l/links.profile58
-rw-r--r--etc/profile-a-l/links2.profile18
-rw-r--r--etc/profile-a-l/linphone.profile18
-rw-r--r--etc/profile-a-l/lmms.profile6
-rw-r--r--etc/profile-a-l/lollypop.profile4
-rw-r--r--etc/profile-a-l/lugaru.profile8
-rw-r--r--etc/profile-a-l/luminance-hdr.profile4
-rw-r--r--etc/profile-a-l/lutris.profile34
-rw-r--r--etc/profile-a-l/lximage-qt.profile2
-rw-r--r--etc/profile-a-l/lxmusic.profile6
-rw-r--r--etc/profile-a-l/lynx.profile4
-rw-r--r--etc/profile-a-l/lyx.profile14
-rw-r--r--etc/profile-a-l/sway.profile4
-rw-r--r--etc/profile-m-z/Maelstrom.profile4
-rw-r--r--etc/profile-m-z/Mathematica.profile10
-rw-r--r--etc/profile-m-z/PCSX2.profile4
-rw-r--r--etc/profile-m-z/QMediathekView.profile26
-rw-r--r--etc/profile-m-z/QOwnNotes.profile16
-rw-r--r--etc/profile-m-z/Viber.profile8
-rw-r--r--etc/profile-m-z/XMind.profile6
-rw-r--r--etc/profile-m-z/Xephyr.profile2
-rw-r--r--etc/profile-m-z/Xvfb.profile2
-rw-r--r--etc/profile-m-z/ZeGrapher.profile4
-rw-r--r--etc/profile-m-z/macrofusion.profile4
-rw-r--r--etc/profile-m-z/magicor.profile6
-rw-r--r--etc/profile-m-z/makepkg.profile18
-rw-r--r--etc/profile-m-z/man.profile18
-rw-r--r--etc/profile-m-z/manaplus.profile8
-rw-r--r--etc/profile-m-z/marker.profile7
-rw-r--r--etc/profile-m-z/masterpdfeditor.profile4
-rw-r--r--etc/profile-m-z/mate-calc.profile8
-rw-r--r--etc/profile-m-z/mate-dictionary.profile4
-rw-r--r--etc/profile-m-z/matrix-mirage.profile12
-rw-r--r--etc/profile-m-z/mattermost-desktop.profile4
-rw-r--r--etc/profile-m-z/mcabber.profile4
-rw-r--r--etc/profile-m-z/mcomix.profile74
-rw-r--r--etc/profile-m-z/mdr.profile4
-rw-r--r--etc/profile-m-z/mediainfo.profile2
-rw-r--r--etc/profile-m-z/mediathekview.profile20
-rw-r--r--etc/profile-m-z/megaglest.profile7
-rw-r--r--etc/profile-m-z/meld.profile14
-rw-r--r--etc/profile-m-z/mendeleydesktop.profile14
-rw-r--r--etc/profile-m-z/menulibre.profile14
-rw-r--r--etc/profile-m-z/meteo-qt.profile8
-rw-r--r--etc/profile-m-z/microsoft-edge-dev.profile8
-rw-r--r--etc/profile-m-z/midori.profile38
-rw-r--r--etc/profile-m-z/min.profile4
-rw-r--r--etc/profile-m-z/mindless.profile2
-rw-r--r--etc/profile-m-z/minecraft-launcher.profile5
-rw-r--r--etc/profile-m-z/minetest.profile12
-rw-r--r--etc/profile-m-z/minitube.profile18
-rw-r--r--etc/profile-m-z/mirage.profile16
-rw-r--r--etc/profile-m-z/mirrormagic.profile6
-rw-r--r--etc/profile-m-z/mocp.profile4
-rw-r--r--etc/profile-m-z/mousepad.profile2
-rw-r--r--etc/profile-m-z/mp3splt-gtk.profile2
-rw-r--r--etc/profile-m-z/mp3splt.profile4
-rw-r--r--etc/profile-m-z/mpDris2.profile8
-rw-r--r--etc/profile-m-z/mpd.profile8
-rw-r--r--etc/profile-m-z/mpg123.profile2
-rw-r--r--etc/profile-m-z/mplayer.profile4
-rw-r--r--etc/profile-m-z/mpsyt.profile28
-rw-r--r--etc/profile-m-z/mpv.profile20
-rw-r--r--etc/profile-m-z/mrrescue.profile8
-rw-r--r--etc/profile-m-z/ms-excel.profile2
-rw-r--r--etc/profile-m-z/ms-office.profile4
-rw-r--r--etc/profile-m-z/ms-onenote.profile2
-rw-r--r--etc/profile-m-z/ms-outlook.profile2
-rw-r--r--etc/profile-m-z/ms-powerpoint.profile2
-rw-r--r--etc/profile-m-z/ms-skype.profile2
-rw-r--r--etc/profile-m-z/ms-word.profile2
-rw-r--r--etc/profile-m-z/mtpaint.profile2
-rw-r--r--etc/profile-m-z/multimc5.profile12
-rw-r--r--etc/profile-m-z/mumble.profile12
-rw-r--r--etc/profile-m-z/mupdf-gl.profile2
-rw-r--r--etc/profile-m-z/mupdf.profile2
-rw-r--r--etc/profile-m-z/mupen64plus.profile8
-rw-r--r--etc/profile-m-z/musescore.profile12
-rw-r--r--etc/profile-m-z/musictube.profile14
-rw-r--r--etc/profile-m-z/musixmatch.profile2
-rw-r--r--etc/profile-m-z/mutt.profile120
-rw-r--r--etc/profile-m-z/mypaint.profile8
-rw-r--r--etc/profile-m-z/nano.profile8
-rw-r--r--etc/profile-m-z/natron.profile6
-rw-r--r--etc/profile-m-z/ncdu.profile2
-rw-r--r--etc/profile-m-z/neochat.profile18
-rw-r--r--etc/profile-m-z/neomutt.profile128
-rw-r--r--etc/profile-m-z/netactview.profile6
-rw-r--r--etc/profile-m-z/nethack-vultures.profile6
-rw-r--r--etc/profile-m-z/nethack.profile4
-rw-r--r--etc/profile-m-z/netsurf.profile10
-rw-r--r--etc/profile-m-z/neverball.profile6
-rw-r--r--etc/profile-m-z/newsbeuter.profile14
-rw-r--r--etc/profile-m-z/newsboat.profile24
-rw-r--r--etc/profile-m-z/newsflash.profile12
-rw-r--r--etc/profile-m-z/nextcloud.profile12
-rw-r--r--etc/profile-m-z/nheko.profile14
-rw-r--r--etc/profile-m-z/nicotine.profile8
-rw-r--r--etc/profile-m-z/nitroshare.profile4
-rw-r--r--etc/profile-m-z/nodejs-common.profile26
-rw-r--r--etc/profile-m-z/nomacs.profile8
-rw-r--r--etc/profile-m-z/notify-send.profile2
-rw-r--r--etc/profile-m-z/nslookup.profile8
-rw-r--r--etc/profile-m-z/nuclear.profile4
-rw-r--r--etc/profile-m-z/nylas.profile10
-rw-r--r--etc/profile-m-z/nyx.profile4
-rw-r--r--etc/profile-m-z/obs.profile8
-rw-r--r--etc/profile-m-z/ocenaudio.profile6
-rw-r--r--etc/profile-m-z/odt2txt.profile4
-rw-r--r--etc/profile-m-z/okular.profile42
-rw-r--r--etc/profile-m-z/onboard.profile6
-rw-r--r--etc/profile-m-z/onionshare-gui.profile2
-rw-r--r--etc/profile-m-z/open-invaders.profile4
-rw-r--r--etc/profile-m-z/openarena.profile6
-rw-r--r--etc/profile-m-z/openbox.profile2
-rw-r--r--etc/profile-m-z/opencity.profile4
-rw-r--r--etc/profile-m-z/openclonk.profile4
-rw-r--r--etc/profile-m-z/openmw.profile10
-rw-r--r--etc/profile-m-z/openshot.profile8
-rw-r--r--etc/profile-m-z/openttd.profile4
-rw-r--r--etc/profile-m-z/opera-beta.profile8
-rw-r--r--etc/profile-m-z/opera.profile12
-rw-r--r--etc/profile-m-z/orage.profile4
-rw-r--r--etc/profile-m-z/ostrichriders.profile6
-rw-r--r--etc/profile-m-z/otter-browser.profile20
-rw-r--r--etc/profile-m-z/palemoon.profile8
-rw-r--r--etc/profile-m-z/pandoc.profile4
-rw-r--r--etc/profile-m-z/parole.profile4
-rw-r--r--etc/profile-m-z/patch.profile4
-rw-r--r--etc/profile-m-z/pavucontrol-qt.profile4
-rw-r--r--etc/profile-m-z/pavucontrol.profile6
-rw-r--r--etc/profile-m-z/pcsxr.profile4
-rw-r--r--etc/profile-m-z/pdfchain.profile2
-rw-r--r--etc/profile-m-z/pdfmod.profile6
-rw-r--r--etc/profile-m-z/pdfsam.profile2
-rw-r--r--etc/profile-m-z/pdftotext.profile10
-rw-r--r--etc/profile-m-z/peek.profile6
-rw-r--r--etc/profile-m-z/penguin-command.profile4
-rw-r--r--etc/profile-m-z/photoflare.profile2
-rw-r--r--etc/profile-m-z/picard.profile6
-rw-r--r--etc/profile-m-z/pidgin.profile8
-rw-r--r--etc/profile-m-z/pinball.profile8
-rw-r--r--etc/profile-m-z/ping.profile4
-rw-r--r--etc/profile-m-z/pingus.profile8
-rw-r--r--etc/profile-m-z/pinta.profile6
-rw-r--r--etc/profile-m-z/pioneer.profile4
-rw-r--r--etc/profile-m-z/pipe-viewer.profile21
-rw-r--r--etc/profile-m-z/pitivi.profile2
-rw-r--r--etc/profile-m-z/pix.profile8
-rw-r--r--etc/profile-m-z/pkglog.profile6
-rw-r--r--etc/profile-m-z/playonlinux.profile4
-rw-r--r--etc/profile-m-z/pluma.profile4
-rw-r--r--etc/profile-m-z/plv.profile6
-rw-r--r--etc/profile-m-z/pngquant.profile4
-rw-r--r--etc/profile-m-z/polari.profile12
-rw-r--r--etc/profile-m-z/ppsspp.profile6
-rw-r--r--etc/profile-m-z/pragha.profile4
-rw-r--r--etc/profile-m-z/profanity.profile4
-rw-r--r--etc/profile-m-z/psi-plus.profile12
-rw-r--r--etc/profile-m-z/psi.profile24
-rw-r--r--etc/profile-m-z/pybitmessage.profile6
-rw-r--r--etc/profile-m-z/pycharm-community.profile2
-rw-r--r--etc/profile-m-z/pycharm-professional.profile2
-rw-r--r--etc/profile-m-z/qbittorrent.profile18
-rw-r--r--etc/profile-m-z/qcomicbook.profile68
-rw-r--r--etc/profile-m-z/qemu-launcher.profile2
-rw-r--r--etc/profile-m-z/qgis.profile16
-rw-r--r--etc/profile-m-z/qlipper.profile2
-rw-r--r--etc/profile-m-z/qmmp.profile4
-rw-r--r--etc/profile-m-z/qnapi.profile6
-rw-r--r--etc/profile-m-z/qpdfview.profile6
-rw-r--r--etc/profile-m-z/qrencode.profile2
-rw-r--r--etc/profile-m-z/qtox.profile8
-rw-r--r--etc/profile-m-z/quadrapassel.profile6
-rw-r--r--etc/profile-m-z/quaternion.profile12
-rw-r--r--etc/profile-m-z/quiterss.profile20
-rw-r--r--etc/profile-m-z/quodlibet.profile18
-rw-r--r--etc/profile-m-z/qupzilla.profile8
-rw-r--r--etc/profile-m-z/qutebrowser.profile14
-rw-r--r--etc/profile-m-z/rambox.profile14
-rw-r--r--etc/profile-m-z/redeclipse.profile6
-rw-r--r--etc/profile-m-z/redshift.profile8
-rw-r--r--etc/profile-m-z/regextester.profile2
-rw-r--r--etc/profile-m-z/remmina.profile6
-rw-r--r--etc/profile-m-z/rhythmbox.profile14
-rw-r--r--etc/profile-m-z/ricochet.profile6
-rw-r--r--etc/profile-m-z/riot-web.profile6
-rw-r--r--etc/profile-m-z/ripperx.profile4
-rw-r--r--etc/profile-m-z/ristretto.profile6
-rw-r--r--etc/profile-m-z/rocketchat.profile4
-rw-r--r--etc/profile-m-z/rsync-download_only.profile4
-rw-r--r--etc/profile-m-z/rtin.profile8
-rw-r--r--etc/profile-m-z/rtv-addons.profile23
-rw-r--r--etc/profile-m-z/rtv.profile19
-rw-r--r--etc/profile-m-z/sayonara.profile4
-rw-r--r--etc/profile-m-z/scallion.profile8
-rw-r--r--etc/profile-m-z/scorched3d.profile7
-rw-r--r--etc/profile-m-z/scorchwentbonkers.profile6
-rw-r--r--etc/profile-m-z/scribus.profile36
-rw-r--r--etc/profile-m-z/seahorse-adventures.profile8
-rw-r--r--etc/profile-m-z/seahorse.profile18
-rw-r--r--etc/profile-m-z/seamonkey.profile46
-rw-r--r--etc/profile-m-z/server.profile8
-rw-r--r--etc/profile-m-z/shellcheck.profile6
-rw-r--r--etc/profile-m-z/shortwave.profile10
-rw-r--r--etc/profile-m-z/shotcut.profile2
-rw-r--r--etc/profile-m-z/shotwell.profile12
-rw-r--r--etc/profile-m-z/signal-cli.profile8
-rw-r--r--etc/profile-m-z/signal-desktop.profile8
-rw-r--r--etc/profile-m-z/simple-scan.profile8
-rw-r--r--etc/profile-m-z/simplescreenrecorder.profile6
-rw-r--r--etc/profile-m-z/simutrans.profile4
-rw-r--r--etc/profile-m-z/skanlite.profile2
-rw-r--r--etc/profile-m-z/skypeforlinux.profile2
-rw-r--r--etc/profile-m-z/slack.profile8
-rw-r--r--etc/profile-m-z/slashem.profile4
-rw-r--r--etc/profile-m-z/smplayer.profile16
-rw-r--r--etc/profile-m-z/smtube.profile20
-rw-r--r--etc/profile-m-z/smuxi-frontend-gnome.profile14
-rw-r--r--etc/profile-m-z/snox.profile8
-rw-r--r--etc/profile-m-z/softmaker-common.profile6
-rw-r--r--etc/profile-m-z/sound-juicer.profile4
-rw-r--r--etc/profile-m-z/soundconverter.profile8
-rw-r--r--etc/profile-m-z/spectacle.profile12
-rw-r--r--etc/profile-m-z/spectral.profile10
-rw-r--r--etc/profile-m-z/spectre-meltdown-checker.profile6
-rw-r--r--etc/profile-m-z/spotify.profile14
-rw-r--r--etc/profile-m-z/sqlitebrowser.profile4
-rw-r--r--etc/profile-m-z/ssh-agent.profile4
-rw-r--r--etc/profile-m-z/ssh.profile8
-rw-r--r--etc/profile-m-z/standardnotes-desktop.profile8
-rw-r--r--etc/profile-m-z/start-tor-browser.desktop.profile126
-rw-r--r--etc/profile-m-z/steam.profile130
-rw-r--r--etc/profile-m-z/stellarium.profile8
-rw-r--r--etc/profile-m-z/straw-viewer.profile59
-rw-r--r--etc/profile-m-z/strawberry.profile8
-rw-r--r--etc/profile-m-z/strings.profile2
-rw-r--r--etc/profile-m-z/subdownloader.profile4
-rw-r--r--etc/profile-m-z/supertux2.profile7
-rw-r--r--etc/profile-m-z/supertuxkart.profile17
-rw-r--r--etc/profile-m-z/surf.profile6
-rw-r--r--etc/profile-m-z/swell-foop.profile6
-rw-r--r--etc/profile-m-z/sylpheed.profile6
-rw-r--r--etc/profile-m-z/synfigstudio.profile4
-rw-r--r--etc/profile-m-z/sysprof.profile16
-rw-r--r--etc/profile-m-z/tar.profile2
-rw-r--r--etc/profile-m-z/tb-starter-wrapper.profile4
-rw-r--r--etc/profile-m-z/tcpdump.profile6
-rw-r--r--etc/profile-m-z/teams-for-linux.profile4
-rw-r--r--etc/profile-m-z/teams.profile8
-rw-r--r--etc/profile-m-z/teamspeak3.profile8
-rw-r--r--etc/profile-m-z/teeworlds.profile4
-rw-r--r--etc/profile-m-z/telegram-desktop.profile2
-rw-r--r--etc/profile-m-z/telegram.profile11
-rw-r--r--etc/profile-m-z/terasology.profile6
-rw-r--r--etc/profile-m-z/thunderbird.profile24
-rw-r--r--etc/profile-m-z/tilp.profile2
-rw-r--r--etc/profile-m-z/tin.profile69
-rw-r--r--etc/profile-m-z/tmux.profile6
-rw-r--r--etc/profile-m-z/tor-browser-ar.profile4
-rw-r--r--etc/profile-m-z/tor-browser-ca.profile4
-rw-r--r--etc/profile-m-z/tor-browser-cs.profile4
-rw-r--r--etc/profile-m-z/tor-browser-da.profile4
-rw-r--r--etc/profile-m-z/tor-browser-de.profile4
-rw-r--r--etc/profile-m-z/tor-browser-el.profile4
-rw-r--r--etc/profile-m-z/tor-browser-en-us.profile4
-rw-r--r--etc/profile-m-z/tor-browser-en.profile4
-rw-r--r--etc/profile-m-z/tor-browser-es-es.profile4
-rw-r--r--etc/profile-m-z/tor-browser-es.profile4
-rw-r--r--etc/profile-m-z/tor-browser-fa.profile4
-rw-r--r--etc/profile-m-z/tor-browser-fr.profile4
-rw-r--r--etc/profile-m-z/tor-browser-ga-ie.profile4
-rw-r--r--etc/profile-m-z/tor-browser-he.profile4
-rw-r--r--etc/profile-m-z/tor-browser-hu.profile4
-rw-r--r--etc/profile-m-z/tor-browser-id.profile4
-rw-r--r--etc/profile-m-z/tor-browser-is.profile4
-rw-r--r--etc/profile-m-z/tor-browser-it.profile4
-rw-r--r--etc/profile-m-z/tor-browser-ja.profile4
-rw-r--r--etc/profile-m-z/tor-browser-ka.profile4
-rw-r--r--etc/profile-m-z/tor-browser-ko.profile4
-rw-r--r--etc/profile-m-z/tor-browser-nb.profile4
-rw-r--r--etc/profile-m-z/tor-browser-nl.profile4
-rw-r--r--etc/profile-m-z/tor-browser-pl.profile4
-rw-r--r--etc/profile-m-z/tor-browser-pt-br.profile4
-rw-r--r--etc/profile-m-z/tor-browser-ru.profile4
-rw-r--r--etc/profile-m-z/tor-browser-sv-se.profile4
-rw-r--r--etc/profile-m-z/tor-browser-tr.profile4
-rw-r--r--etc/profile-m-z/tor-browser-vi.profile4
-rw-r--r--etc/profile-m-z/tor-browser-zh-cn.profile4
-rw-r--r--etc/profile-m-z/tor-browser-zh-tw.profile4
-rw-r--r--etc/profile-m-z/tor-browser.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ar.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ca.profile4
-rw-r--r--etc/profile-m-z/tor-browser_cs.profile4
-rw-r--r--etc/profile-m-z/tor-browser_da.profile4
-rw-r--r--etc/profile-m-z/tor-browser_de.profile4
-rw-r--r--etc/profile-m-z/tor-browser_el.profile4
-rw-r--r--etc/profile-m-z/tor-browser_en-US.profile4
-rw-r--r--etc/profile-m-z/tor-browser_en.profile4
-rw-r--r--etc/profile-m-z/tor-browser_es-ES.profile4
-rw-r--r--etc/profile-m-z/tor-browser_es.profile4
-rw-r--r--etc/profile-m-z/tor-browser_fa.profile4
-rw-r--r--etc/profile-m-z/tor-browser_fr.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ga-IE.profile4
-rw-r--r--etc/profile-m-z/tor-browser_he.profile4
-rw-r--r--etc/profile-m-z/tor-browser_hu.profile4
-rw-r--r--etc/profile-m-z/tor-browser_id.profile4
-rw-r--r--etc/profile-m-z/tor-browser_is.profile4
-rw-r--r--etc/profile-m-z/tor-browser_it.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ja.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ka.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ko.profile4
-rw-r--r--etc/profile-m-z/tor-browser_nb.profile4
-rw-r--r--etc/profile-m-z/tor-browser_nl.profile4
-rw-r--r--etc/profile-m-z/tor-browser_pl.profile4
-rw-r--r--etc/profile-m-z/tor-browser_pt-BR.profile4
-rw-r--r--etc/profile-m-z/tor-browser_ru.profile4
-rw-r--r--etc/profile-m-z/tor-browser_sv-SE.profile4
-rw-r--r--etc/profile-m-z/tor-browser_tr.profile4
-rw-r--r--etc/profile-m-z/tor-browser_vi.profile4
-rw-r--r--etc/profile-m-z/tor-browser_zh-CN.profile4
-rw-r--r--etc/profile-m-z/tor-browser_zh-TW.profile4
-rw-r--r--etc/profile-m-z/torbrowser-launcher.profile16
-rw-r--r--etc/profile-m-z/torcs.profile8
-rw-r--r--etc/profile-m-z/totem.profile10
-rw-r--r--etc/profile-m-z/tracker.profile4
-rw-r--r--etc/profile-m-z/transgui.profile6
-rw-r--r--etc/profile-m-z/transmission-common.profile10
-rw-r--r--etc/profile-m-z/transmission-daemon.profile4
-rw-r--r--etc/profile-m-z/transmission-remote-gtk.profile4
-rw-r--r--etc/profile-m-z/tremulous.profile6
-rw-r--r--etc/profile-m-z/trojita.profile16
-rw-r--r--etc/profile-m-z/truecraft.profile8
-rw-r--r--etc/profile-m-z/ts3client_runscript.sh.profile8
-rw-r--r--etc/profile-m-z/tutanota-desktop.profile12
-rw-r--r--etc/profile-m-z/tuxguitar.profile12
-rw-r--r--etc/profile-m-z/tvbrowser.profile10
-rw-r--r--etc/profile-m-z/twitch.profile4
-rw-r--r--etc/profile-m-z/uefitool.profile2
-rw-r--r--etc/profile-m-z/uget-gtk.profile6
-rw-r--r--etc/profile-m-z/unbound.profile12
-rw-r--r--etc/profile-m-z/unf.profile4
-rw-r--r--etc/profile-m-z/unknown-horizons.profile6
-rw-r--r--etc/profile-m-z/unzip.profile2
-rw-r--r--etc/profile-m-z/utox.profile8
-rw-r--r--etc/profile-m-z/uudeview.profile2
-rw-r--r--etc/profile-m-z/uzbl-browser.profile16
-rw-r--r--etc/profile-m-z/viewnior.profile8
-rw-r--r--etc/profile-m-z/viking.profile6
-rw-r--r--etc/profile-m-z/vim.profile6
-rw-r--r--etc/profile-m-z/virtualbox.profile18
-rw-r--r--etc/profile-m-z/vivaldi.profile24
-rw-r--r--etc/profile-m-z/vlc.profile16
-rw-r--r--etc/profile-m-z/vmware-view.profile8
-rw-r--r--etc/profile-m-z/vmware.profile8
-rw-r--r--etc/profile-m-z/vscodium.profile2
-rw-r--r--etc/profile-m-z/vulturesclaw.profile4
-rw-r--r--etc/profile-m-z/vultureseye.profile4
-rw-r--r--etc/profile-m-z/vym.profile2
-rw-r--r--etc/profile-m-z/w3m.profile30
-rw-r--r--etc/profile-m-z/warmux.profile14
-rw-r--r--etc/profile-m-z/warsow.profile10
-rw-r--r--etc/profile-m-z/warzone2100.profile8
-rw-r--r--etc/profile-m-z/waterfox.profile8
-rw-r--r--etc/profile-m-z/webstorm.profile14
-rw-r--r--etc/profile-m-z/webui-aria2.profile2
-rw-r--r--etc/profile-m-z/weechat.profile3
-rw-r--r--etc/profile-m-z/wesnoth.profile12
-rw-r--r--etc/profile-m-z/wget.profile10
-rw-r--r--etc/profile-m-z/whalebird.profile4
-rw-r--r--etc/profile-m-z/whois.profile4
-rw-r--r--etc/profile-m-z/widelands.profile4
-rw-r--r--etc/profile-m-z/wine.profile14
-rw-r--r--etc/profile-m-z/wire-desktop.profile4
-rw-r--r--etc/profile-m-z/wireshark.profile8
-rw-r--r--etc/profile-m-z/wordwarvi.profile6
-rw-r--r--etc/profile-m-z/wps.profile6
-rw-r--r--etc/profile-m-z/x2goclient.profile4
-rw-r--r--etc/profile-m-z/xbill.profile4
-rw-r--r--etc/profile-m-z/xchat.profile2
-rw-r--r--etc/profile-m-z/xed.profile8
-rw-r--r--etc/profile-m-z/xfburn.profile2
-rw-r--r--etc/profile-m-z/xfce4-dict.profile2
-rw-r--r--etc/profile-m-z/xfce4-mixer.profile10
-rw-r--r--etc/profile-m-z/xfce4-notes.profile6
-rw-r--r--etc/profile-m-z/xfce4-screenshooter.profile4
-rw-r--r--etc/profile-m-z/xiphos.profile10
-rw-r--r--etc/profile-m-z/xlinks.profile3
-rw-r--r--etc/profile-m-z/xlinks220
-rw-r--r--etc/profile-m-z/xmms.profile4
-rw-r--r--etc/profile-m-z/xmr-stak.profile2
-rw-r--r--etc/profile-m-z/xonotic.profile6
-rw-r--r--etc/profile-m-z/xournal.profile6
-rw-r--r--etc/profile-m-z/xournalpp.profile8
-rw-r--r--etc/profile-m-z/xpdf.profile4
-rw-r--r--etc/profile-m-z/xplayer.profile8
-rw-r--r--etc/profile-m-z/xpra.profile2
-rw-r--r--etc/profile-m-z/xreader.profile6
-rw-r--r--etc/profile-m-z/xviewer.profile8
-rw-r--r--etc/profile-m-z/yandex-browser.profile16
-rw-r--r--etc/profile-m-z/yelp.profile19
-rw-r--r--etc/profile-m-z/youtube-dl-gui.profile6
-rw-r--r--etc/profile-m-z/youtube-dl.profile14
-rw-r--r--etc/profile-m-z/youtube-viewer.profile53
-rw-r--r--etc/profile-m-z/youtube-viewers-common.profile61
-rw-r--r--etc/profile-m-z/youtube.profile4
-rw-r--r--etc/profile-m-z/youtubemusic-nativefier.profile4
-rw-r--r--etc/profile-m-z/ytmdesktop.profile4
-rw-r--r--etc/profile-m-z/zaproxy.profile6
-rw-r--r--etc/profile-m-z/zart.profile4
-rw-r--r--etc/profile-m-z/zathura.profile13
-rw-r--r--etc/profile-m-z/zcat.profile2
-rw-r--r--etc/profile-m-z/zeal.profile12
-rw-r--r--etc/profile-m-z/zgrep.profile2
-rw-r--r--etc/profile-m-z/zoom.profile12
-rw-r--r--etc/profile-m-z/zulip.profile6
-rw-r--r--etc/templates/profile.template21
-rw-r--r--etc/templates/syscalls.txt2
-rw-r--r--platform/rpm/firejail.spec2
-rw-r--r--src/common.mk.in3
-rw-r--r--src/fbuilder/build_fs.c8
-rw-r--r--src/fbuilder/build_home.c4
-rw-r--r--src/fbuilder/build_profile.c54
-rw-r--r--src/fbuilder/build_seccomp.c29
-rw-r--r--src/fbuilder/main.c10
-rw-r--r--src/fcopy/main.c19
-rw-r--r--src/firecfg/firecfg.config14
-rw-r--r--src/firejail/appimage.c35
-rw-r--r--src/firejail/arp.c4
-rw-r--r--src/firejail/checkcfg.c28
-rw-r--r--src/firejail/chroot.c45
-rw-r--r--src/firejail/cmdline.c32
-rw-r--r--src/firejail/dbus.c18
-rw-r--r--src/firejail/dhcp.c12
-rw-r--r--src/firejail/firejail.h43
-rw-r--r--src/firejail/fs.c271
-rw-r--r--src/firejail/fs_dev.c2
-rw-r--r--src/firejail/fs_etc.c126
-rw-r--r--src/firejail/fs_home.c150
-rw-r--r--src/firejail/fs_hostname.c103
-rw-r--r--src/firejail/fs_lib.c13
-rw-r--r--src/firejail/fs_mkdir.c6
-rw-r--r--src/firejail/fs_trace.c6
-rw-r--r--src/firejail/fs_var.c4
-rw-r--r--src/firejail/fs_whitelist.c109
-rw-r--r--src/firejail/join.c2
-rw-r--r--src/firejail/ls.c12
-rw-r--r--src/firejail/macros.c1
-rw-r--r--src/firejail/main.c231
-rw-r--r--src/firejail/mountinfo.c5
-rw-r--r--src/firejail/no_sandbox.c2
-rw-r--r--src/firejail/paths.c2
-rw-r--r--src/firejail/profile.c164
-rw-r--r--src/firejail/pulseaudio.c68
-rw-r--r--src/firejail/restrict_users.c22
-rw-r--r--src/firejail/rlimit.c26
-rw-r--r--src/firejail/sandbox.c22
-rw-r--r--src/firejail/sbox.c4
-rw-r--r--src/firejail/seccomp.c5
-rw-r--r--src/firejail/selinux.c10
-rw-r--r--src/firejail/shutdown.c6
-rw-r--r--src/firejail/usage.c46
-rw-r--r--src/firejail/util.c329
-rw-r--r--src/firejail/x11.c102
-rw-r--r--src/firemon/interface.c5
-rw-r--r--src/firemon/netstats.c6
-rw-r--r--src/firemon/procevent.c3
-rw-r--r--src/firemon/top.c6
-rw-r--r--src/include/gcov_wrapper.h46
-rw-r--r--src/include/rundefs.h4
-rw-r--r--src/jailcheck/access.c2
-rw-r--r--src/jailcheck/jailcheck.h2
-rw-r--r--src/jailcheck/main.c23
-rw-r--r--src/jailcheck/network.c56
-rw-r--r--src/jailcheck/sysfiles.c2
-rw-r--r--src/lib/ldd_utils.c2
-rw-r--r--src/lib/syscall.c3
-rw-r--r--src/man/firejail-profile.txt110
-rw-r--r--src/man/firejail.txt203
-rw-r--r--src/man/jailcheck.txt12
-rw-r--r--src/tools/profcleaner.c75
-rwxr-xr-xsrc/tools/profcleaner.sh45
-rw-r--r--src/zsh_completion/_firejail.in32
-rwxr-xr-xtest/environment/rlimit-bad-profile.exp2
-rwxr-xr-xtest/environment/rlimit-bad.exp2
-rwxr-xr-xtest/fs/fscheck-tmpfs.exp2
-rwxr-xr-xtest/fs/whitelist.exp66
-rw-r--r--test/profiles/comment.profile3
-rwxr-xr-xtest/profiles/profile_comment.exp52
-rwxr-xr-xtest/profiles/profiles.sh3
893 files changed, 8052 insertions, 6647 deletions
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
new file mode 100644
index 000000000..cc0be3b3d
--- /dev/null
+++ b/.git-blame-ignore-revs
@@ -0,0 +1,2 @@
1# move whitelist/blacklist to allow/deny
2fe0f975f447d59977d90c3226cc8c623b31b20b3
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 07ab1431e..141e43168 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -24,9 +24,9 @@ jobs:
24 steps: 24 steps:
25 - uses: actions/checkout@v2 25 - uses: actions/checkout@v2
26 - name: install dependencies 26 - name: install dependencies
27 run: sudo apt-get install gcc-10 libapparmor-dev libselinux1-dev expect xzdec 27 run: sudo apt-get install gcc-11 libapparmor-dev libselinux1-dev expect xzdec
28 - name: configure 28 - name: configure
29 run: CC=gcc-10 ./configure --enable-fatal-warnings --enable-analyzer --enable-apparmor --enable-selinux --prefix=/usr 29 run: CC=gcc-11 ./configure --enable-fatal-warnings --enable-analyzer --enable-apparmor --enable-selinux --prefix=/usr
30 - name: make 30 - name: make
31 run: make 31 run: make
32 - name: make install 32 - name: make install
diff --git a/Makefile.in b/Makefile.in
index 6be62cb6e..17bd76464 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -31,7 +31,7 @@ SBOX_APPS_NON_DUMPABLE = src/fcopy/fcopy src/fldd/fldd src/fnet/fnet src/fnetfil
31MYDIRS = src/lib $(MAN_SRC) $(COMPLETIONDIRS) 31MYDIRS = src/lib $(MAN_SRC) $(COMPLETIONDIRS)
32MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so src/libtracelog/libtracelog.so 32MYLIBS = src/libpostexecseccomp/libpostexecseccomp.so src/libtrace/libtrace.so src/libtracelog/libtracelog.so
33COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion 33COMPLETIONS = src/zsh_completion/_firejail src/bash_completion/firejail.bash_completion
34MANPAGES = firejail.1 firemon.1 firecfg.1 firejail-profile.5 firejail-login.5 firejail-users.5 jailcheck.5 34MANPAGES = firejail.1 firemon.1 firecfg.1 firejail-profile.5 firejail-login.5 firejail-users.5 jailcheck.1
35SBOX_APPS_NON_DUMPABLE += src/fsec-optimize/fsec-optimize src/fsec-print/fsec-print src/fseccomp/fseccomp 35SBOX_APPS_NON_DUMPABLE += src/fsec-optimize/fsec-optimize src/fsec-print/fsec-print src/fseccomp/fseccomp
36SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32 36SECCOMP_FILTERS = seccomp seccomp.debug seccomp.32 seccomp.block_secondary seccomp.mdwx seccomp.mdwx.32
37ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS) 37ALL_ITEMS = $(APPS) $(SBOX_APPS) $(SBOX_APPS_NON_DUMPABLE) $(MYLIBS)
diff --git a/README b/README
index 522fdc34a..c6eedbe5f 100644
--- a/README
+++ b/README
@@ -80,6 +80,8 @@ Akhil Hans Maulloo (https://github.com/kouul)
80Albin Kauffmann (https://github.com/albinou) 80Albin Kauffmann (https://github.com/albinou)
81 - Firefox and Chromium profile fixes 81 - Firefox and Chromium profile fixes
82 - info to allow screen sharing in profiles 82 - info to allow screen sharing in profiles
83Alex Leahu (https://github.com/alxjsn)
84 - fix screen sharing configuration on Wayland
83Alexey Kuznetsov (kuznet@ms2.inr.ac.ru) 85Alexey Kuznetsov (kuznet@ms2.inr.ac.ru)
84 - src/lib/libnetlink.c extracted from iproute2 software package 86 - src/lib/libnetlink.c extracted from iproute2 software package
85Aleksey Manevich (https://github.com/manevich) 87Aleksey Manevich (https://github.com/manevich)
@@ -109,6 +111,7 @@ Amin Vakil (https://github.com/aminvakil)
109 - whois profile fix 111 - whois profile fix
110 - added profile for strawberry 112 - added profile for strawberry
111 - w3m profile fix 113 - w3m profile fix
114 - disable seccomp in wireshark profile
112Andreas Hunkeler (https://github.com/Karneades) 115Andreas Hunkeler (https://github.com/Karneades)
113 - Add profile for offical Linux Teams application 116 - Add profile for offical Linux Teams application
114Andrey Alekseenko (https://github.com/al42and) 117Andrey Alekseenko (https://github.com/al42and)
@@ -203,6 +206,7 @@ Bundy01 (https://github.com/Bundy01)
203 - fixup geary 206 - fixup geary
204 - add gradio profile 207 - add gradio profile
205 - update virtualbox.profile 208 - update virtualbox.profile
209 - Quodlibet profile
206BytesTuner (https://github.com/BytesTuner) 210BytesTuner (https://github.com/BytesTuner)
207 - provided keepassxc profile 211 - provided keepassxc profile
208caoliver (https://github.com/caoliver) 212caoliver (https://github.com/caoliver)
@@ -326,6 +330,7 @@ Florian Begusch (https://github.com/florianbegusch)
326 - (la)tex profiles 330 - (la)tex profiles
327 - fixed transmission-common.profile 331 - fixed transmission-common.profile
328 - fixed standardnotes-desktop.profile 332 - fixed standardnotes-desktop.profile
333 - fix jailprober.py
329floxo (https://github.com/floxo) 334floxo (https://github.com/floxo)
330 - fixed qml disk cache issue 335 - fixed qml disk cache issue
331Franco (nextime) Lanza (https://github.com/nextime) 336Franco (nextime) Lanza (https://github.com/nextime)
@@ -435,6 +440,8 @@ hamzadis (https://github.com/hamzadis)
435 - added --overlay-named=name and --overlay-path=path 440 - added --overlay-named=name and --overlay-path=path
436Hans-Christoph Steiner (https://github.com/eighthave) 441Hans-Christoph Steiner (https://github.com/eighthave)
437 - added xournal profile 442 - added xournal profile
443Harald Kubota (https://github.com/haraldkubota)
444 - zsh completion
438hawkey116477 (https://github.com/hawkeye116477) 445hawkey116477 (https://github.com/hawkeye116477)
439 - added Waterfox profile 446 - added Waterfox profile
440 - updated Cyberfox profile 447 - updated Cyberfox profile
@@ -467,6 +474,8 @@ irregulator (https://github.com/irregulator)
467Irvine (https://github.com/Irvinehimself) 474Irvine (https://github.com/Irvinehimself)
468 - added conky profile 475 - added conky profile
469 - added ping, bsdtar, makepkg (Arch), archaudit-report, cower (Arch) profiles 476 - added ping, bsdtar, makepkg (Arch), archaudit-report, cower (Arch) profiles
477Ivan (https://github.com/ordinary-dev)
478 - fix telegram profile
470Ivan Kozik (https://github.com/ivan) 479Ivan Kozik (https://github.com/ivan)
471 - speed up sandbox exit 480 - speed up sandbox exit
472Jaykishan Mutkawoa (https://github.com/jmutkawoa) 481Jaykishan Mutkawoa (https://github.com/jmutkawoa)
@@ -496,6 +505,7 @@ Jean-Philippe Eisenbarth (https://github.com/jpeisenbarth)
496 - fixed spotify.profile 505 - fixed spotify.profile
497Jeff Squyres (https://github.com/jsquyres) 506Jeff Squyres (https://github.com/jsquyres)
498 - various manpage fixes 507 - various manpage fixes
508 - cmdline.c: optionally quote the resulting command line
499Jericho (https://github.com/attritionorg) 509Jericho (https://github.com/attritionorg)
500 - spelling 510 - spelling
501Jesse Smith (https://github.com/slicer69) 511Jesse Smith (https://github.com/slicer69)
@@ -520,6 +530,7 @@ Jose Riha (https://github.com/jose1711)
520 - Add davfs2 secrets file to blacklist 530 - Add davfs2 secrets file to blacklist
521 - Add profile for udiskie 531 - Add profile for udiskie
522 - fix udiskie.profile 532 - fix udiskie.profile
533 - improve hints for allowing browser access to Gnome extensions connector
523jrabe (https://github.com/jrabe) 534jrabe (https://github.com/jrabe)
524 - disallow access to kdbx files 535 - disallow access to kdbx files
525 - Epiphany profile 536 - Epiphany profile
@@ -555,6 +566,7 @@ Kishore96in (https://github.com/Kishore96in)
555 - jitsi-meet-desktop profile 566 - jitsi-meet-desktop profile
556 - konversatin profile fix 567 - konversatin profile fix
557 - added Neochat profile 568 - added Neochat profile
569 - added whitelist-1793-workaround.inc
558KOLANICH (https://github.com/KOLANICH) 570KOLANICH (https://github.com/KOLANICH)
559 - added symlink fixer fix_private-bin.py in contrib section 571 - added symlink fixer fix_private-bin.py in contrib section
560 - update fix_private-bin.py 572 - update fix_private-bin.py
@@ -564,6 +576,10 @@ kortewegdevries (https://github.com/kortewegdevries)
564 - whitelisting evolution, kmail 576 - whitelisting evolution, kmail
565Kristóf Marussy (https://github.com/kris7t) 577Kristóf Marussy (https://github.com/kris7t)
566 - dns support 578 - dns support
579kuesji koesnu (https://github.com/kuesji)
580 - unit suffixes for rlimit-fsize and rlimit-as
581 - util.c and firejail.h fixes
582 - better parser for size strings
567Kunal Mehta (https://github.com/legoktm) 583Kunal Mehta (https://github.com/legoktm)
568 - converted all links to https in manpages 584 - converted all links to https in manpages
569laniakea64 (https://github.com/laniakea64) 585laniakea64 (https://github.com/laniakea64)
@@ -587,6 +603,8 @@ Lukáš Krejčí (https://github.com/lskrejci)
587 - fixed parsing of --keep-var-tmp 603 - fixed parsing of --keep-var-tmp
588luzpaz (https://github.com/luzpaz) 604luzpaz (https://github.com/luzpaz)
589 - code spelling fixes 605 - code spelling fixes
606lxeiqr (https://github.com/lxeiqr)
607 - fix sndio support
590Mace Muilman (https://github.com/mace015) 608Mace Muilman (https://github.com/mace015)
591 - google-chrome{,beta,unstable} flags 609 - google-chrome{,beta,unstable} flags
592maces (https://github.com/maces) 610maces (https://github.com/maces)
@@ -610,6 +628,8 @@ Mattias Wadman (https://github.com/wader)
610 - seccomp errno filter support 628 - seccomp errno filter support
611Matthew Gyurgyik (https://github.com/pyther) 629Matthew Gyurgyik (https://github.com/pyther)
612 - rpm spec and several fixes 630 - rpm spec and several fixes
631Matthew Cline (https://github.com/matthew-cline)
632 - steam profile and dropbox profile fixes
613matu3ba (https://github.com/matu3ba) 633matu3ba (https://github.com/matu3ba)
614 - evince hardening, dbus removed 634 - evince hardening, dbus removed
615 - fix dia profile 635 - fix dia profile
@@ -643,18 +663,28 @@ Neo00001 (https://github.com/Neo00001)
643 - update telegram profile 663 - update telegram profile
644 - add spectacle profile 664 - add spectacle profile
645 - add kdiff3 profile 665 - add kdiff3 profile
666NetSysFire (https://github.com/NetSysFire)
667 - update weechat profile
646Nick Fox (https://github.com/njfox) 668Nick Fox (https://github.com/njfox)
647 - add a profile alias for code-oss 669 - add a profile alias for code-oss
648 - add code-oss config directory 670 - add code-oss config directory
649 - fix wire-desktop.profile on arch 671 - fix wire-desktop.profile on arch
650NickMolloy (https://github.com/NickMolloy) 672NickMolloy (https://github.com/NickMolloy)
651 - ARP address length fix 673 - ARP address length fix
674Nico (https://github.com/dr460nf1r3)
675 - added FireDragon profile
676Nicola Davide Mannarelli (https://github.com/nidamanx)
677 - fix "Could not create AF_NETLINK socket"
678 - added nextcloud profiles
679 - Firefox, KeepassXC, Telegram fixes
652Niklas Haas (https://github.com/haasn) 680Niklas Haas (https://github.com/haasn)
653 - blacklisting for keybase.io's client 681 - blacklisting for keybase.io's client
654Niklas Goerke (https://github.com/Niklas974) 682Niklas Goerke (https://github.com/Niklas974)
655 - update QOwnNotes profile 683 - update QOwnNotes profile
656Nikos Chantziaras (https://github.com/realnc) 684Nikos Chantziaras (https://github.com/realnc)
657 - fix audio support for Discord 685 - fix audio support for Discord
686nolanl (https://github.com/nolanl)
687 - added localtime to signal-desktop's profile
658nyancat18 (https://github.com/nyancat18) 688nyancat18 (https://github.com/nyancat18)
659 - added ardour4, dooble, karbon, krita profiles 689 - added ardour4, dooble, karbon, krita profiles
660Ondra Nekola (https://github.com/satai) 690Ondra Nekola (https://github.com/satai)
@@ -702,6 +732,8 @@ Petter Reinholdtsen (pere@hungry.com)
702PharmaceuticalCobweb (https://github.com/PharmaceuticalCobweb) 732PharmaceuticalCobweb (https://github.com/PharmaceuticalCobweb)
703 - fix quiterss profile 733 - fix quiterss profile
704 - added profile for gnome-ring 734 - added profile for gnome-ring
735pholodniak (https://github.com/pholodniak)
736 - profstats fixes
705pianoslum (https://github.com/pianoslum) 737pianoslum (https://github.com/pianoslum)
706 - nodbus breaking evince two-page-view warning 738 - nodbus breaking evince two-page-view warning
707pirate486743186 (https://github.com/pirate486743186) 739pirate486743186 (https://github.com/pirate486743186)
@@ -709,6 +741,18 @@ pirate486743186 (https://github.com/pirate486743186)
709 - mpsyt profile 741 - mpsyt profile
710 - fix youtube-dl and mpv 742 - fix youtube-dl and mpv
711 - fix gnome-mpv profile 743 - fix gnome-mpv profile
744 - fix gunzip profile
745 - reorganizing youtube-viewers
746 - fix pluma profile
747 - whitelist /var/lib/aspell
748 - mcomix fixes
749 - fixing engrampa profile
750 - adding qcomicbook and pipe-viewer in disable-programs
751 - newsboat/newsbeuter profiles
752 - fix atril profile
753 - reorganizing links browsers
754 - added rtv, alpine, mcomix, qcomicbook, googler, ddgr profiles
755 - w3m, zahura, profile.template fixes
712Pixel Fairy (https://github.com/xahare) 756Pixel Fairy (https://github.com/xahare)
713 - added fjclip.py, fjdisplay.py and fjresize.py in contrib section 757 - added fjclip.py, fjdisplay.py and fjresize.py in contrib section
714PizzaDude (https://github.com/pizzadude) 758PizzaDude (https://github.com/pizzadude)
@@ -745,6 +789,7 @@ Rahul Golam (https://github.com/technoLord)
745RandomVoid (https://github.com/RandomVoid) 789RandomVoid (https://github.com/RandomVoid)
746 - fix building C# projects in Godot 790 - fix building C# projects in Godot
747 - fix Lutris profile 791 - fix Lutris profile
792 - fix running games with enabled Feral GameMode in Lutris
748Raphaël Droz (https://github.com/drzraf) 793Raphaël Droz (https://github.com/drzraf)
749 - zoom profile fixes 794 - zoom profile fixes
750realaltffour (https://github.com/realaltffour) 795realaltffour (https://github.com/realaltffour)
@@ -786,6 +831,8 @@ rusty-snake (https://github.com/rusty-snake)
786 - some typo fixes 831 - some typo fixes
787 - added profile templates 832 - added profile templates
788 - added sort.py to contrib 833 - added sort.py to contrib
834sak96 (https://github.com/sak96)
835 - discord profile fixes
789Salvo 'LtWorf' Tomaselli (https://github.com/ltworf) 836Salvo 'LtWorf' Tomaselli (https://github.com/ltworf)
790 - fixed ktorrent profile 837 - fixed ktorrent profile
791sarneaud (https://github.com/sarneaud) 838sarneaud (https://github.com/sarneaud)
@@ -814,6 +861,8 @@ sinkuu (https://github.com/sinkuu)
814 - fix symlink invocation for programs placing symlinks in $PATH 861 - fix symlink invocation for programs placing symlinks in $PATH
815Simo Piiroinen (https://github.com/spiiroin) 862Simo Piiroinen (https://github.com/spiiroin)
816 - Jolla/SailfishOS patches 863 - Jolla/SailfishOS patches
864slowpeek (https://github.com/slowpeek)
865 - refine appimage example in docs
817smitsohu (https://github.com/smitsohu) 866smitsohu (https://github.com/smitsohu)
818 - read-only kde4 services directory 867 - read-only kde4 services directory
819 - enhanced mediathekview profile 868 - enhanced mediathekview profile
@@ -939,6 +988,10 @@ Topi Miettinen (https://github.com/topimiettinen)
939 - improve loading of seccomp filter and memory-deny-write-execute feature 988 - improve loading of seccomp filter and memory-deny-write-execute feature
940 - private-lib feature 989 - private-lib feature
941 - make --nodbus block also system D-Bus socket 990 - make --nodbus block also system D-Bus socket
991Ted Robertson (https://github.com/tredondo)
992 - webstorm profile fixes
993 - added bcompare profile
994 - various documentation fixes
942user1024 (user1024@tut.by) 995user1024 (user1024@tut.by)
943 - electron profile whitelisting 996 - electron profile whitelisting
944 - fixed Rocket.Chat profile 997 - fixed Rocket.Chat profile
@@ -1003,6 +1056,10 @@ Vladimir Schowalter (https://github.com/VladimirSchowalter20)
1003 - apparmor profile enhancements 1056 - apparmor profile enhancements
1004 - various KDE profile enhancements 1057 - various KDE profile enhancements
1005 read-only kde5 services directory 1058 read-only kde5 services directory
1059Vladislav Nepogodin (https://github.com/vnepogodin)
1060 - added Librewolf profiles
1061 - added Sway profile
1062 - fix CLion profile
1006xee5ch (https://github.com/xee5ch) 1063xee5ch (https://github.com/xee5ch)
1007 - skypeforlinux profile 1064 - skypeforlinux profile
1008Ypnose (https://github.com/Ypnose) 1065Ypnose (https://github.com/Ypnose)
diff --git a/README.md b/README.md
index e9e8f8c37..c635bf811 100644
--- a/README.md
+++ b/README.md
@@ -126,18 +126,18 @@ $ cd firejail
126$ ./configure && make && sudo make install-strip 126$ ./configure && make && sudo make install-strip
127````` 127`````
128On Debian/Ubuntu you will need to install git and gcc compiler. AppArmor 128On Debian/Ubuntu you will need to install git and gcc compiler. AppArmor
129development libraries and pkg-config are required when using --apparmor 129development libraries and pkg-config are required when using `--apparmor`
130./configure option: 130./configure option:
131````` 131`````
132$ sudo apt-get install git build-essential libapparmor-dev pkg-config gawk 132$ sudo apt-get install git build-essential libapparmor-dev pkg-config gawk
133````` 133`````
134For --selinux option, add libselinux1-dev (libselinux-devel for Fedora). 134For `--selinux` option, add libselinux1-dev (libselinux-devel for Fedora).
135 135
136Detailed information on using firejail from git is available on the [wiki](https://github.com/netblue30/firejail/wiki/Using-firejail-from-git). 136Detailed information on using firejail from git is available on the [wiki](https://github.com/netblue30/firejail/wiki/Using-firejail-from-git).
137 137
138## Running the sandbox 138## Running the sandbox
139 139
140To start the sandbox, prefix your command with firejail: 140To start the sandbox, prefix your command with `firejail`:
141 141
142````` 142`````
143$ firejail firefox # starting Mozilla Firefox 143$ firejail firefox # starting Mozilla Firefox
@@ -145,7 +145,7 @@ $ firejail transmission-gtk # starting Transmission BitTorrent
145$ firejail vlc # starting VideoLAN Client 145$ firejail vlc # starting VideoLAN Client
146$ sudo firejail /etc/init.d/nginx start 146$ sudo firejail /etc/init.d/nginx start
147````` 147`````
148Run "firejail --list" in a terminal to list all active sandboxes. Example: 148Run `firejail --list` in a terminal to list all active sandboxes. Example:
149````` 149`````
150$ firejail --list 150$ firejail --list
1511617:netblue:/usr/bin/firejail /usr/bin/firefox-esr 1511617:netblue:/usr/bin/firejail /usr/bin/firefox-esr
@@ -188,110 +188,19 @@ Use this issue to request new profiles: [#1139](https://github.com/netblue30/fir
188You can also use this tool to get a list of syscalls needed by a program: [contrib/syscalls.sh](contrib/syscalls.sh). 188You can also use this tool to get a list of syscalls needed by a program: [contrib/syscalls.sh](contrib/syscalls.sh).
189 189
190We also keep a list of profile fixes for previous released versions in [etc-fixes](https://github.com/netblue30/firejail/tree/master/etc-fixes) directory. 190We also keep a list of profile fixes for previous released versions in [etc-fixes](https://github.com/netblue30/firejail/tree/master/etc-fixes) directory.
191`````
192 191
193````` 192## Latest released version: 0.9.66
194## Latest released version: 0.9.64
195 193
196## Current development version: 0.9.65 194## Current development version: 0.9.67
197 195
198Milestone page: https://github.com/netblue30/firejail/milestone/1 196Milestone page: https://github.com/netblue30/firejail/milestone/1
199Release discussion: https://github.com/netblue30/firejail/issues/3696 197Release discussion: https://github.com/netblue30/firejail/issues/3696
200 198
201### jailcheck 199Moving from whitelist/blacklist to allow/deny is under way! We are still open to other options, so it might change!
202`````
203JAILCHECK(1) JAILCHECK man page JAILCHECK(1)
204
205NAME
206 jailcheck - Simple utility program to test running sandboxes
207
208SYNOPSIS
209 sudo jailcheck [OPTIONS] [directory]
210
211DESCRIPTION
212 jailcheck attaches itself to all sandboxes started by the user and per‐
213 forms some basic tests on the sandbox filesystem:
214
215 1. Virtual directories
216 jailcheck extracts a list with the main virtual directories in‐
217 stalled by the sandbox. These directories are build by firejail
218 at startup using --private* and --whitelist commands.
219
220 2. Noexec test
221 jailcheck inserts executable programs in /home/username, /tmp,
222 and /var/tmp directories and tries to run them from inside the
223 sandbox, thus testing if the directory is executable or not.
224
225 3. Read access test
226 jailcheck creates test files in the directories specified by the
227 user and tries to read them from inside the sandbox.
228
229 4. AppArmor test
230
231 5. Seccomp test
232
233 The program is started as root using sudo.
234
235OPTIONS
236 --debug
237 Print debug messages.
238
239 -?, --help
240 Print options and exit.
241
242 --version
243 Print program version and exit.
244 200
245 [directory] 201The old whitelist/blacklist will remain as aliasses for the next one or two releases
246 One or more directories in user home to test for read access. 202in order to give users a chance to switch their local profiles.
247 ~/.ssh and ~/.gnupg are tested by default. 203The latest discussion on this issue is here: https://github.com/netblue30/firejail/issues/4379
248
249OUTPUT
250 For each sandbox detected we print the following line:
251
252 PID:USER:Sandbox Name:Command
253
254 It is followed by relevant sandbox information, such as the virtual di‐
255 rectories and various warnings.
256
257EXAMPLE
258 $ sudo jailcheck
259 2014:netblue::firejail /usr/bin/gimp
260 Virtual dirs: /tmp, /var/tmp, /dev, /usr/share,
261 Warning: I can run programs in /home/netblue
262
263 2055:netblue::firejail /usr/bin/ssh -X netblue@x.y.z.net
264 Virtual dirs: /var/tmp, /dev, /usr/share, /run/user/1000,
265 Warning: I can read ~/.ssh
266
267 2186:netblue:libreoffice:firejail --appimage /opt/LibreOffice-fresh.ap‐
268 pimage
269 Virtual dirs: /tmp, /var/tmp, /dev,
270
271 26090:netblue::/usr/bin/firejail /opt/firefox/firefox
272 Virtual dirs: /home/netblue, /tmp, /var/tmp, /dev, /etc, /usr/share,
273 /run/user/1000,
274
275 26160:netblue:tor:firejail --private=~/tor-browser_en-US ./start-tor
276 Warning: AppArmor not enabled
277 Virtual dirs: /home/netblue, /tmp, /var/tmp, /dev, /etc, /bin,
278 /usr/share, /run/user/1000,
279 Warning: I can run programs in /home/netblue
280
281LICENSE
282 This program is free software; you can redistribute it and/or modify it
283 under the terms of the GNU General Public License as published by the
284 Free Software Foundation; either version 2 of the License, or (at your
285 option) any later version.
286
287 Homepage: https://firejail.wordpress.com
288
289SEE ALSO
290 firejail(1), firemon(1), firecfg(1), firejail-profile(5), firejail-lo‐
291 gin(5), firejail-users(5),
292
2930.9.65 May 2021 JAILCHECK(1)
294`````
295 204
296### Profile Statistics 205### Profile Statistics
297 206
@@ -300,39 +209,30 @@ A small tool to print profile statistics. Compile as usual and run in /etc/profi
300$ sudo cp src/profstats/profstats /etc/firejail/. 209$ sudo cp src/profstats/profstats /etc/firejail/.
301$ cd /etc/firejail 210$ cd /etc/firejail
302$ ./profstats *.profile 211$ ./profstats *.profile
303Stats: 212 profiles 1150
304 profiles 1135 213 include local profile 1150 (include profile-name.local)
305 include local profile 1135 (include profile-name.local) 214 include globals 1120 (include globals.local)
306 include globals 1106 (include globals.local) 215 blacklist ~/.ssh 1026 (include disable-common.inc)
307 blacklist ~/.ssh 1009 (include disable-common.inc) 216 seccomp 1050
308 seccomp 1035 217 capabilities 1146
309 capabilities 1130 218 noexec 1030 (include disable-exec.inc)
310 noexec 1011 (include disable-exec.inc) 219 noroot 959
311 noroot 944 220 memory-deny-write-execute 253
312 memory-deny-write-execute 242 221 apparmor 681
313 apparmor 667 222 private-bin 667
314 private-bin 635 223 private-dev 1009
315 private-dev 992 224 private-etc 523
316 private-etc 508 225 private-tmp 883
317 private-tmp 866 226 whitelist home directory 547
318 whitelist home directory 542 227 whitelist var 818 (include whitelist-var-common.inc)
319 whitelist var 799 (include whitelist-var-common.inc) 228 whitelist run/user 616 (include whitelist-runuser-common.inc
320 whitelist run/user 597 (include whitelist-runuser-common.inc
321 or blacklist ${RUNUSER}) 229 or blacklist ${RUNUSER})
322 whitelist usr/share 569 (include whitelist-usr-share-common.inc 230 whitelist usr/share 591 (include whitelist-usr-share-common.inc
323 net none 389 231 net none 391
324 dbus-user none 619 232 dbus-user none 641
325 dbus-user filter 105 233 dbus-user filter 105
326 dbus-system none 770 234 dbus-system none 792
327 dbus-system filter 7 235 dbus-system filter 7
328``` 236```
329 237
330### New profiles: 238### New profiles:
331
332vmware-view, display-im6.q16, ipcalc, ipcalc-ng, ebook-convert, ebook-edit, ebook-meta, ebook-polish, lzop,
333avidemux, calligragemini, vmware-player, vmware-workstation, gget, com.github.phase1geo.minder, nextcloud-desktop,
334pcsxr, PPSSPPSDL, openmw, openmw-launcher, jami-gnome, PCSX2, bcompare, b2sum, cksum, md5sum, sha1sum, sha224sum,
335sha256sum, sha384sum, sha512sum, sum, librewold-nightly, Quodlibet, tmux, sway, alienarena, alienarena-wrapper,
336ballbuster, ballbuster-wrapper, colorful, colorful-wrapper, gl-117, gl-117-wrapper, glaxium, glaxium-wrapper,
337pinball, pinball-wrapper, etr-wrapper, neverball-wrapper, neverputt-wrapper, supertuxkart-wrapper, firedragon
338neochat, node, nvm, cargo
diff --git a/RELNOTES b/RELNOTES
index 117a019e3..905c25096 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -1,4 +1,18 @@
1firejail (0.9.65) baseline; urgency=low 1firejail (0.9.67) baseline; urgency=low
2 * work in progress
3 * deprecated --disable-whitelist at compile time
4 * deprecated whitelist=yes/no in /etc/firejail/firejail.config
5 -- netblue30 <netblue30@yahoo.com> Mon, 28 Jun 2021 09:00:00 -0500
6
7firejail (0.9.66) baseline; urgency=low
8 * deprecated --audit options, relpaced by jailcheck utility
9 * deprecated follow-symlink-as-user from firejail.config
10 * new firejail.config settings: private-bin, private-etc
11 * new firejail.config settings: private-opt, private-srv
12 * new firejail.config settings: whitelist-disable-topdir
13 * new firejail.config settings: seccomp-filter-add
14 * removed kcmp syscall from seccomp default filter
15 * rename --noautopulse to keep-config-pulse
2 * filtering environment variables 16 * filtering environment variables
3 * zsh completion 17 * zsh completion
4 * command line: --mkdir, --mkfile 18 * command line: --mkdir, --mkfile
@@ -7,7 +21,6 @@ firejail (0.9.65) baseline; urgency=low
7 * private-lib rework 21 * private-lib rework
8 * whitelist rework 22 * whitelist rework
9 * jailtest utility for testing running sandboxes 23 * jailtest utility for testing running sandboxes
10 * removed --audit options, relpaced by jailtest
11 * capabilities list update 24 * capabilities list update
12 * faccessat2 syscall support 25 * faccessat2 syscall support
13 * --private-dev keeps /dev/input 26 * --private-dev keeps /dev/input
@@ -18,6 +31,7 @@ firejail (0.9.65) baseline; urgency=low
18 * compile time: --enable-lts 31 * compile time: --enable-lts
19 * subdirs support in private-etc 32 * subdirs support in private-etc
20 * input devices support in private-dev, --no-input 33 * input devices support in private-dev, --no-input
34 * support trailing comments on profile lines
21 * new profiles: vmware-view, display-im6.q16, ipcalc, ipcalc-ng 35 * new profiles: vmware-view, display-im6.q16, ipcalc, ipcalc-ng
22 * ebook-convert, ebook-edit, ebook-meta, ebook-polish, lzop, 36 * ebook-convert, ebook-edit, ebook-meta, ebook-polish, lzop,
23 * avidemux, calligragemini, vmware-player, vmware-workstation 37 * avidemux, calligragemini, vmware-player, vmware-workstation
@@ -29,8 +43,9 @@ firejail (0.9.65) baseline; urgency=low
29 * colorful, colorful-wrapper, gl-117, gl-117-wrapper, glaxium, 43 * colorful, colorful-wrapper, gl-117, gl-117-wrapper, glaxium,
30 * glaxium-wrapper, pinball, pinball-wrapper, etr-wrapper, firedragon 44 * glaxium-wrapper, pinball, pinball-wrapper, etr-wrapper, firedragon
31 * neverball-wrapper, neverputt-wrapper, supertuxkart-wrapper, neochat, 45 * neverball-wrapper, neverputt-wrapper, supertuxkart-wrapper, neochat,
32 * cargo 46 * cargo, LibreCAD, blobby, funnyboat, pipe-viewer, gtk-pipe-viewer
33 -- netblue30 <netblue30@yahoo.com> Tue, 9 Feb 2021 09:00:00 -0500 47 * links2, xlinks2, googler, ddgr, tin
48 -- netblue30 <netblue30@yahoo.com> Mon, 28 Jun 2021 09:00:00 -0500
34 49
35firejail (0.9.64.4) baseline; urgency=low 50firejail (0.9.64.4) baseline; urgency=low
36 * disabled overlayfs, pending multiple fixes (CVE-2021-26910) 51 * disabled overlayfs, pending multiple fixes (CVE-2021-26910)
diff --git a/configure b/configure
index 2acf04634..9e883191a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
1#! /bin/sh 1#! /bin/sh
2# Guess values for system-dependent variables and create Makefiles. 2# Guess values for system-dependent variables and create Makefiles.
3# Generated by GNU Autoconf 2.69 for firejail 0.9.65. 3# Generated by GNU Autoconf 2.69 for firejail 0.9.67.
4# 4#
5# Report bugs to <netblue30@protonmail.com>. 5# Report bugs to <netblue30@protonmail.com>.
6# 6#
@@ -580,8 +580,8 @@ MAKEFLAGS=
580# Identity of this package. 580# Identity of this package.
581PACKAGE_NAME='firejail' 581PACKAGE_NAME='firejail'
582PACKAGE_TARNAME='firejail' 582PACKAGE_TARNAME='firejail'
583PACKAGE_VERSION='0.9.65' 583PACKAGE_VERSION='0.9.67'
584PACKAGE_STRING='firejail 0.9.65' 584PACKAGE_STRING='firejail 0.9.67'
585PACKAGE_BUGREPORT='netblue30@protonmail.com' 585PACKAGE_BUGREPORT='netblue30@protonmail.com'
586PACKAGE_URL='https://firejail.wordpress.com' 586PACKAGE_URL='https://firejail.wordpress.com'
587 587
@@ -634,7 +634,6 @@ HAVE_GCOV
634BUSYBOX_WORKAROUND 634BUSYBOX_WORKAROUND
635HAVE_FATAL_WARNINGS 635HAVE_FATAL_WARNINGS
636HAVE_SUID 636HAVE_SUID
637HAVE_WHITELIST
638HAVE_FILE_TRANSFER 637HAVE_FILE_TRANSFER
639HAVE_X11 638HAVE_X11
640HAVE_USERNS 639HAVE_USERNS
@@ -726,7 +725,6 @@ enable_network
726enable_userns 725enable_userns
727enable_x11 726enable_x11
728enable_file_transfer 727enable_file_transfer
729enable_whitelist
730enable_suid 728enable_suid
731enable_fatal_warnings 729enable_fatal_warnings
732enable_busybox_workaround 730enable_busybox_workaround
@@ -1299,7 +1297,7 @@ if test "$ac_init_help" = "long"; then
1299 # Omit some internal or obsolete options to make the list less imposing. 1297 # Omit some internal or obsolete options to make the list less imposing.
1300 # This message is too long to be a string in the A/UX 3.1 sh. 1298 # This message is too long to be a string in the A/UX 3.1 sh.
1301 cat <<_ACEOF 1299 cat <<_ACEOF
1302\`configure' configures firejail 0.9.65 to adapt to many kinds of systems. 1300\`configure' configures firejail 0.9.67 to adapt to many kinds of systems.
1303 1301
1304Usage: $0 [OPTION]... [VAR=VALUE]... 1302Usage: $0 [OPTION]... [VAR=VALUE]...
1305 1303
@@ -1361,7 +1359,7 @@ fi
1361 1359
1362if test -n "$ac_init_help"; then 1360if test -n "$ac_init_help"; then
1363 case $ac_init_help in 1361 case $ac_init_help in
1364 short | recursive ) echo "Configuration of firejail 0.9.65:";; 1362 short | recursive ) echo "Configuration of firejail 0.9.67:";;
1365 esac 1363 esac
1366 cat <<\_ACEOF 1364 cat <<\_ACEOF
1367 1365
@@ -1369,7 +1367,7 @@ Optional Features:
1369 --disable-option-checking ignore unrecognized --enable/--with options 1367 --disable-option-checking ignore unrecognized --enable/--with options
1370 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) 1368 --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
1371 --enable-FEATURE[=ARG] include FEATURE [ARG=yes] 1369 --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
1372 --enable-analyzer enable GCC 10 static analyzer 1370 --enable-analyzer enable GCC static analyzer
1373 --enable-apparmor enable apparmor 1371 --enable-apparmor enable apparmor
1374 --enable-selinux SELinux labeling support 1372 --enable-selinux SELinux labeling support
1375 --disable-dbusproxy disable dbus proxy 1373 --disable-dbusproxy disable dbus proxy
@@ -1385,7 +1383,6 @@ Optional Features:
1385 --disable-userns disable user namespace 1383 --disable-userns disable user namespace
1386 --disable-x11 disable X11 sandboxing support 1384 --disable-x11 disable X11 sandboxing support
1387 --disable-file-transfer disable file transfer 1385 --disable-file-transfer disable file transfer
1388 --disable-whitelist disable whitelist
1389 --disable-suid install as a non-SUID executable 1386 --disable-suid install as a non-SUID executable
1390 --enable-fatal-warnings -W -Wall -Werror 1387 --enable-fatal-warnings -W -Wall -Werror
1391 --enable-busybox-workaround 1388 --enable-busybox-workaround
@@ -1481,7 +1478,7 @@ fi
1481test -n "$ac_init_help" && exit $ac_status 1478test -n "$ac_init_help" && exit $ac_status
1482if $ac_init_version; then 1479if $ac_init_version; then
1483 cat <<\_ACEOF 1480 cat <<\_ACEOF
1484firejail configure 0.9.65 1481firejail configure 0.9.67
1485generated by GNU Autoconf 2.69 1482generated by GNU Autoconf 2.69
1486 1483
1487Copyright (C) 2012 Free Software Foundation, Inc. 1484Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1783,7 +1780,7 @@ cat >config.log <<_ACEOF
1783This file contains any messages produced by compilers while 1780This file contains any messages produced by compilers while
1784running configure, to aid debugging if configure makes a mistake. 1781running configure, to aid debugging if configure makes a mistake.
1785 1782
1786It was created by firejail $as_me 0.9.65, which was 1783It was created by firejail $as_me 0.9.67, which was
1787generated by GNU Autoconf 2.69. Invocation command line was 1784generated by GNU Autoconf 2.69. Invocation command line was
1788 1785
1789 $ $0 $@ 1786 $ $0 $@
@@ -3171,7 +3168,7 @@ fi
3171{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mindirect_branch_thunk" >&5 3168{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mindirect_branch_thunk" >&5
3172$as_echo "$ax_cv_check_cflags___mindirect_branch_thunk" >&6; } 3169$as_echo "$ax_cv_check_cflags___mindirect_branch_thunk" >&6; }
3173if test "x$ax_cv_check_cflags___mindirect_branch_thunk" = xyes; then : 3170if test "x$ax_cv_check_cflags___mindirect_branch_thunk" = xyes; then :
3174 HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -mindirect-branch=thunk" 3171 HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -mindirect-branch=thunk"
3175 3172
3176else 3173else
3177 : 3174 :
@@ -3207,7 +3204,7 @@ fi
3207{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mretpoline" >&5 3204{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mretpoline" >&5
3208$as_echo "$ax_cv_check_cflags___mretpoline" >&6; } 3205$as_echo "$ax_cv_check_cflags___mretpoline" >&6; }
3209if test "x$ax_cv_check_cflags___mretpoline" = xyes; then : 3206if test "x$ax_cv_check_cflags___mretpoline" = xyes; then :
3210 HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -mretpoline" 3207 HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -mretpoline"
3211 3208
3212else 3209else
3213 : 3210 :
@@ -3243,7 +3240,7 @@ fi
3243{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstack_clash_protection" >&5 3240{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstack_clash_protection" >&5
3244$as_echo "$ax_cv_check_cflags___fstack_clash_protection" >&6; } 3241$as_echo "$ax_cv_check_cflags___fstack_clash_protection" >&6; }
3245if test "x$ax_cv_check_cflags___fstack_clash_protection" = xyes; then : 3242if test "x$ax_cv_check_cflags___fstack_clash_protection" = xyes; then :
3246 HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -fstack-clash-protection" 3243 HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -fstack-clash-protection"
3247 3244
3248else 3245else
3249 : 3246 :
@@ -3279,7 +3276,7 @@ fi
3279{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstack_protector_strong" >&5 3276{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstack_protector_strong" >&5
3280$as_echo "$ax_cv_check_cflags___fstack_protector_strong" >&6; } 3277$as_echo "$ax_cv_check_cflags___fstack_protector_strong" >&6; }
3281if test "x$ax_cv_check_cflags___fstack_protector_strong" = xyes; then : 3278if test "x$ax_cv_check_cflags___fstack_protector_strong" = xyes; then :
3282 HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -fstack-protector-strong" 3279 HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -fstack-protector-strong"
3283 3280
3284else 3281else
3285 : 3282 :
@@ -3293,7 +3290,7 @@ fi
3293 3290
3294if test "x$enable_analyzer" = "xyes"; then : 3291if test "x$enable_analyzer" = "xyes"; then :
3295 3292
3296 EXTRA_CFLAGS+=" -fanalyzer" 3293 EXTRA_CFLAGS="$EXTRA_CFLAGS -fanalyzer -Wno-analyzer-malloc-leak"
3297 3294
3298fi 3295fi
3299 3296
@@ -3515,7 +3512,7 @@ else
3515 AA_LIBS=$pkg_cv_AA_LIBS 3512 AA_LIBS=$pkg_cv_AA_LIBS
3516 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3513 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3517$as_echo "yes" >&6; } 3514$as_echo "yes" >&6; }
3518 EXTRA_CFLAGS+=" $AA_CFLAGS" && EXTRA_LDFLAGS+=" $AA_LIBS" 3515 EXTRA_CFLAGS="$EXTRA_CFLAGS $AA_CFLAGS" && EXTRA_LDFLAGS="$EXTRA_LDFLAGS $AA_LIBS"
3519fi 3516fi
3520 3517
3521 3518
@@ -3530,7 +3527,7 @@ fi
3530if test "x$enable_selinux" = "xyes"; then : 3527if test "x$enable_selinux" = "xyes"; then :
3531 3528
3532 HAVE_SELINUX="-DHAVE_SELINUX" 3529 HAVE_SELINUX="-DHAVE_SELINUX"
3533 EXTRA_LDFLAGS+=" -lselinux " 3530 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lselinux "
3534 3531
3535 3532
3536fi 3533fi
@@ -3747,19 +3744,6 @@ if test "x$enable_file_transfer" != "xno"; then :
3747 3744
3748fi 3745fi
3749 3746
3750HAVE_WHITELIST=""
3751# Check whether --enable-whitelist was given.
3752if test "${enable_whitelist+set}" = set; then :
3753 enableval=$enable_whitelist;
3754fi
3755
3756if test "x$enable_whitelist" != "xno"; then :
3757
3758 HAVE_WHITELIST="-DHAVE_WHITELIST"
3759
3760
3761fi
3762
3763HAVE_SUID="" 3747HAVE_SUID=""
3764# Check whether --enable-suid was given. 3748# Check whether --enable-suid was given.
3765if test "${enable_suid+set}" = set; then : 3749if test "${enable_suid+set}" = set; then :
@@ -3810,7 +3794,7 @@ fi
3810if test "x$enable_gcov" = "xyes"; then : 3794if test "x$enable_gcov" = "xyes"; then :
3811 3795
3812 HAVE_GCOV="--coverage -DHAVE_GCOV " 3796 HAVE_GCOV="--coverage -DHAVE_GCOV "
3813 EXTRA_LDFLAGS+=" -lgcov --coverage " 3797 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lgcov --coverage "
3814 3798
3815 3799
3816fi 3800fi
@@ -4910,7 +4894,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
4910# report actual input values of CONFIG_FILES etc. instead of their 4894# report actual input values of CONFIG_FILES etc. instead of their
4911# values after options handling. 4895# values after options handling.
4912ac_log=" 4896ac_log="
4913This file was extended by firejail $as_me 0.9.65, which was 4897This file was extended by firejail $as_me 0.9.67, which was
4914generated by GNU Autoconf 2.69. Invocation command line was 4898generated by GNU Autoconf 2.69. Invocation command line was
4915 4899
4916 CONFIG_FILES = $CONFIG_FILES 4900 CONFIG_FILES = $CONFIG_FILES
@@ -4964,7 +4948,7 @@ _ACEOF
4964cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 4948cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
4965ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 4949ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
4966ac_cs_version="\\ 4950ac_cs_version="\\
4967firejail config.status 0.9.65 4951firejail config.status 0.9.67
4968configured by $0, generated by GNU Autoconf 2.69, 4952configured by $0, generated by GNU Autoconf 2.69,
4969 with options \\"\$ac_cs_config\\" 4953 with options \\"\$ac_cs_config\\"
4970 4954
@@ -5560,47 +5544,48 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
5560fi 5544fi
5561 5545
5562 5546
5563echo 5547cat <<EOF
5564echo "Configuration options:" 5548
5565echo " prefix: $prefix" 5549Configuration options:
5566echo " sysconfdir: $sysconfdir" 5550 prefix: $prefix
5567echo " apparmor: $HAVE_APPARMOR" 5551 sysconfdir: $sysconfdir
5568echo " SELinux labeling support: $HAVE_SELINUX" 5552 apparmor: $HAVE_APPARMOR
5569echo " global config: $HAVE_GLOBALCFG" 5553 SELinux labeling support: $HAVE_SELINUX
5570echo " chroot: $HAVE_CHROOT" 5554 global config: $HAVE_GLOBALCFG
5571echo " network: $HAVE_NETWORK" 5555 chroot: $HAVE_CHROOT
5572echo " user namespace: $HAVE_USERNS" 5556 network: $HAVE_NETWORK
5573echo " X11 sandboxing support: $HAVE_X11" 5557 user namespace: $HAVE_USERNS
5574echo " whitelisting: $HAVE_WHITELIST" 5558 X11 sandboxing support: $HAVE_X11
5575echo " private home support: $HAVE_PRIVATE_HOME" 5559 private home support: $HAVE_PRIVATE_HOME
5576echo " file transfer support: $HAVE_FILE_TRANSFER" 5560 file transfer support: $HAVE_FILE_TRANSFER
5577echo " overlayfs support: $HAVE_OVERLAYFS" 5561 overlayfs support: $HAVE_OVERLAYFS
5578echo " DBUS proxy support: $HAVE_DBUSPROXY" 5562 DBUS proxy support: $HAVE_DBUSPROXY
5579echo " allow tmpfs as regular user: $HAVE_USERTMPFS" 5563 allow tmpfs as regular user: $HAVE_USERTMPFS
5580echo " enable --ouput logging: $HAVE_OUTPUT" 5564 enable --ouput logging: $HAVE_OUTPUT
5581echo " Manpage support: $HAVE_MAN" 5565 Manpage support: $HAVE_MAN
5582echo " firetunnel support: $HAVE_FIRETUNNEL" 5566 firetunnel support: $HAVE_FIRETUNNEL
5583echo " busybox workaround: $BUSYBOX_WORKAROUND" 5567 busybox workaround: $BUSYBOX_WORKAROUND
5584echo " Spectre compiler patch: $HAVE_SPECTRE" 5568 Spectre compiler patch: $HAVE_SPECTRE
5585echo " EXTRA_LDFLAGS: $EXTRA_LDFLAGS" 5569 EXTRA_LDFLAGS: $EXTRA_LDFLAGS
5586echo " EXTRA_CFLAGS: $EXTRA_CFLAGS" 5570 EXTRA_CFLAGS: $EXTRA_CFLAGS
5587echo " fatal warnings: $HAVE_FATAL_WARNINGS" 5571 fatal warnings: $HAVE_FATAL_WARNINGS
5588echo " Gcov instrumentation: $HAVE_GCOV" 5572 Gcov instrumentation: $HAVE_GCOV
5589echo " Install contrib scripts: $HAVE_CONTRIB_INSTALL" 5573 Install contrib scripts: $HAVE_CONTRIB_INSTALL
5590echo " Install as a SUID executable: $HAVE_SUID" 5574 Install as a SUID executable: $HAVE_SUID
5591echo " LTS: $HAVE_LTS" 5575 LTS: $HAVE_LTS
5592echo " Always enforce filters: $HAVE_FORCE_NONEWPRIVS" 5576 Always enforce filters: $HAVE_FORCE_NONEWPRIVS
5593echo 5577
5594 5578EOF
5595 5579
5596if test "$HAVE_LTS" = -DHAVE_LTS; then 5580if test "$HAVE_LTS" = -DHAVE_LTS; then
5597 echo 5581 cat <<\EOF
5598 echo 5582
5599 echo "*********************************************************"
5600 echo "* Warning: Long-term support (LTS) was enabled! *"
5601 echo "* Most compile-time options have bean rewritten! *"
5602 echo "*********************************************************"
5603 echo
5604 echo
5605fi
5606 5583
5584*********************************************************
5585* Warning: Long-term support (LTS) was enabled! *
5586* Most compile-time options have bean rewritten! *
5587*********************************************************
5588
5589
5590EOF
5591fi
diff --git a/configure.ac b/configure.ac
index 036b62484..1f8e802b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@
12# 12#
13 13
14AC_PREREQ([2.68]) 14AC_PREREQ([2.68])
15AC_INIT(firejail, 0.9.65, netblue30@protonmail.com, , https://firejail.wordpress.com) 15AC_INIT([firejail],[0.9.67],[netblue30@protonmail.com],[],[https://firejail.wordpress.com])
16AC_CONFIG_SRCDIR([src/firejail/main.c]) 16AC_CONFIG_SRCDIR([src/firejail/main.c])
17 17
18AC_CONFIG_MACRO_DIR([m4]) 18AC_CONFIG_MACRO_DIR([m4])
@@ -24,25 +24,25 @@ AC_PROG_RANLIB
24HAVE_SPECTRE="no" 24HAVE_SPECTRE="no"
25AX_CHECK_COMPILE_FLAG( 25AX_CHECK_COMPILE_FLAG(
26 [-mindirect-branch=thunk], 26 [-mindirect-branch=thunk],
27 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -mindirect-branch=thunk"] 27 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -mindirect-branch=thunk"]
28) 28)
29AX_CHECK_COMPILE_FLAG( 29AX_CHECK_COMPILE_FLAG(
30 [-mretpoline], 30 [-mretpoline],
31 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -mretpoline"] 31 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -mretpoline"]
32) 32)
33AX_CHECK_COMPILE_FLAG( 33AX_CHECK_COMPILE_FLAG(
34 [-fstack-clash-protection], 34 [-fstack-clash-protection],
35 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -fstack-clash-protection"] 35 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -fstack-clash-protection"]
36) 36)
37AX_CHECK_COMPILE_FLAG( 37AX_CHECK_COMPILE_FLAG(
38 [-fstack-protector-strong], 38 [-fstack-protector-strong],
39 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS+=" -fstack-protector-strong"] 39 [HAVE_SPECTRE="yes" && EXTRA_CFLAGS="$EXTRA_CFLAGS -fstack-protector-strong"]
40) 40)
41 41
42AC_ARG_ENABLE([analyzer], 42AC_ARG_ENABLE([analyzer],
43 AS_HELP_STRING([--enable-analyzer], [enable GCC 10 static analyzer])) 43 AS_HELP_STRING([--enable-analyzer], [enable GCC static analyzer]))
44AS_IF([test "x$enable_analyzer" = "xyes"], [ 44AS_IF([test "x$enable_analyzer" = "xyes"], [
45 EXTRA_CFLAGS+=" -fanalyzer" 45 EXTRA_CFLAGS="$EXTRA_CFLAGS -fanalyzer -Wno-analyzer-malloc-leak"
46]) 46])
47 47
48HAVE_APPARMOR="" 48HAVE_APPARMOR=""
@@ -50,7 +50,8 @@ AC_ARG_ENABLE([apparmor],
50 AS_HELP_STRING([--enable-apparmor], [enable apparmor])) 50 AS_HELP_STRING([--enable-apparmor], [enable apparmor]))
51AS_IF([test "x$enable_apparmor" = "xyes"], [ 51AS_IF([test "x$enable_apparmor" = "xyes"], [
52 HAVE_APPARMOR="-DHAVE_APPARMOR" 52 HAVE_APPARMOR="-DHAVE_APPARMOR"
53 PKG_CHECK_MODULES([AA], libapparmor, [EXTRA_CFLAGS+=" $AA_CFLAGS" && EXTRA_LDFLAGS+=" $AA_LIBS"]) 53 PKG_CHECK_MODULES([AA], libapparmor,
54 [EXTRA_CFLAGS="$EXTRA_CFLAGS $AA_CFLAGS" && EXTRA_LDFLAGS="$EXTRA_LDFLAGS $AA_LIBS"])
54 AC_SUBST(HAVE_APPARMOR) 55 AC_SUBST(HAVE_APPARMOR)
55]) 56])
56 57
@@ -59,7 +60,7 @@ AC_ARG_ENABLE([selinux],
59 AS_HELP_STRING([--enable-selinux], [SELinux labeling support])) 60 AS_HELP_STRING([--enable-selinux], [SELinux labeling support]))
60AS_IF([test "x$enable_selinux" = "xyes"], [ 61AS_IF([test "x$enable_selinux" = "xyes"], [
61 HAVE_SELINUX="-DHAVE_SELINUX" 62 HAVE_SELINUX="-DHAVE_SELINUX"
62 EXTRA_LDFLAGS+=" -lselinux " 63 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lselinux "
63 AC_SUBST(HAVE_SELINUX) 64 AC_SUBST(HAVE_SELINUX)
64]) 65])
65 66
@@ -176,14 +177,6 @@ AS_IF([test "x$enable_file_transfer" != "xno"], [
176 AC_SUBST(HAVE_FILE_TRANSFER) 177 AC_SUBST(HAVE_FILE_TRANSFER)
177]) 178])
178 179
179HAVE_WHITELIST=""
180AC_ARG_ENABLE([whitelist],
181 AS_HELP_STRING([--disable-whitelist], [disable whitelist]))
182AS_IF([test "x$enable_whitelist" != "xno"], [
183 HAVE_WHITELIST="-DHAVE_WHITELIST"
184 AC_SUBST(HAVE_WHITELIST)
185])
186
187HAVE_SUID="" 180HAVE_SUID=""
188AC_ARG_ENABLE([suid], 181AC_ARG_ENABLE([suid],
189 AS_HELP_STRING([--disable-suid], [install as a non-SUID executable])) 182 AS_HELP_STRING([--disable-suid], [install as a non-SUID executable]))
@@ -215,7 +208,7 @@ AC_ARG_ENABLE([gcov],
215 AS_HELP_STRING([--enable-gcov], [Gcov instrumentation])) 208 AS_HELP_STRING([--enable-gcov], [Gcov instrumentation]))
216AS_IF([test "x$enable_gcov" = "xyes"], [ 209AS_IF([test "x$enable_gcov" = "xyes"], [
217 HAVE_GCOV="--coverage -DHAVE_GCOV " 210 HAVE_GCOV="--coverage -DHAVE_GCOV "
218 EXTRA_LDFLAGS+=" -lgcov --coverage " 211 EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lgcov --coverage "
219 AC_SUBST(HAVE_GCOV) 212 AC_SUBST(HAVE_GCOV)
220]) 213])
221 214
@@ -303,53 +296,55 @@ if test "$prefix" = /usr; then
303fi 296fi
304 297
305AC_CONFIG_FILES([mkdeb.sh], [chmod +x mkdeb.sh]) 298AC_CONFIG_FILES([mkdeb.sh], [chmod +x mkdeb.sh])
306AC_OUTPUT(Makefile src/common.mk src/lib/Makefile src/fcopy/Makefile src/fnet/Makefile src/firejail/Makefile src/fnetfilter/Makefile \ 299AC_CONFIG_FILES([Makefile src/common.mk src/lib/Makefile src/fcopy/Makefile src/fnet/Makefile src/firejail/Makefile src/fnetfilter/Makefile \
307src/firemon/Makefile src/libtrace/Makefile src/libtracelog/Makefile src/firecfg/Makefile src/fbuilder/Makefile src/fsec-print/Makefile \ 300src/firemon/Makefile src/libtrace/Makefile src/libtracelog/Makefile src/firecfg/Makefile src/fbuilder/Makefile src/fsec-print/Makefile \
308src/ftee/Makefile src/fseccomp/Makefile src/fldd/Makefile src/libpostexecseccomp/Makefile src/fsec-optimize/Makefile \ 301src/ftee/Makefile src/fseccomp/Makefile src/fldd/Makefile src/libpostexecseccomp/Makefile src/fsec-optimize/Makefile \
309src/profstats/Makefile src/man/Makefile src/zsh_completion/Makefile src/bash_completion/Makefile test/Makefile \ 302src/profstats/Makefile src/man/Makefile src/zsh_completion/Makefile src/bash_completion/Makefile test/Makefile \
310src/jailcheck/Makefile) 303src/jailcheck/Makefile])
311 304AC_OUTPUT
312echo 305
313echo "Configuration options:" 306cat <<EOF
314echo " prefix: $prefix" 307
315echo " sysconfdir: $sysconfdir" 308Configuration options:
316echo " apparmor: $HAVE_APPARMOR" 309 prefix: $prefix
317echo " SELinux labeling support: $HAVE_SELINUX" 310 sysconfdir: $sysconfdir
318echo " global config: $HAVE_GLOBALCFG" 311 apparmor: $HAVE_APPARMOR
319echo " chroot: $HAVE_CHROOT" 312 SELinux labeling support: $HAVE_SELINUX
320echo " network: $HAVE_NETWORK" 313 global config: $HAVE_GLOBALCFG
321echo " user namespace: $HAVE_USERNS" 314 chroot: $HAVE_CHROOT
322echo " X11 sandboxing support: $HAVE_X11" 315 network: $HAVE_NETWORK
323echo " whitelisting: $HAVE_WHITELIST" 316 user namespace: $HAVE_USERNS
324echo " private home support: $HAVE_PRIVATE_HOME" 317 X11 sandboxing support: $HAVE_X11
325echo " file transfer support: $HAVE_FILE_TRANSFER" 318 private home support: $HAVE_PRIVATE_HOME
326echo " overlayfs support: $HAVE_OVERLAYFS" 319 file transfer support: $HAVE_FILE_TRANSFER
327echo " DBUS proxy support: $HAVE_DBUSPROXY" 320 overlayfs support: $HAVE_OVERLAYFS
328echo " allow tmpfs as regular user: $HAVE_USERTMPFS" 321 DBUS proxy support: $HAVE_DBUSPROXY
329echo " enable --ouput logging: $HAVE_OUTPUT" 322 allow tmpfs as regular user: $HAVE_USERTMPFS
330echo " Manpage support: $HAVE_MAN" 323 enable --ouput logging: $HAVE_OUTPUT
331echo " firetunnel support: $HAVE_FIRETUNNEL" 324 Manpage support: $HAVE_MAN
332echo " busybox workaround: $BUSYBOX_WORKAROUND" 325 firetunnel support: $HAVE_FIRETUNNEL
333echo " Spectre compiler patch: $HAVE_SPECTRE" 326 busybox workaround: $BUSYBOX_WORKAROUND
334echo " EXTRA_LDFLAGS: $EXTRA_LDFLAGS" 327 Spectre compiler patch: $HAVE_SPECTRE
335echo " EXTRA_CFLAGS: $EXTRA_CFLAGS" 328 EXTRA_LDFLAGS: $EXTRA_LDFLAGS
336echo " fatal warnings: $HAVE_FATAL_WARNINGS" 329 EXTRA_CFLAGS: $EXTRA_CFLAGS
337echo " Gcov instrumentation: $HAVE_GCOV" 330 fatal warnings: $HAVE_FATAL_WARNINGS
338echo " Install contrib scripts: $HAVE_CONTRIB_INSTALL" 331 Gcov instrumentation: $HAVE_GCOV
339echo " Install as a SUID executable: $HAVE_SUID" 332 Install contrib scripts: $HAVE_CONTRIB_INSTALL
340echo " LTS: $HAVE_LTS" 333 Install as a SUID executable: $HAVE_SUID
341echo " Always enforce filters: $HAVE_FORCE_NONEWPRIVS" 334 LTS: $HAVE_LTS
342echo 335 Always enforce filters: $HAVE_FORCE_NONEWPRIVS
343 336
337EOF
344 338
345if test "$HAVE_LTS" = -DHAVE_LTS; then 339if test "$HAVE_LTS" = -DHAVE_LTS; then
346 echo 340 cat <<\EOF
347 echo
348 echo "*********************************************************"
349 echo "* Warning: Long-term support (LTS) was enabled! *"
350 echo "* Most compile-time options have bean rewritten! *"
351 echo "*********************************************************"
352 echo
353 echo
354fi
355 341
342
343*********************************************************
344* Warning: Long-term support (LTS) was enabled! *
345* Most compile-time options have bean rewritten! *
346*********************************************************
347
348
349EOF
350fi
diff --git a/contrib/jail_prober.py b/contrib/jail_prober.py
index 9205d9b3e..f89f97ac4 100755
--- a/contrib/jail_prober.py
+++ b/contrib/jail_prober.py
@@ -70,6 +70,19 @@ def get_args(profile_path):
70 return profile 70 return profile
71 71
72 72
73def absolute_include(word):
74 home = os.environ['HOME']
75 path = home + '/.config/firejail/'
76
77 option, filename = word.split('=')
78 absolute_filename = path + filename
79
80 if not os.path.isfile(absolute_filename):
81 absolute_filename = '${CFG}/' + filename
82
83 return option + '=' + absolute_filename
84
85
73def arg_converter(arg_list, style): 86def arg_converter(arg_list, style):
74 """ 87 """
75 Convert between firejail command-line arguments (--example=something) and 88 Convert between firejail command-line arguments (--example=something) and
@@ -94,9 +107,12 @@ def arg_converter(arg_list, style):
94 if style == 'to_profile': 107 if style == 'to_profile':
95 new_args = [word[2:] for word in new_args] 108 new_args = [word[2:] for word in new_args]
96 109
97 # Remove invalid '--include' args if converting to command-line form
98 elif style == 'to_commandline': 110 elif style == 'to_commandline':
99 new_args = [word for word in new_args if 'include' not in word] 111 new_args = [
112 absolute_include(word) if word.startswith('--include')
113 else word
114 for word in new_args
115 ]
100 116
101 return new_args 117 return new_args
102 118
@@ -148,8 +164,12 @@ def run_firejail(program, all_args):
148 164
149 165
150def main(): 166def main():
151 profile_path = sys.argv[1] 167 try:
152 program = sys.argv[2] 168 profile_path = sys.argv[1]
169 program = sys.argv[2]
170 except IndexError:
171 print('USAGE: jail_prober.py <PROFILE-PATH> <PROGRAM>')
172 sys.exit()
153 # Quick error check and extract arguments 173 # Quick error check and extract arguments
154 check_params(profile_path) 174 check_params(profile_path)
155 profile = get_args(profile_path) 175 profile = get_args(profile_path)
diff --git a/contrib/vim/ftdetect/firejail.vim b/contrib/vim/ftdetect/firejail.vim
index a8ba5cd75..2edc741da 100644
--- a/contrib/vim/ftdetect/firejail.vim
+++ b/contrib/vim/ftdetect/firejail.vim
@@ -1,6 +1,6 @@
1autocmd BufNewFile,BufRead /etc/firejail/*.profile set filetype=firejail 1autocmd BufNewFile,BufRead /etc/firejail/*.profile setfiletype firejail
2autocmd BufNewFile,BufRead /etc/firejail/*.local set filetype=firejail 2autocmd BufNewFile,BufRead /etc/firejail/*.local setfiletype firejail
3autocmd BufNewFile,BufRead /etc/firejail/*.inc set filetype=firejail 3autocmd BufNewFile,BufRead /etc/firejail/*.inc setfiletype firejail
4autocmd BufNewFile,BufRead ~/.config/firejail/*.profile set filetype=firejail 4autocmd BufNewFile,BufRead ~/.config/firejail/*.profile setfiletype firejail
5autocmd BufNewFile,BufRead ~/.config/firejail/*.local set filetype=firejail 5autocmd BufNewFile,BufRead ~/.config/firejail/*.local setfiletype firejail
6autocmd BufNewFile,BufRead ~/.config/firejail/*.inc set filetype=firejail 6autocmd BufNewFile,BufRead ~/.config/firejail/*.inc setfiletype firejail
diff --git a/contrib/vim/syntax/firejail.vim b/contrib/vim/syntax/firejail.vim
index 8775ae71d..d07690ee2 100644
--- a/contrib/vim/syntax/firejail.vim
+++ b/contrib/vim/syntax/firejail.vim
@@ -20,19 +20,20 @@ syn match fjCapabilityList /,/ nextgroup=fjCapability contained
20syn keyword fjProtocol unix inet inet6 netlink packet nextgroup=fjProtocolList contained 20syn keyword fjProtocol unix inet inet6 netlink packet nextgroup=fjProtocolList contained
21syn match fjProtocolList /,/ nextgroup=fjProtocol contained 21syn match fjProtocolList /,/ nextgroup=fjProtocol contained
22 22
23" Syscalls grabbed from: src/include/syscall.h 23" Syscalls grabbed from: src/include/syscall*.h
24" Generate list with: rg -o '"([^"]+)' -r '$1' src/include/syscall.h | sort -u | tr $'\n' ' ' 24" Generate list with: sed -ne 's/{\s\+"\([^"]\+\)",.*},/\1/p' src/include/syscall*.h | sort -u | tr $'\n' ' '
25syn keyword fjSyscall _llseek _newselect _sysctl accept accept4 access acct add_key adjtimex afs_syscall alarm arch_prctl bdflush bind bpf break brk capget capset chdir chmod chown chown32 chroot clock_adjtime clock_getres clock_gettime clock_nanosleep clock_settime clone close connect copy_file_range creat create_module delete_module dup dup2 dup3 epoll_create epoll_create1 epoll_ctl epoll_ctl_old epoll_pwait epoll_wait epoll_wait_old eventfd eventfd2 execve execveat exit exit_group faccessat faccessat2 fadvise64 fadvise64_64 fallocate fanotify_init fanotify_mark fchdir fchmod fchmodat fchown fchown32 fchownat fcntl fcntl64 fdatasync fgetxattr finit_module flistxattr flock fork fremovexattr fsetxattr fstat fstat64 fstatat64 fstatfs fstatfs64 fsync ftime ftruncate ftruncate64 futex futimesat get_kernel_syms get_mempolicy get_robust_list get_thread_area getcpu getcwd getdents getdents64 getegid getegid32 geteuid geteuid32 getgid getgid32 getgroups getgroups32 getitimer getpeername getpgid getpgrp getpid getpmsg getppid getpriority getrandom getresgid getresgid32 getresuid getresuid32 getrlimit getrusage getsid getsockname getsockopt gettid gettimeofday getuid getuid32 getxattr gtty idle init_module inotify_add_watch inotify_init inotify_init1 inotify_rm_watch io_cancel io_destroy io_getevents io_setup io_submit ioctl ioperm iopl ioprio_get ioprio_set ipc kcmp kexec_file_load kexec_load keyctl kill lchown lchown32 lgetxattr link linkat listen listxattr llistxattr lock lookup_dcookie lremovexattr lseek lsetxattr lstat lstat64 madvise mbind membarrier memfd_create migrate_pages mincore mkdir mkdirat mknod mknodat mlock mlock2 mlockall mmap mmap2 modify_ldt mount move_pages mprotect mpx mq_getsetattr mq_notify mq_open mq_timedreceive mq_timedsend mq_unlink mremap msgctl msgget msgrcv msgsnd msync munlock munlockall munmap name_to_handle_at nanosleep newfstatat nfsservctl nice oldfstat oldlstat oldolduname oldstat olduname open open_by_handle_at openat pause perf_event_open personality pipe pipe2 pivot_root pkey_alloc pkey_free pkey_mprotect poll ppoll prctl pread64 preadv preadv2 prlimit64 process_vm_readv process_vm_writev prof profil pselect6 ptrace putpmsg pwrite64 pwritev pwritev2 query_module quotactl read readahead readdir readlink readlinkat readv reboot recvfrom recvmmsg recvmsg remap_file_pages removexattr rename renameat renameat2 request_key restart_syscall rmdir rt_sigaction rt_sigpending rt_sigprocmask rt_sigqueueinfo rt_sigreturn rt_sigsuspend rt_sigtimedwait rt_tgsigqueueinfo sched_get_priority_max sched_get_priority_min sched_getaffinity sched_getattr sched_getparam sched_getscheduler sched_rr_get_interval sched_setaffinity sched_setattr sched_setparam sched_setscheduler sched_yield seccomp security select semctl semget semop semtimedop sendfile sendfile64 sendmmsg sendmsg sendto set_mempolicy set_robust_list set_thread_area set_tid_address setdomainname setfsgid setfsgid32 setfsuid setfsuid32 setgid setgid32 setgroups setgroups32 sethostname setitimer setns setpgid setpriority setregid setregid32 setresgid setresgid32 setresuid setresuid32 setreuid setreuid32 setrlimit setsid setsockopt settimeofday setuid setuid32 setxattr sgetmask shmat shmctl shmdt shmget shutdown sigaction sigaltstack signal signalfd signalfd4 sigpending sigprocmask sigreturn sigsuspend socket socketcall socketpair splice ssetmask stat stat64 statfs statfs64 statx stime stty swapoff swapon symlink symlinkat sync sync_file_range syncfs sysfs sysinfo syslog tee tgkill time timer_create timer_delete timer_getoverrun timer_gettime timer_settime timerfd_create timerfd_gettime timerfd_settime times tkill truncate truncate64 tuxcall ugetrlimit ulimit umask umount umount2 uname unlink unlinkat unshare uselib userfaultfd ustat utime utimensat utimes vfork vhangup vm86 vm86old vmsplice vserver wait4 waitid waitpid write writev nextgroup=fjSyscallErrno contained 25syn keyword fjSyscall _llseek _newselect _sysctl accept accept4 access acct add_key adjtimex afs_syscall alarm arch_prctl arm_fadvise64_64 arm_sync_file_range bdflush bind bpf break brk capget capset chdir chmod chown chown32 chroot clock_adjtime clock_adjtime64 clock_getres clock_getres_time64 clock_gettime clock_gettime64 clock_nanosleep clock_nanosleep_time64 clock_settime clock_settime64 clone clone3 close connect copy_file_range creat create_module delete_module dup dup2 dup3 epoll_create epoll_create1 epoll_ctl epoll_ctl_old epoll_pwait epoll_wait epoll_wait_old eventfd eventfd2 execve execveat exit exit_group faccessat faccessat2 fadvise64 fadvise64_64 fallocate fanotify_init fanotify_mark fchdir fchmod fchmodat fchown fchown32 fchownat fcntl fcntl64 fdatasync fgetxattr finit_module flistxattr flock fork fremovexattr fsconfig fsetxattr fsmount fsopen fspick fstat fstat64 fstatat64 fstatfs fstatfs64 fsync ftime ftruncate ftruncate64 futex futex_time64 futimesat getcpu getcwd getdents getdents64 getegid getegid32 geteuid geteuid32 getgid getgid32 getgroups getgroups32 getitimer get_kernel_syms get_mempolicy getpeername getpgid getpgrp getpid getpmsg getppid getpriority getrandom getresgid getresgid32 getresuid getresuid32 getrlimit get_robust_list getrusage getsid getsockname getsockopt get_thread_area gettid gettimeofday getuid getuid32 getxattr gtty idle init_module inotify_add_watch inotify_init inotify_init1 inotify_rm_watch io_cancel ioctl io_destroy io_getevents ioperm io_pgetevents io_pgetevents_time64 iopl ioprio_get ioprio_set io_setup io_submit io_uring_enter io_uring_register io_uring_setup ipc kcmp kexec_file_load kexec_load keyctl kill lchown lchown32 lgetxattr link linkat listen listxattr llistxattr lock lookup_dcookie lremovexattr lseek lsetxattr lstat lstat64 madvise mbind membarrier memfd_create migrate_pages mincore mkdir mkdirat mknod mknodat mlock mlock2 mlockall mmap mmap2 modify_ldt mount move_mount move_pages mprotect mpx mq_getsetattr mq_notify mq_open mq_timedreceive mq_timedreceive_time64 mq_timedsend mq_timedsend_time64 mq_unlink mremap msgctl msgget msgrcv msgsnd msync munlock munlockall munmap name_to_handle_at nanosleep newfstatat nfsservctl nice oldfstat oldlstat oldolduname oldstat olduname open openat open_by_handle_at open_tree pause pciconfig_iobase pciconfig_read pciconfig_write perf_event_open personality pidfd_open pidfd_send_signal pipe pipe2 pivot_root pkey_alloc pkey_free pkey_mprotect poll ppoll ppoll_time64 prctl pread64 preadv preadv2 prlimit64 process_vm_readv process_vm_writev prof profil pselect6 pselect6_time64 ptrace putpmsg pwrite64 pwritev pwritev2 query_module quotactl read readahead readdir readlink readlinkat readv reboot recv recvfrom recvmmsg recvmmsg_time64 recvmsg remap_file_pages removexattr rename renameat renameat2 request_key restart_syscall rmdir rseq rt_sigaction rt_sigpending rt_sigprocmask rt_sigqueueinfo rt_sigreturn rt_sigsuspend rt_sigtimedwait rt_sigtimedwait_time64 rt_tgsigqueueinfo sched_getaffinity sched_getattr sched_getparam sched_get_priority_max sched_get_priority_min sched_getscheduler sched_rr_get_interval sched_rr_get_interval_time64 sched_setaffinity sched_setattr sched_setparam sched_setscheduler sched_yield seccomp security select semctl semget semop semtimedop semtimedop_time64 send sendfile sendfile64 sendmmsg sendmsg sendto setdomainname setfsgid setfsgid32 setfsuid setfsuid32 setgid setgid32 setgroups setgroups32 sethostname setitimer set_mempolicy setns setpgid setpriority setregid setregid32 setresgid setresgid32 setresuid setresuid32 setreuid setreuid32 setrlimit set_robust_list setsid setsockopt set_thread_area set_tid_address settimeofday setuid setuid32 setxattr sgetmask shmat shmctl shmdt shmget shutdown sigaction sigaltstack signal signalfd signalfd4 sigpending sigprocmask sigreturn sigsuspend socket socketcall socketpair splice ssetmask stat stat64 statfs statfs64 statx stime stty swapoff swapon symlink symlinkat sync sync_file_range sync_file_range2 syncfs syscall sysfs sysinfo syslog tee tgkill time timer_create timer_delete timerfd_create timerfd_gettime timerfd_gettime64 timerfd_settime timerfd_settime64 timer_getoverrun timer_gettime timer_gettime64 timer_settime timer_settime64 times tkill truncate truncate64 tuxcall ugetrlimit ulimit umask umount umount2 uname unlink unlinkat unshare uselib userfaultfd ustat utime utimensat utimensat_time64 utimes vfork vhangup vm86 vm86old vmsplice vserver wait4 waitid waitpid write writev nextgroup=fjSyscallErrno contained
26" Syscall groups grabbed from: src/fseccomp/syscall.c 26" Syscall groups grabbed from: src/fseccomp/syscall.c
27" Generate list with: rg -o '"@([^",]+)' -r '$1' src/fseccomp/syscall.c | sort -u | tr $'\n' '|' 27" Generate list with: rg -o '"@([^",]+)' -r '$1' src/lib/syscall.c | sort -u | tr $'\n' '|'
28syn match fjSyscall /\v\@(clock|cpu-emulation|debug|default|default-keep|default-nodebuggers|module|obsolete|privileged|raw-io|reboot|resources|swap)>/ nextgroup=fjSyscallErrno contained 28syn match fjSyscall /\v\@(aio|basic-io|chown|clock|cpu-emulation|debug|default|default-keep|default-nodebuggers|file-system|io-event|ipc|keyring|memlock|module|mount|network-io|obsolete|privileged|process|raw-io|reboot|resources|setuid|signal|swap|sync|system-service|timer)>/ nextgroup=fjSyscallErrno contained
29syn match fjSyscall /\$[0-9]\+/ nextgroup=fjSyscallErrno contained 29syn match fjSyscall /\$[0-9]\+/ nextgroup=fjSyscallErrno contained
30" Errnos grabbed from: src/fseccomp/errno.c 30" Errnos grabbed from: src/fseccomp/errno.c
31" Generate list with: rg -o '"(E[^"]+)' -r '$1' src/fseccomp/errno.c | sort -u | tr $'\n' '|' 31" Generate list with: rg -o '"(E[^"]+)' -r '$1' src/lib/errno.c | sort -u | tr $'\n' '|'
32syn match fjSyscallErrno /\v(:(E2BIG|EACCES|EADDRINUSE|EADDRNOTAVAIL|EADV|EAFNOSUPPORT|EAGAIN|EALREADY|EBADE|EBADF|EBADFD|EBADMSG|EBADR|EBADRQC|EBADSLT|EBFONT|EBUSY|ECANCELED|ECHILD|ECHRNG|ECOMM|ECONNABORTED|ECONNREFUSED|ECONNRESET|EDEADLK|EDEADLOCK|EDESTADDRREQ|EDOM|EDOTDOT|EDQUOT|EEXIST|EFAULT|EFBIG|EHOSTDOWN|EHOSTUNREACH|EHWPOISON|EIDRM|EILSEQ|EINPROGRESS|EINTR|EINVAL|EIO|EISCONN|EISDIR|EISNAM|EKEYEXPIRED|EKEYREJECTED|EKEYREVOKED|EL2HLT|EL2NSYNC|EL3HLT|EL3RST|ELIBACC|ELIBBAD|ELIBEXEC|ELIBMAX|ELIBSCN|ELNRNG|ELOOP|EMEDIUMTYPE|EMFILE|EMLINK|EMSGSIZE|EMULTIHOP|ENAMETOOLONG|ENAVAIL|ENETDOWN|ENETRESET|ENETUNREACH|ENFILE|ENOANO|ENOATTR|ENOBUFS|ENOCSI|ENODATA|ENODEV|ENOENT|ENOEXEC|ENOKEY|ENOLCK|ENOLINK|ENOMEDIUM|ENOMEM|ENOMSG|ENONET|ENOPKG|ENOPROTOOPT|ENOSPC|ENOSR|ENOSTR|ENOSYS|ENOTBLK|ENOTCONN|ENOTDIR|ENOTEMPTY|ENOTNAM|ENOTRECOVERABLE|ENOTSOCK|ENOTSUP|ENOTTY|ENOTUNIQ|ENXIO|EOPNOTSUPP|EOVERFLOW|EOWNERDEAD|EPERM|EPFNOSUPPORT|EPIPE|EPROTO|EPROTONOSUPPORT|EPROTOTYPE|ERANGE|EREMCHG|EREMOTE|EREMOTEIO|ERESTART|ERFKILL|EROFS|ESHUTDOWN|ESOCKTNOSUPPORT|ESPIPE|ESRCH|ESRMNT|ESTALE|ESTRPIPE|ETIME|ETIMEDOUT|ETOOMANYREFS|ETXTBSY|EUCLEAN|EUNATCH|EUSERS|EWOULDBLOCK|EXDEV|EXFULL)>)?/ nextgroup=fjSyscallList contained 32syn match fjSyscallErrno /\v(:(E2BIG|EACCES|EADDRINUSE|EADDRNOTAVAIL|EADV|EAFNOSUPPORT|EAGAIN|EALREADY|EBADE|EBADF|EBADFD|EBADMSG|EBADR|EBADRQC|EBADSLT|EBFONT|EBUSY|ECANCELED|ECHILD|ECHRNG|ECOMM|ECONNABORTED|ECONNREFUSED|ECONNRESET|EDEADLK|EDEADLOCK|EDESTADDRREQ|EDOM|EDOTDOT|EDQUOT|EEXIST|EFAULT|EFBIG|EHOSTDOWN|EHOSTUNREACH|EHWPOISON|EIDRM|EILSEQ|EINPROGRESS|EINTR|EINVAL|EIO|EISCONN|EISDIR|EISNAM|EKEYEXPIRED|EKEYREJECTED|EKEYREVOKED|EL2HLT|EL2NSYNC|EL3HLT|EL3RST|ELIBACC|ELIBBAD|ELIBEXEC|ELIBMAX|ELIBSCN|ELNRNG|ELOOP|EMEDIUMTYPE|EMFILE|EMLINK|EMSGSIZE|EMULTIHOP|ENAMETOOLONG|ENAVAIL|ENETDOWN|ENETRESET|ENETUNREACH|ENFILE|ENOANO|ENOATTR|ENOBUFS|ENOCSI|ENODATA|ENODEV|ENOENT|ENOEXEC|ENOKEY|ENOLCK|ENOLINK|ENOMEDIUM|ENOMEM|ENOMSG|ENONET|ENOPKG|ENOPROTOOPT|ENOSPC|ENOSR|ENOSTR|ENOSYS|ENOTBLK|ENOTCONN|ENOTDIR|ENOTEMPTY|ENOTNAM|ENOTRECOVERABLE|ENOTSOCK|ENOTSUP|ENOTTY|ENOTUNIQ|ENXIO|EOPNOTSUPP|EOVERFLOW|EOWNERDEAD|EPERM|EPFNOSUPPORT|EPIPE|EPROTO|EPROTONOSUPPORT|EPROTOTYPE|ERANGE|EREMCHG|EREMOTE|EREMOTEIO|ERESTART|ERFKILL|EROFS|ESHUTDOWN|ESOCKTNOSUPPORT|ESPIPE|ESRCH|ESRMNT|ESTALE|ESTRPIPE|ETIME|ETIMEDOUT|ETOOMANYREFS|ETXTBSY|EUCLEAN|EUNATCH|EUSERS|EWOULDBLOCK|EXDEV|EXFULL)>)?/ nextgroup=fjSyscallList contained
33syn match fjSyscallList /,/ nextgroup=fjSyscall contained 33syn match fjSyscallList /,/ nextgroup=fjSyscall contained
34 34
35syn keyword fjX11Sandbox none xephyr xorg xpra xvfb contained 35syn keyword fjX11Sandbox none xephyr xorg xpra xvfb contained
36syn keyword fjSeccompAction kill log ERRNO contained
36 37
37syn match fjEnvVar "[A-Za-z0-9_]\+=" contained 38syn match fjEnvVar "[A-Za-z0-9_]\+=" contained
38syn match fjRmenvVar "[A-Za-z0-9_]\+" contained 39syn match fjRmenvVar "[A-Za-z0-9_]\+" contained
@@ -40,6 +41,7 @@ syn match fjRmenvVar "[A-Za-z0-9_]\+" contained
40syn keyword fjAll all contained 41syn keyword fjAll all contained
41syn keyword fjNone none contained 42syn keyword fjNone none contained
42syn keyword fjLo lo contained 43syn keyword fjLo lo contained
44syn keyword fjFilter filter contained
43 45
44" Variable names grabbed from: src/firejail/macros.c 46" Variable names grabbed from: src/firejail/macros.c
45" Generate list with: rg -o '\$\{([^}]+)\}' -r '$1' src/firejail/macros.c | sort -u | tr $'\n' '|' 47" Generate list with: rg -o '\$\{([^}]+)\}' -r '$1' src/firejail/macros.c | sort -u | tr $'\n' '|'
@@ -47,27 +49,30 @@ syn match fjVar /\v\$\{(CFG|DESKTOP|DOCUMENTS|DOWNLOADS|HOME|MUSIC|PATH|PICTURES
47 49
48" Commands grabbed from: src/firejail/profile.c 50" Commands grabbed from: src/firejail/profile.c
49" Generate list with: { rg -o 'strn?cmp\(ptr, "([^"]+) "' -r '$1' src/firejail/profile.c; echo private-lib; } | grep -vEx '(include|ignore|caps\.drop|caps\.keep|protocol|seccomp|seccomp\.drop|seccomp\.keep|env|rmenv|net|ip)' | sort -u | tr $'\n' '|' # private-lib is special-cased in the code and doesn't match the regex; grep-ed patterns are handled later with 'syn match nextgroup=' directives (except for include which is special-cased as a fjCommandNoCond keyword) 51" Generate list with: { rg -o 'strn?cmp\(ptr, "([^"]+) "' -r '$1' src/firejail/profile.c; echo private-lib; } | grep -vEx '(include|ignore|caps\.drop|caps\.keep|protocol|seccomp|seccomp\.drop|seccomp\.keep|env|rmenv|net|ip)' | sort -u | tr $'\n' '|' # private-lib is special-cased in the code and doesn't match the regex; grep-ed patterns are handled later with 'syn match nextgroup=' directives (except for include which is special-cased as a fjCommandNoCond keyword)
50syn match fjCommand /\v(bind|blacklist|blacklist-nolog|cgroup|cpu|defaultgw|dns|hostname|hosts-file|ip6|iprange|join-or-start|mac|mkdir|mkfile|mtu|name|netfilter|netfilter6|netmask|nice|noblacklist|noexec|nowhitelist|overlay-named|private|private-bin|private-etc|private-home|private-lib|private-opt|private-srv|read-only|read-write|rlimit-as|rlimit-cpu|rlimit-fsize|rlimit-nofile|rlimit-nproc|rlimit-sigpending|timeout|tmpfs|veth-name|whitelist|xephyr-screen) / skipwhite contained 52syn match fjCommand /\v(bind|blacklist|blacklist-nolog|cgroup|cpu|defaultgw|dns|hostname|hosts-file|ip6|iprange|join-or-start|mac|mkdir|mkfile|mtu|name|netfilter|netfilter6|netmask|nice|noblacklist|noexec|nowhitelist|overlay-named|private|private-bin|private-cwd|private-etc|private-home|private-lib|private-opt|private-srv|read-only|read-write|rlimit-as|rlimit-cpu|rlimit-fsize|rlimit-nofile|rlimit-nproc|rlimit-sigpending|timeout|tmpfs|veth-name|whitelist|xephyr-screen) / skipwhite contained
51" Generate list with: rg -o 'strn?cmp\(ptr, "([^ "]*[^ ])"' -r '$1' src/firejail/profile.c | grep -vEx '(include|rlimit|quiet)' | sed -e 's/\./\\./' | sort -u | tr $'\n' '|' # include/rlimit are false positives, quiet is special-cased below 53" Generate list with: rg -o 'strn?cmp\(ptr, "([^ "]*[^ ])"' -r '$1' src/firejail/profile.c | grep -vEx '(include|rlimit|quiet)' | sed -e 's/\./\\./' | sort -u | tr $'\n' '|' # include/rlimit are false positives, quiet is special-cased below
52syn match fjCommand /\v(allusers|apparmor|caps|disable-mnt|ipc-namespace|keep-config-pulse|keep-dev-shm|keep-var-tmp|machine-id|memory-deny-write-execute|netfilter|no3d|noautopulse|nodbus|nodvd|nogroups|noinput|nonewprivs|noroot|nosound|notv|nou2f|novideo|overlay|overlay-tmpfs|private|private-cache|private-dev|private-lib|private-tmp|seccomp|seccomp\.block-secondary|tracelog|writable-etc|writable-run-user|writable-var|writable-var-log|x11)$/ contained 54syn match fjCommand /\v(allow-debuggers|allusers|apparmor|caps|disable-mnt|ipc-namespace|keep-config-pulse|keep-dev-shm|keep-var-tmp|machine-id|memory-deny-write-execute|netfilter|no3d|noautopulse|nodbus|nodvd|nogroups|noinput|nonewprivs|noroot|nosound|notv|nou2f|novideo|overlay|overlay-tmpfs|private|private-cache|private-cwd|private-dev|private-lib|private-tmp|seccomp|seccomp\.32|seccomp\.block-secondary|tracelog|writable-etc|writable-run-user|writable-var|writable-var-log|x11)$/ contained
53syn match fjCommand /ignore / nextgroup=fjCommand,fjCommandNoCond skipwhite contained 55syn match fjCommand /ignore / nextgroup=fjCommand,fjCommandNoCond skipwhite contained
54syn match fjCommand /caps\.drop / nextgroup=fjCapability,fjAll skipwhite contained 56syn match fjCommand /caps\.drop / nextgroup=fjCapability,fjAll skipwhite contained
55syn match fjCommand /caps\.keep / nextgroup=fjCapability skipwhite contained 57syn match fjCommand /caps\.keep / nextgroup=fjCapability skipwhite contained
56syn match fjCommand /protocol / nextgroup=fjProtocol skipwhite contained 58syn match fjCommand /protocol / nextgroup=fjProtocol skipwhite contained
57syn match fjCommand /\vseccomp(\.drop|\.keep)? / nextgroup=fjSyscall skipwhite contained 59syn match fjCommand /\vseccomp(\.32)?(\.drop|\.keep)? / nextgroup=fjSyscall skipwhite contained
58syn match fjCommand /x11 / nextgroup=fjX11Sandbox skipwhite contained 60syn match fjCommand /x11 / nextgroup=fjX11Sandbox skipwhite contained
59syn match fjCommand /env / nextgroup=fjEnvVar skipwhite contained 61syn match fjCommand /env / nextgroup=fjEnvVar skipwhite contained
60syn match fjCommand /rmenv / nextgroup=fjRmenvVar skipwhite contained 62syn match fjCommand /rmenv / nextgroup=fjRmenvVar skipwhite contained
61syn match fjCommand /shell / nextgroup=fjNone skipwhite contained 63syn match fjCommand /shell / nextgroup=fjNone skipwhite contained
62syn match fjCommand /net / nextgroup=fjNone,fjLo skipwhite contained 64syn match fjCommand /net / nextgroup=fjNone,fjLo skipwhite contained
63syn match fjCommand /ip / nextgroup=fjNone skipwhite contained 65syn match fjCommand /ip / nextgroup=fjNone skipwhite contained
66syn match fjCommand /seccomp-error-action / nextgroup=fjSeccompAction skipwhite contained
67syn match fjCommand /\vdbus-(user|system) / nextgroup=fjFilter,fjNone skipwhite contained
68syn match fjCommand /\vdbus-(user|system)\.(broadcast|call|own|see|talk) / skipwhite contained
64" Commands that can't be inside a ?CONDITIONAL: statement 69" Commands that can't be inside a ?CONDITIONAL: statement
65syn match fjCommandNoCond /include / skipwhite contained 70syn match fjCommandNoCond /include / skipwhite contained
66syn match fjCommandNoCond /quiet$/ contained 71syn match fjCommandNoCond /quiet$/ contained
67 72
68" Conditionals grabbed from: src/firejail/profile.c 73" Conditionals grabbed from: src/firejail/profile.c
69" Generate list with: awk -- 'BEGIN {process=0;} /^Cond conditionals\[\] = \{$/ {process=1;} /\t*\{"[^"]+".*/ { if (process) {print gensub(/^\t*\{"([^"]+)".*$/, "\\1", 1);} } /^\t\{ NULL, NULL \}$/ {process=0;}' src/firejail/profile.c | sort -u | tr $'\n' '|' 74" Generate list with: awk -- 'BEGIN {process=0;} /^Cond conditionals\[\] = \{$/ {process=1;} /\t*\{"[^"]+".*/ { if (process) {print gensub(/^\t*\{"([^"]+)".*$/, "\\1", 1);} } /^\t\{ NULL, NULL \}$/ {process=0;}' src/firejail/profile.c | sort -u | tr $'\n' '|'
70syn match fjConditional /\v\?(BROWSER_ALLOW_DRM|BROWSER_DISABLE_U2F|HAS_APPIMAGE|HAS_NODBUS) ?:/ nextgroup=fjCommand skipwhite contained 75syn match fjConditional /\v\?(BROWSER_ALLOW_DRM|BROWSER_DISABLE_U2F|HAS_APPIMAGE|HAS_NET|HAS_NODBUS|HAS_NOSOUND|HAS_X11) ?:/ nextgroup=fjCommand skipwhite contained
71 76
72" A line is either a command, a conditional or a comment 77" A line is either a command, a conditional or a comment
73syn match fjStatement /^/ nextgroup=fjCommand,fjCommandNoCond,fjConditional,fjComment 78syn match fjStatement /^/ nextgroup=fjCommand,fjCommandNoCond,fjConditional,fjComment
@@ -88,6 +93,8 @@ hi def link fjRmenvVar Type
88hi def link fjAll Type 93hi def link fjAll Type
89hi def link fjNone Type 94hi def link fjNone Type
90hi def link fjLo Type 95hi def link fjLo Type
96hi def link fjFilter Type
97hi def link fjSeccompAction Type
91 98
92 99
93let b:current_syntax = "firejail" 100let b:current_syntax = "firejail"
diff --git a/etc/firejail.config b/etc/firejail.config
index 9dd33b5ed..2e355586b 100644
--- a/etc/firejail.config
+++ b/etc/firejail.config
@@ -35,23 +35,12 @@
35# cannot be overridden by --noblacklist or --ignore. 35# cannot be overridden by --noblacklist or --ignore.
36# disable-mnt no 36# disable-mnt no
37 37
38# Set the limit for file copy in several --private-* options. The size is set
39# in megabytes. By default we allow up to 500MB.
40# Note: the files are copied in RAM.
41# file-copy-limit 500
42
43# Enable or disable file transfer support, default enabled. 38# Enable or disable file transfer support, default enabled.
44# file-transfer yes 39# file-transfer yes
45 40
46# Enable Firejail green prompt in terminal, default disabled 41# Enable Firejail green prompt in terminal, default disabled
47# firejail-prompt no 42# firejail-prompt no
48 43
49# Follow symlink as user. While using --whitelist feature,
50# symlinks pointing outside home directory are followed only
51# if both the link and the real file are owned by the user.
52# Enabled by default
53# follow-symlink-as-user yes
54
55# Force use of nonewprivs. This mitigates the possibility of 44# Force use of nonewprivs. This mitigates the possibility of
56# a user abusing firejail's features to trick a privileged (suid 45# a user abusing firejail's features to trick a privileged (suid
57# or file capabilities) process into loading code or configuration 46# or file capabilities) process into loading code or configuration
@@ -83,18 +72,35 @@
83# Enable or disable overlayfs features, default enabled. 72# Enable or disable overlayfs features, default enabled.
84# overlayfs yes 73# overlayfs yes
85 74
75# Set the limit for file copy in several --private-* options. The size is set
76# in megabytes. By default we allow up to 500MB.
77# Note: the files are copied in RAM.
78# file-copy-limit 500
79
80# Enable or disable private-bin feature, default enabled.
81# private-bin yes
82
86# Remove /usr/local directories from private-bin list, default disabled. 83# Remove /usr/local directories from private-bin list, default disabled.
87# private-bin-no-local no 84# private-bin-no-local no
88 85
89# Enable or disable private-cache feature, default enabled 86# Enable or disable private-cache feature, default enabled
90# private-cache yes 87# private-cache yes
91 88
89# Enable or disable private-etc feature, default enabled.
90# private-etc yes
91
92# Enable or disable private-home feature, default enabled 92# Enable or disable private-home feature, default enabled
93# private-home yes 93# private-home yes
94 94
95# Enable or disable private-lib feature, default enabled 95# Enable or disable private-lib feature, default enabled
96# private-lib yes 96# private-lib yes
97 97
98# Enable or disable private-opt feature, default enabled.
99# private-opt yes
100
101# Enable or disable private-srv feature, default enabled.
102# private-srv yes
103
98# Enable --quiet as default every time the sandbox is started. Default disabled. 104# Enable --quiet as default every time the sandbox is started. Default disabled.
99# quiet-by-default no 105# quiet-by-default no
100 106
@@ -107,15 +113,16 @@
107# Enable or disable seccomp support, default enabled. 113# Enable or disable seccomp support, default enabled.
108# seccomp yes 114# seccomp yes
109 115
116# Add rules to the default seccomp filter. Same syntax as for --seccomp=
117# None by default; this is an example.
118# seccomp-filter-add !chroot,kcmp,mincore
119
110# Seccomp error action, kill, log or errno (EPERM, ENOSYS etc) 120# Seccomp error action, kill, log or errno (EPERM, ENOSYS etc)
111# seccomp-error-action EPERM 121# seccomp-error-action EPERM
112 122
113# Enable or disable user namespace support, default enabled. 123# Enable or disable user namespace support, default enabled.
114# userns yes 124# userns yes
115 125
116# Enable or disable whitelisting support, default enabled.
117# whitelist yes
118
119# Disable whitelist top level directories, in addition to those 126# Disable whitelist top level directories, in addition to those
120# that are disabled out of the box. None by default; this is an example. 127# that are disabled out of the box. None by default; this is an example.
121# whitelist-disable-topdir /etc,/usr/etc 128# whitelist-disable-topdir /etc,/usr/etc
diff --git a/etc/inc/allow-bin-sh.inc b/etc/inc/allow-bin-sh.inc
index d6c295414..59cd40878 100644
--- a/etc/inc/allow-bin-sh.inc
+++ b/etc/inc/allow-bin-sh.inc
@@ -2,6 +2,6 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-bin-sh.local 3include allow-bin-sh.local
4 4
5noblacklist ${PATH}/bash 5nodeny ${PATH}/bash
6noblacklist ${PATH}/dash 6nodeny ${PATH}/dash
7noblacklist ${PATH}/sh 7nodeny ${PATH}/sh
diff --git a/etc/inc/allow-common-devel.inc b/etc/inc/allow-common-devel.inc
index babe46571..71b1483cd 100644
--- a/etc/inc/allow-common-devel.inc
+++ b/etc/inc/allow-common-devel.inc
@@ -3,35 +3,29 @@
3include allow-common-devel.local 3include allow-common-devel.local
4 4
5# Git 5# Git
6noblacklist ${HOME}/.config/git 6nodeny ${HOME}/.config/git
7noblacklist ${HOME}/.gitconfig 7nodeny ${HOME}/.gitconfig
8noblacklist ${HOME}/.git-credentials 8nodeny ${HOME}/.git-credentials
9 9
10# Java 10# Java
11noblacklist ${HOME}/.gradle 11nodeny ${HOME}/.gradle
12noblacklist ${HOME}/.java 12nodeny ${HOME}/.java
13 13
14# Node.js 14# Node.js
15noblacklist ${HOME}/.node-gyp 15nodeny ${HOME}/.node-gyp
16noblacklist ${HOME}/.npm 16nodeny ${HOME}/.npm
17noblacklist ${HOME}/.npmrc 17nodeny ${HOME}/.npmrc
18noblacklist ${HOME}/.nvm 18nodeny ${HOME}/.nvm
19noblacklist ${HOME}/.yarn 19nodeny ${HOME}/.yarn
20noblacklist ${HOME}/.yarn-config 20nodeny ${HOME}/.yarn-config
21noblacklist ${HOME}/.yarncache 21nodeny ${HOME}/.yarncache
22noblacklist ${HOME}/.yarnrc 22nodeny ${HOME}/.yarnrc
23 23
24# Python 24# Python
25noblacklist ${HOME}/.pylint.d 25nodeny ${HOME}/.pylint.d
26noblacklist ${HOME}/.python-history 26nodeny ${HOME}/.python-history
27noblacklist ${HOME}/.python_history 27nodeny ${HOME}/.python_history
28noblacklist ${HOME}/.pythonhist 28nodeny ${HOME}/.pythonhist
29 29
30# Rust 30# Rust
31noblacklist ${HOME}/.cargo/advisory-db 31nodeny ${HOME}/.cargo/*
32noblacklist ${HOME}/.cargo/config
33noblacklist ${HOME}/.cargo/git
34noblacklist ${HOME}/.cargo/registry
35noblacklist ${HOME}/.cargo/.crates.toml
36noblacklist ${HOME}/.cargo/.crates2.json
37noblacklist ${HOME}/.cargo/.package-cache
diff --git a/etc/inc/allow-gjs.inc b/etc/inc/allow-gjs.inc
index c1366e093..2e2490079 100644
--- a/etc/inc/allow-gjs.inc
+++ b/etc/inc/allow-gjs.inc
@@ -2,11 +2,11 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-gjs.local 3include allow-gjs.local
4 4
5noblacklist ${PATH}/gjs 5nodeny ${PATH}/gjs
6noblacklist ${PATH}/gjs-console 6nodeny ${PATH}/gjs-console
7noblacklist /usr/lib/gjs 7nodeny /usr/lib/gjs
8noblacklist /usr/lib/libgjs* 8nodeny /usr/lib/libgjs*
9noblacklist /usr/lib/libmozjs-* 9nodeny /usr/lib/libmozjs-*
10noblacklist /usr/lib64/gjs 10nodeny /usr/lib64/gjs
11noblacklist /usr/lib64/libgjs* 11nodeny /usr/lib64/libgjs*
12noblacklist /usr/lib64/libmozjs-* 12nodeny /usr/lib64/libmozjs-*
diff --git a/etc/inc/allow-java.inc b/etc/inc/allow-java.inc
index 24d18fb77..af44f3664 100644
--- a/etc/inc/allow-java.inc
+++ b/etc/inc/allow-java.inc
@@ -2,8 +2,8 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-java.local 3include allow-java.local
4 4
5noblacklist ${HOME}/.java 5nodeny ${HOME}/.java
6noblacklist ${PATH}/java 6nodeny ${PATH}/java
7noblacklist /etc/java 7nodeny /etc/java
8noblacklist /usr/lib/java 8nodeny /usr/lib/java
9noblacklist /usr/share/java 9nodeny /usr/share/java
diff --git a/etc/inc/allow-lua.inc b/etc/inc/allow-lua.inc
index 9c47e7a3b..3d0a1997b 100644
--- a/etc/inc/allow-lua.inc
+++ b/etc/inc/allow-lua.inc
@@ -2,11 +2,11 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-lua.local 3include allow-lua.local
4 4
5noblacklist ${PATH}/lua* 5nodeny ${PATH}/lua*
6noblacklist /usr/include 6nodeny /usr/include
7noblacklist /usr/lib/liblua* 7nodeny /usr/lib/liblua*
8noblacklist /usr/lib/lua 8nodeny /usr/lib/lua
9noblacklist /usr/lib64/liblua* 9nodeny /usr/lib64/liblua*
10noblacklist /usr/lib64/lua 10nodeny /usr/lib64/lua
11noblacklist /usr/share/lua 11nodeny /usr/share/lua
12noblacklist /usr/share/lua* 12nodeny /usr/share/lua*
diff --git a/etc/inc/allow-nodejs.inc b/etc/inc/allow-nodejs.inc
index 351c94ab8..e915b3866 100644
--- a/etc/inc/allow-nodejs.inc
+++ b/etc/inc/allow-nodejs.inc
@@ -2,8 +2,8 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-nodejs.local 3include allow-nodejs.local
4 4
5noblacklist ${PATH}/node 5nodeny ${PATH}/node
6noblacklist /usr/include/node 6nodeny /usr/include/node
7 7
8# Allow python for node-gyp (blacklisted by disable-interpreters.inc) 8# Allow python for node-gyp (blacklisted by disable-interpreters.inc)
9include allow-python2.inc 9include allow-python2.inc
diff --git a/etc/inc/allow-opengl-game.inc b/etc/inc/allow-opengl-game.inc
index b5ff1bd50..00e35e983 100644
--- a/etc/inc/allow-opengl-game.inc
+++ b/etc/inc/allow-opengl-game.inc
@@ -1,3 +1,7 @@
1noblacklist ${PATH}/bash 1# This file is overwritten during software install.
2whitelist /usr/share/opengl-games-utils/opengl-game-functions.sh 2# Persistent customizations should go in a .local file.
3include allow-opengl-game.local
4
5nodeny ${PATH}/bash
6allow /usr/share/opengl-games-utils/opengl-game-functions.sh
3private-bin basename,bash,cut,glxinfo,grep,head,sed,zenity 7private-bin basename,bash,cut,glxinfo,grep,head,sed,zenity
diff --git a/etc/inc/allow-perl.inc b/etc/inc/allow-perl.inc
index 5a1952c94..134d27239 100644
--- a/etc/inc/allow-perl.inc
+++ b/etc/inc/allow-perl.inc
@@ -2,11 +2,11 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-perl.local 3include allow-perl.local
4 4
5noblacklist ${PATH}/core_perl 5nodeny ${PATH}/core_perl
6noblacklist ${PATH}/cpan* 6nodeny ${PATH}/cpan*
7noblacklist ${PATH}/perl 7nodeny ${PATH}/perl
8noblacklist ${PATH}/site_perl 8nodeny ${PATH}/site_perl
9noblacklist ${PATH}/vendor_perl 9nodeny ${PATH}/vendor_perl
10noblacklist /usr/lib/perl* 10nodeny /usr/lib/perl*
11noblacklist /usr/lib64/perl* 11nodeny /usr/lib64/perl*
12noblacklist /usr/share/perl* 12nodeny /usr/share/perl*
diff --git a/etc/inc/allow-php.inc b/etc/inc/allow-php.inc
index a0950dc26..520c2019e 100644
--- a/etc/inc/allow-php.inc
+++ b/etc/inc/allow-php.inc
@@ -2,6 +2,6 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-php.local 3include allow-php.local
4 4
5noblacklist ${PATH}/php* 5nodeny ${PATH}/php*
6noblacklist /usr/lib/php* 6nodeny /usr/lib/php*
7noblacklist /usr/share/php* 7nodeny /usr/share/php*
diff --git a/etc/inc/allow-python2.inc b/etc/inc/allow-python2.inc
index b0525e2e1..f1830043a 100644
--- a/etc/inc/allow-python2.inc
+++ b/etc/inc/allow-python2.inc
@@ -2,8 +2,8 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-python2.local 3include allow-python2.local
4 4
5noblacklist ${PATH}/python2* 5nodeny ${PATH}/python2*
6noblacklist /usr/include/python2* 6nodeny /usr/include/python2*
7noblacklist /usr/lib/python2* 7nodeny /usr/lib/python2*
8noblacklist /usr/local/lib/python2* 8nodeny /usr/local/lib/python2*
9noblacklist /usr/share/python2* 9nodeny /usr/share/python2*
diff --git a/etc/inc/allow-python3.inc b/etc/inc/allow-python3.inc
index d968886b0..e4b6ed1a9 100644
--- a/etc/inc/allow-python3.inc
+++ b/etc/inc/allow-python3.inc
@@ -2,9 +2,9 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-python3.local 3include allow-python3.local
4 4
5noblacklist ${PATH}/python3* 5nodeny ${PATH}/python3*
6noblacklist /usr/include/python3* 6nodeny /usr/include/python3*
7noblacklist /usr/lib/python3* 7nodeny /usr/lib/python3*
8noblacklist /usr/lib64/python3* 8nodeny /usr/lib64/python3*
9noblacklist /usr/local/lib/python3* 9nodeny /usr/local/lib/python3*
10noblacklist /usr/share/python3* 10nodeny /usr/share/python3*
diff --git a/etc/inc/allow-ruby.inc b/etc/inc/allow-ruby.inc
index a8c701219..d949bbc84 100644
--- a/etc/inc/allow-ruby.inc
+++ b/etc/inc/allow-ruby.inc
@@ -2,5 +2,5 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-ruby.local 3include allow-ruby.local
4 4
5noblacklist ${PATH}/ruby 5nodeny ${PATH}/ruby
6noblacklist /usr/lib/ruby 6nodeny /usr/lib/ruby
diff --git a/etc/inc/allow-ssh.inc b/etc/inc/allow-ssh.inc
index 67c78a483..44957bf32 100644
--- a/etc/inc/allow-ssh.inc
+++ b/etc/inc/allow-ssh.inc
@@ -2,7 +2,7 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include allow-ssh.local 3include allow-ssh.local
4 4
5noblacklist ${HOME}/.ssh 5nodeny ${HOME}/.ssh
6noblacklist /etc/ssh 6nodeny /etc/ssh
7noblacklist /etc/ssh/ssh_config 7nodeny /etc/ssh/ssh_config
8noblacklist /tmp/ssh-* 8nodeny /tmp/ssh-*
diff --git a/etc/inc/disable-common.inc b/etc/inc/disable-common.inc
index 2dc53d311..1283a3a3d 100644
--- a/etc/inc/disable-common.inc
+++ b/etc/inc/disable-common.inc
@@ -5,63 +5,63 @@ include disable-common.local
5# The following block breaks trash functionality in file managers 5# The following block breaks trash functionality in file managers
6#read-only ${HOME}/.local 6#read-only ${HOME}/.local
7#read-write ${HOME}/.local/share 7#read-write ${HOME}/.local/share
8blacklist ${HOME}/.local/share/Trash 8deny ${HOME}/.local/share/Trash
9 9
10# History files in $HOME and clipboard managers 10# History files in $HOME and clipboard managers
11blacklist-nolog ${HOME}/.*_history 11deny-nolog ${HOME}/.*_history
12blacklist-nolog ${HOME}/.adobe 12deny-nolog ${HOME}/.adobe
13blacklist-nolog ${HOME}/.cache/greenclip* 13deny-nolog ${HOME}/.cache/greenclip*
14blacklist-nolog ${HOME}/.histfile 14deny-nolog ${HOME}/.histfile
15blacklist-nolog ${HOME}/.history 15deny-nolog ${HOME}/.history
16blacklist-nolog ${HOME}/.kde/share/apps/klipper 16deny-nolog ${HOME}/.kde/share/apps/klipper
17blacklist-nolog ${HOME}/.kde4/share/apps/klipper 17deny-nolog ${HOME}/.kde4/share/apps/klipper
18blacklist-nolog ${HOME}/.local/share/fish/fish_history 18deny-nolog ${HOME}/.local/share/fish/fish_history
19blacklist-nolog ${HOME}/.local/share/klipper 19deny-nolog ${HOME}/.local/share/klipper
20blacklist-nolog ${HOME}/.macromedia 20deny-nolog ${HOME}/.macromedia
21blacklist-nolog ${HOME}/.mupdf.history 21deny-nolog ${HOME}/.mupdf.history
22blacklist-nolog ${HOME}/.python-history 22deny-nolog ${HOME}/.python-history
23blacklist-nolog ${HOME}/.python_history 23deny-nolog ${HOME}/.python_history
24blacklist-nolog ${HOME}/.pythonhist 24deny-nolog ${HOME}/.pythonhist
25blacklist-nolog ${HOME}/.lesshst 25deny-nolog ${HOME}/.lesshst
26blacklist-nolog ${HOME}/.viminfo 26deny-nolog ${HOME}/.viminfo
27blacklist-nolog /tmp/clipmenu* 27deny-nolog /tmp/clipmenu*
28 28
29# X11 session autostart 29# X11 session autostart
30# blacklist ${HOME}/.xpra - this will kill --x11=xpra cmdline option for all programs 30# blacklist ${HOME}/.xpra - this will kill --x11=xpra cmdline option for all programs
31blacklist ${HOME}/.Xsession 31deny ${HOME}/.Xsession
32blacklist ${HOME}/.blackbox 32deny ${HOME}/.blackbox
33blacklist ${HOME}/.config/autostart 33deny ${HOME}/.config/autostart
34blacklist ${HOME}/.config/autostart-scripts 34deny ${HOME}/.config/autostart-scripts
35blacklist ${HOME}/.config/awesome 35deny ${HOME}/.config/awesome
36blacklist ${HOME}/.config/i3 36deny ${HOME}/.config/i3
37blacklist ${HOME}/.config/sway 37deny ${HOME}/.config/sway
38blacklist ${HOME}/.config/lxsession/LXDE/autostart 38deny ${HOME}/.config/lxsession/LXDE/autostart
39blacklist ${HOME}/.config/openbox 39deny ${HOME}/.config/openbox
40blacklist ${HOME}/.config/plasma-workspace 40deny ${HOME}/.config/plasma-workspace
41blacklist ${HOME}/.config/startupconfig 41deny ${HOME}/.config/startupconfig
42blacklist ${HOME}/.config/startupconfigkeys 42deny ${HOME}/.config/startupconfigkeys
43blacklist ${HOME}/.fluxbox 43deny ${HOME}/.fluxbox
44blacklist ${HOME}/.gnomerc 44deny ${HOME}/.gnomerc
45blacklist ${HOME}/.kde/Autostart 45deny ${HOME}/.kde/Autostart
46blacklist ${HOME}/.kde/env 46deny ${HOME}/.kde/env
47blacklist ${HOME}/.kde/share/autostart 47deny ${HOME}/.kde/share/autostart
48blacklist ${HOME}/.kde/share/config/startupconfig 48deny ${HOME}/.kde/share/config/startupconfig
49blacklist ${HOME}/.kde/share/config/startupconfigkeys 49deny ${HOME}/.kde/share/config/startupconfigkeys
50blacklist ${HOME}/.kde/shutdown 50deny ${HOME}/.kde/shutdown
51blacklist ${HOME}/.kde4/env 51deny ${HOME}/.kde4/env
52blacklist ${HOME}/.kde4/Autostart 52deny ${HOME}/.kde4/Autostart
53blacklist ${HOME}/.kde4/share/autostart 53deny ${HOME}/.kde4/share/autostart
54blacklist ${HOME}/.kde4/shutdown 54deny ${HOME}/.kde4/shutdown
55blacklist ${HOME}/.kde4/share/config/startupconfig 55deny ${HOME}/.kde4/share/config/startupconfig
56blacklist ${HOME}/.kde4/share/config/startupconfigkeys 56deny ${HOME}/.kde4/share/config/startupconfigkeys
57blacklist ${HOME}/.local/share/autostart 57deny ${HOME}/.local/share/autostart
58blacklist ${HOME}/.xinitrc 58deny ${HOME}/.xinitrc
59blacklist ${HOME}/.xprofile 59deny ${HOME}/.xprofile
60blacklist ${HOME}/.xserverrc 60deny ${HOME}/.xserverrc
61blacklist ${HOME}/.xsession 61deny ${HOME}/.xsession
62blacklist ${HOME}/.xsessionrc 62deny ${HOME}/.xsessionrc
63blacklist /etc/X11/Xsession.d 63deny /etc/X11/Xsession.d
64blacklist /etc/xdg/autostart 64deny /etc/xdg/autostart
65read-only ${HOME}/.Xauthority 65read-only ${HOME}/.Xauthority
66 66
67# Session manager 67# Session manager
@@ -70,46 +70,46 @@ read-only ${HOME}/.Xauthority
70#?HAS_X11: blacklist /tmp/.ICE-unix 70#?HAS_X11: blacklist /tmp/.ICE-unix
71 71
72# KDE config 72# KDE config
73blacklist ${HOME}/.cache/konsole 73deny ${HOME}/.cache/konsole
74blacklist ${HOME}/.config/khotkeysrc 74deny ${HOME}/.config/khotkeysrc
75blacklist ${HOME}/.config/krunnerrc 75deny ${HOME}/.config/krunnerrc
76blacklist ${HOME}/.config/kscreenlockerrc 76deny ${HOME}/.config/kscreenlockerrc
77blacklist ${HOME}/.config/ksslcertificatemanager 77deny ${HOME}/.config/ksslcertificatemanager
78blacklist ${HOME}/.config/kwalletrc 78deny ${HOME}/.config/kwalletrc
79blacklist ${HOME}/.config/kwinrc 79deny ${HOME}/.config/kwinrc
80blacklist ${HOME}/.config/kwinrulesrc 80deny ${HOME}/.config/kwinrulesrc
81blacklist ${HOME}/.config/plasma-locale-settings.sh 81deny ${HOME}/.config/plasma-locale-settings.sh
82blacklist ${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc 82deny ${HOME}/.config/plasma-org.kde.plasma.desktop-appletsrc
83blacklist ${HOME}/.config/plasmashellrc 83deny ${HOME}/.config/plasmashellrc
84blacklist ${HOME}/.config/plasmavaultrc 84deny ${HOME}/.config/plasmavaultrc
85blacklist ${HOME}/.kde/share/apps/kwin 85deny ${HOME}/.kde/share/apps/kwin
86blacklist ${HOME}/.kde/share/apps/plasma 86deny ${HOME}/.kde/share/apps/plasma
87blacklist ${HOME}/.kde/share/apps/solid 87deny ${HOME}/.kde/share/apps/solid
88blacklist ${HOME}/.kde/share/config/khotkeysrc 88deny ${HOME}/.kde/share/config/khotkeysrc
89blacklist ${HOME}/.kde/share/config/krunnerrc 89deny ${HOME}/.kde/share/config/krunnerrc
90blacklist ${HOME}/.kde/share/config/kscreensaverrc 90deny ${HOME}/.kde/share/config/kscreensaverrc
91blacklist ${HOME}/.kde/share/config/ksslcertificatemanager 91deny ${HOME}/.kde/share/config/ksslcertificatemanager
92blacklist ${HOME}/.kde/share/config/kwalletrc 92deny ${HOME}/.kde/share/config/kwalletrc
93blacklist ${HOME}/.kde/share/config/kwinrc 93deny ${HOME}/.kde/share/config/kwinrc
94blacklist ${HOME}/.kde/share/config/kwinrulesrc 94deny ${HOME}/.kde/share/config/kwinrulesrc
95blacklist ${HOME}/.kde/share/config/plasma-desktop-appletsrc 95deny ${HOME}/.kde/share/config/plasma-desktop-appletsrc
96blacklist ${HOME}/.kde4/share/apps/kwin 96deny ${HOME}/.kde4/share/apps/kwin
97blacklist ${HOME}/.kde4/share/apps/plasma 97deny ${HOME}/.kde4/share/apps/plasma
98blacklist ${HOME}/.kde4/share/apps/solid 98deny ${HOME}/.kde4/share/apps/solid
99blacklist ${HOME}/.kde4/share/config/khotkeysrc 99deny ${HOME}/.kde4/share/config/khotkeysrc
100blacklist ${HOME}/.kde4/share/config/krunnerrc 100deny ${HOME}/.kde4/share/config/krunnerrc
101blacklist ${HOME}/.kde4/share/config/kscreensaverrc 101deny ${HOME}/.kde4/share/config/kscreensaverrc
102blacklist ${HOME}/.kde4/share/config/ksslcertificatemanager 102deny ${HOME}/.kde4/share/config/ksslcertificatemanager
103blacklist ${HOME}/.kde4/share/config/kwalletrc 103deny ${HOME}/.kde4/share/config/kwalletrc
104blacklist ${HOME}/.kde4/share/config/kwinrc 104deny ${HOME}/.kde4/share/config/kwinrc
105blacklist ${HOME}/.kde4/share/config/kwinrulesrc 105deny ${HOME}/.kde4/share/config/kwinrulesrc
106blacklist ${HOME}/.kde4/share/config/plasma-desktop-appletsrc 106deny ${HOME}/.kde4/share/config/plasma-desktop-appletsrc
107blacklist ${HOME}/.local/share/kglobalaccel 107deny ${HOME}/.local/share/kglobalaccel
108blacklist ${HOME}/.local/share/kwin 108deny ${HOME}/.local/share/kwin
109blacklist ${HOME}/.local/share/plasma 109deny ${HOME}/.local/share/plasma
110blacklist ${HOME}/.local/share/plasmashell 110deny ${HOME}/.local/share/plasmashell
111blacklist ${HOME}/.local/share/solid 111deny ${HOME}/.local/share/solid
112blacklist /tmp/konsole-*.history 112deny /tmp/konsole-*.history
113read-only ${HOME}/.cache/ksycoca5_* 113read-only ${HOME}/.cache/ksycoca5_*
114read-only ${HOME}/.config/*notifyrc 114read-only ${HOME}/.config/*notifyrc
115read-only ${HOME}/.config/kdeglobals 115read-only ${HOME}/.config/kdeglobals
@@ -138,124 +138,139 @@ read-only ${HOME}/.local/share/kservices5
138read-only ${HOME}/.local/share/kssl 138read-only ${HOME}/.local/share/kssl
139 139
140# KDE sockets 140# KDE sockets
141blacklist ${RUNUSER}/*.slave-socket 141deny ${RUNUSER}/*.slave-socket
142blacklist ${RUNUSER}/kdeinit5__* 142deny ${RUNUSER}/kdeinit5__*
143blacklist ${RUNUSER}/kdesud_* 143deny ${RUNUSER}/kdesud_*
144# see #3358 144# see #3358
145#?HAS_NODBUS: blacklist ${RUNUSER}/ksocket-* 145#?HAS_NODBUS: blacklist ${RUNUSER}/ksocket-*
146#?HAS_NODBUS: blacklist /tmp/ksocket-* 146#?HAS_NODBUS: blacklist /tmp/ksocket-*
147 147
148# gnome 148# gnome
149# contains extensions, last used times of applications, and notifications 149# contains extensions, last used times of applications, and notifications
150blacklist ${HOME}/.local/share/gnome-shell 150deny ${HOME}/.local/share/gnome-shell
151# contains recently used files and serials of static/removable storage 151# contains recently used files and serials of static/removable storage
152blacklist ${HOME}/.local/share/gvfs-metadata 152deny ${HOME}/.local/share/gvfs-metadata
153# no direct modification of dconf database 153# no direct modification of dconf database
154read-only ${HOME}/.config/dconf 154read-only ${HOME}/.config/dconf
155blacklist ${RUNUSER}/gnome-session-leader-fifo 155deny ${RUNUSER}/gnome-session-leader-fifo
156blacklist ${RUNUSER}/gnome-shell 156deny ${RUNUSER}/gnome-shell
157blacklist ${RUNUSER}/gsconnect 157deny ${RUNUSER}/gsconnect
158 158
159# systemd 159# systemd
160blacklist ${HOME}/.config/systemd 160deny ${HOME}/.config/systemd
161blacklist ${HOME}/.local/share/systemd 161deny ${HOME}/.local/share/systemd
162blacklist /var/lib/systemd 162deny /var/lib/systemd
163blacklist ${PATH}/systemd-run 163deny ${PATH}/systemd-run
164blacklist ${RUNUSER}/systemd 164deny ${RUNUSER}/systemd
165deny ${PATH}/systemctl
166deny /etc/systemd/system
167deny /etc/systemd/network
165# creates problems on Arch where /etc/resolv.conf is a symlink to /var/run/systemd/resolve/resolv.conf 168# creates problems on Arch where /etc/resolv.conf is a symlink to /var/run/systemd/resolve/resolv.conf
166#blacklist /var/run/systemd 169#blacklist /var/run/systemd
167 170
168# openrc 171# openrc
169blacklist /etc/runlevels/ 172deny /etc/runlevels/
170blacklist /etc/init.d/ 173deny /etc/init.d/
171blacklist /etc/rc.conf 174deny /etc/rc.conf
172 175
173# VirtualBox 176# VirtualBox
174blacklist ${HOME}/.VirtualBox 177deny ${HOME}/.VirtualBox
175blacklist ${HOME}/.config/VirtualBox 178deny ${HOME}/.config/VirtualBox
176blacklist ${HOME}/VirtualBox VMs 179deny ${HOME}/VirtualBox VMs
177 180
178# GNOME Boxes 181# GNOME Boxes
179blacklist ${HOME}/.config/gnome-boxes 182deny ${HOME}/.config/gnome-boxes
180blacklist ${HOME}/.local/share/gnome-boxes 183deny ${HOME}/.local/share/gnome-boxes
181 184
182# libvirt 185# libvirt
183blacklist ${HOME}/.cache/libvirt 186deny ${HOME}/.cache/libvirt
184blacklist ${HOME}/.config/libvirt 187deny ${HOME}/.config/libvirt
185blacklist ${RUNUSER}/libvirt 188deny ${RUNUSER}/libvirt
186blacklist /var/cache/libvirt 189deny /var/cache/libvirt
187blacklist /var/lib/libvirt 190deny /var/lib/libvirt
188blacklist /var/log/libvirt 191deny /var/log/libvirt
189 192
190# OCI-Containers / Podman 193# OCI-Containers / Podman
191blacklist ${RUNUSER}/containers 194deny ${RUNUSER}/containers
192blacklist ${RUNUSER}/crun 195deny ${RUNUSER}/crun
193blacklist ${RUNUSER}/libpod 196deny ${RUNUSER}/libpod
194blacklist ${RUNUSER}/runc 197deny ${RUNUSER}/runc
195blacklist ${RUNUSER}/toolbox 198deny ${RUNUSER}/toolbox
196 199
197# VeraCrypt 200# VeraCrypt
198blacklist ${HOME}/.VeraCrypt 201deny ${HOME}/.VeraCrypt
199blacklist ${PATH}/veracrypt 202deny ${PATH}/veracrypt
200blacklist ${PATH}/veracrypt-uninstall.sh 203deny ${PATH}/veracrypt-uninstall.sh
201blacklist /usr/share/applications/veracrypt.* 204deny /usr/share/applications/veracrypt.*
202blacklist /usr/share/pixmaps/veracrypt.* 205deny /usr/share/pixmaps/veracrypt.*
203blacklist /usr/share/veracrypt 206deny /usr/share/veracrypt
204 207
205# TrueCrypt 208# TrueCrypt
206blacklist ${HOME}/.TrueCrypt 209deny ${HOME}/.TrueCrypt
207blacklist ${PATH}/truecrypt 210deny ${PATH}/truecrypt
208blacklist ${PATH}/truecrypt-uninstall.sh 211deny ${PATH}/truecrypt-uninstall.sh
209blacklist /usr/share/applications/truecrypt.* 212deny /usr/share/applications/truecrypt.*
210blacklist /usr/share/pixmaps/truecrypt.* 213deny /usr/share/pixmaps/truecrypt.*
211blacklist /usr/share/truecrypt 214deny /usr/share/truecrypt
212 215
213# zuluCrypt 216# zuluCrypt
214blacklist ${HOME}/.zuluCrypt 217deny ${HOME}/.zuluCrypt
215blacklist ${HOME}/.zuluCrypt-socket 218deny ${HOME}/.zuluCrypt-socket
216blacklist ${PATH}/zuluCrypt-cli 219deny ${PATH}/zuluCrypt-cli
217blacklist ${PATH}/zuluMount-cli 220deny ${PATH}/zuluMount-cli
218 221
219# var 222# var
220blacklist /var/cache/apt 223deny /var/cache/apt
221blacklist /var/cache/pacman 224deny /var/cache/pacman
222blacklist /var/lib/apt 225deny /var/lib/apt
223blacklist /var/lib/clamav 226deny /var/lib/clamav
224blacklist /var/lib/dkms 227deny /var/lib/dkms
225blacklist /var/lib/mysql/mysql.sock 228deny /var/lib/mysql/mysql.sock
226blacklist /var/lib/mysqld/mysql.sock 229deny /var/lib/mysqld/mysql.sock
227blacklist /var/lib/pacman 230deny /var/lib/pacman
228blacklist /var/lib/upower 231deny /var/lib/upower
229# blacklist /var/log - a virtual /var/log directory (mostly empty) is build up by default for 232# blacklist /var/log - a virtual /var/log directory (mostly empty) is build up by default for
230# every sandbox, unless --writable-var-log switch is activated 233# every sandbox, unless --writable-var-log switch is activated
231blacklist /var/mail 234deny /var/mail
232blacklist /var/opt 235deny /var/opt
233blacklist /var/run/acpid.socket 236deny /var/run/acpid.socket
234blacklist /var/run/docker.sock 237deny /var/run/docker.sock
235blacklist /var/run/minissdpd.sock 238deny /var/run/minissdpd.sock
236blacklist /var/run/mysql/mysqld.sock 239deny /var/run/mysql/mysqld.sock
237blacklist /var/run/mysqld/mysqld.sock 240deny /var/run/mysqld/mysqld.sock
238blacklist /var/run/rpcbind.sock 241deny /var/run/rpcbind.sock
239blacklist /var/run/screens 242deny /var/run/screens
240blacklist /var/spool/anacron 243deny /var/spool/anacron
241blacklist /var/spool/cron 244deny /var/spool/cron
242blacklist /var/spool/mail 245deny /var/spool/mail
243 246
244# etc 247# etc
245blacklist /etc/anacrontab 248deny /etc/anacrontab
246blacklist /etc/cron* 249deny /etc/cron*
247blacklist /etc/profile.d 250deny /etc/profile.d
248blacklist /etc/rc.local 251deny /etc/rc.local
249# rc1.d, rc2.d, ... 252# rc1.d, rc2.d, ...
250blacklist /etc/rc?.d 253deny /etc/rc?.d
251blacklist /etc/kernel* 254deny /etc/kernel*
252blacklist /etc/grub* 255deny /etc/grub*
253blacklist /etc/dkms 256deny /etc/dkms
254blacklist /etc/apparmor* 257deny /etc/apparmor*
255blacklist /etc/selinux 258deny /etc/selinux
256blacklist /etc/modules* 259deny /etc/modules*
257blacklist /etc/logrotate* 260deny /etc/logrotate*
258blacklist /etc/adduser.conf 261deny /etc/adduser.conf
262
263# hide config for various intrusion detection systems
264deny /etc/rkhunter.conf
265deny /var/lib/rkhunter
266deny /etc/chkrootkit.conf
267deny /etc/lynis
268deny /etc/aide
269deny /etc/logcheck
270deny /etc/tripwire
271deny /etc/snort
272deny /etc/fail2ban.conf
273deny /etc/suricata
259 274
260# Startup files 275# Startup files
261read-only ${HOME}/.antigen 276read-only ${HOME}/.antigen
@@ -292,13 +307,13 @@ read-only ${HOME}/.zshrc
292read-only ${HOME}/.zshrc.local 307read-only ${HOME}/.zshrc.local
293 308
294# Remote access 309# Remote access
295blacklist ${HOME}/.rhosts 310deny ${HOME}/.rhosts
296blacklist ${HOME}/.shosts 311deny ${HOME}/.shosts
297blacklist ${HOME}/.ssh/authorized_keys 312deny ${HOME}/.ssh/authorized_keys
298blacklist ${HOME}/.ssh/authorized_keys2 313deny ${HOME}/.ssh/authorized_keys2
299blacklist ${HOME}/.ssh/environment 314deny ${HOME}/.ssh/environment
300blacklist ${HOME}/.ssh/rc 315deny ${HOME}/.ssh/rc
301blacklist /etc/hosts.equiv 316deny /etc/hosts.equiv
302read-only ${HOME}/.ssh/config 317read-only ${HOME}/.ssh/config
303read-only ${HOME}/.ssh/config.d 318read-only ${HOME}/.ssh/config.d
304 319
@@ -359,200 +374,200 @@ read-only ${HOME}/.local/share/mime
359read-only ${HOME}/.local/share/thumbnailers 374read-only ${HOME}/.local/share/thumbnailers
360 375
361# prevent access to ssh-agent 376# prevent access to ssh-agent
362blacklist /tmp/ssh-* 377deny /tmp/ssh-*
363 378
364# top secret 379# top secret
365blacklist ${HOME}/*.kdb 380deny ${HOME}/*.kdb
366blacklist ${HOME}/*.kdbx 381deny ${HOME}/*.kdbx
367blacklist ${HOME}/*.key 382deny ${HOME}/*.key
368blacklist ${HOME}/.Private 383deny ${HOME}/.Private
369blacklist ${HOME}/.caff 384deny ${HOME}/.caff
370blacklist ${HOME}/.cargo/credentials 385deny ${HOME}/.cargo/credentials
371blacklist ${HOME}/.cargo/credentials.toml 386deny ${HOME}/.cargo/credentials.toml
372blacklist ${HOME}/.cert 387deny ${HOME}/.cert
373blacklist ${HOME}/.config/keybase 388deny ${HOME}/.config/keybase
374blacklist ${HOME}/.davfs2/secrets 389deny ${HOME}/.davfs2/secrets
375blacklist ${HOME}/.ecryptfs 390deny ${HOME}/.ecryptfs
376blacklist ${HOME}/.fetchmailrc 391deny ${HOME}/.fetchmailrc
377blacklist ${HOME}/.fscrypt 392deny ${HOME}/.fscrypt
378blacklist ${HOME}/.git-credential-cache 393deny ${HOME}/.git-credential-cache
379blacklist ${HOME}/.git-credentials 394deny ${HOME}/.git-credentials
380blacklist ${HOME}/.gnome2/keyrings 395deny ${HOME}/.gnome2/keyrings
381blacklist ${HOME}/.gnupg 396deny ${HOME}/.gnupg
382blacklist ${HOME}/.config/hub 397deny ${HOME}/.config/hub
383blacklist ${HOME}/.kde/share/apps/kwallet 398deny ${HOME}/.kde/share/apps/kwallet
384blacklist ${HOME}/.kde4/share/apps/kwallet 399deny ${HOME}/.kde4/share/apps/kwallet
385blacklist ${HOME}/.local/share/keyrings 400deny ${HOME}/.local/share/keyrings
386blacklist ${HOME}/.local/share/kwalletd 401deny ${HOME}/.local/share/kwalletd
387blacklist ${HOME}/.local/share/plasma-vault 402deny ${HOME}/.local/share/plasma-vault
388blacklist ${HOME}/.msmtprc 403deny ${HOME}/.msmtprc
389blacklist ${HOME}/.mutt 404deny ${HOME}/.mutt
390blacklist ${HOME}/.muttrc 405deny ${HOME}/.muttrc
391blacklist ${HOME}/.netrc 406deny ${HOME}/.netrc
392blacklist ${HOME}/.nyx 407deny ${HOME}/.nyx
393blacklist ${HOME}/.pki 408deny ${HOME}/.pki
394blacklist ${HOME}/.local/share/pki 409deny ${HOME}/.local/share/pki
395blacklist ${HOME}/.smbcredentials 410deny ${HOME}/.smbcredentials
396blacklist ${HOME}/.ssh 411deny ${HOME}/.ssh
397blacklist ${HOME}/.vaults 412deny ${HOME}/.vaults
398blacklist /.fscrypt 413deny /.fscrypt
399blacklist /etc/davfs2/secrets 414deny /etc/davfs2/secrets
400blacklist /etc/group+ 415deny /etc/group+
401blacklist /etc/group- 416deny /etc/group-
402blacklist /etc/gshadow 417deny /etc/gshadow
403blacklist /etc/gshadow+ 418deny /etc/gshadow+
404blacklist /etc/gshadow- 419deny /etc/gshadow-
405blacklist /etc/passwd+ 420deny /etc/passwd+
406blacklist /etc/passwd- 421deny /etc/passwd-
407blacklist /etc/shadow 422deny /etc/shadow
408blacklist /etc/shadow+ 423deny /etc/shadow+
409blacklist /etc/shadow- 424deny /etc/shadow-
410blacklist /etc/ssh 425deny /etc/ssh
411blacklist /etc/ssh/* 426deny /etc/ssh/*
412blacklist /home/.ecryptfs 427deny /home/.ecryptfs
413blacklist /home/.fscrypt 428deny /home/.fscrypt
414blacklist /var/backup 429deny /var/backup
415 430
416# cloud provider configuration 431# cloud provider configuration
417blacklist ${HOME}/.aws 432deny ${HOME}/.aws
418blacklist ${HOME}/.boto 433deny ${HOME}/.boto
419blacklist ${HOME}/.config/gcloud 434deny ${HOME}/.config/gcloud
420blacklist ${HOME}/.kube 435deny ${HOME}/.kube
421blacklist ${HOME}/.passwd-s3fs 436deny ${HOME}/.passwd-s3fs
422blacklist ${HOME}/.s3cmd 437deny ${HOME}/.s3cmd
423blacklist /etc/boto.cfg 438deny /etc/boto.cfg
424 439
425# system directories 440# system directories
426blacklist /sbin 441deny /sbin
427blacklist /usr/local/sbin 442deny /usr/local/sbin
428blacklist /usr/sbin 443deny /usr/sbin
429 444
430# system management 445# system management
431blacklist ${PATH}/at 446deny ${PATH}/at
432blacklist ${PATH}/busybox 447deny ${PATH}/busybox
433blacklist ${PATH}/chage 448deny ${PATH}/chage
434blacklist ${PATH}/chfn 449deny ${PATH}/chfn
435blacklist ${PATH}/chsh 450deny ${PATH}/chsh
436blacklist ${PATH}/crontab 451deny ${PATH}/crontab
437blacklist ${PATH}/evtest 452deny ${PATH}/evtest
438blacklist ${PATH}/expiry 453deny ${PATH}/expiry
439blacklist ${PATH}/fusermount 454deny ${PATH}/fusermount
440blacklist ${PATH}/gksu 455deny ${PATH}/gksu
441blacklist ${PATH}/gksudo 456deny ${PATH}/gksudo
442blacklist ${PATH}/gpasswd 457deny ${PATH}/gpasswd
443blacklist ${PATH}/kdesudo 458deny ${PATH}/kdesudo
444blacklist ${PATH}/ksu 459deny ${PATH}/ksu
445blacklist ${PATH}/mount 460deny ${PATH}/mount
446blacklist ${PATH}/mount.ecryptfs_private 461deny ${PATH}/mount.ecryptfs_private
447blacklist ${PATH}/nc 462deny ${PATH}/nc
448blacklist ${PATH}/ncat 463deny ${PATH}/ncat
449blacklist ${PATH}/nmap 464deny ${PATH}/nmap
450blacklist ${PATH}/newgidmap 465deny ${PATH}/newgidmap
451blacklist ${PATH}/newgrp 466deny ${PATH}/newgrp
452blacklist ${PATH}/newuidmap 467deny ${PATH}/newuidmap
453blacklist ${PATH}/ntfs-3g 468deny ${PATH}/ntfs-3g
454blacklist ${PATH}/pkexec 469deny ${PATH}/pkexec
455blacklist ${PATH}/procmail 470deny ${PATH}/procmail
456blacklist ${PATH}/sg 471deny ${PATH}/sg
457blacklist ${PATH}/strace 472deny ${PATH}/strace
458blacklist ${PATH}/su 473deny ${PATH}/su
459blacklist ${PATH}/sudo 474deny ${PATH}/sudo
460blacklist ${PATH}/tcpdump 475deny ${PATH}/tcpdump
461blacklist ${PATH}/umount 476deny ${PATH}/umount
462blacklist ${PATH}/unix_chkpwd 477deny ${PATH}/unix_chkpwd
463blacklist ${PATH}/xev 478deny ${PATH}/xev
464blacklist ${PATH}/xinput 479deny ${PATH}/xinput
465 480
466# other SUID binaries 481# other SUID binaries
467blacklist /usr/lib/virtualbox 482deny /usr/lib/virtualbox
468blacklist /usr/lib64/virtualbox 483deny /usr/lib64/virtualbox
469 484
470# prevent lxterminal connecting to an existing lxterminal session 485# prevent lxterminal connecting to an existing lxterminal session
471blacklist /tmp/.lxterminal-socket* 486deny /tmp/.lxterminal-socket*
472# prevent tmux connecting to an existing session 487# prevent tmux connecting to an existing session
473blacklist /tmp/tmux-* 488deny /tmp/tmux-*
474 489
475# disable terminals running as server resulting in sandbox escape 490# disable terminals running as server resulting in sandbox escape
476blacklist ${PATH}/lxterminal 491deny ${PATH}/lxterminal
477blacklist ${PATH}/gnome-terminal 492deny ${PATH}/gnome-terminal
478blacklist ${PATH}/gnome-terminal.wrapper 493deny ${PATH}/gnome-terminal.wrapper
479blacklist ${PATH}/lilyterm 494deny ${PATH}/lilyterm
480blacklist ${PATH}/mate-terminal 495deny ${PATH}/mate-terminal
481blacklist ${PATH}/mate-terminal.wrapper 496deny ${PATH}/mate-terminal.wrapper
482blacklist ${PATH}/pantheon-terminal 497deny ${PATH}/pantheon-terminal
483blacklist ${PATH}/roxterm 498deny ${PATH}/roxterm
484blacklist ${PATH}/roxterm-config 499deny ${PATH}/roxterm-config
485blacklist ${PATH}/terminix 500deny ${PATH}/terminix
486blacklist ${PATH}/tilix 501deny ${PATH}/tilix
487blacklist ${PATH}/urxvtc 502deny ${PATH}/urxvtc
488blacklist ${PATH}/urxvtcd 503deny ${PATH}/urxvtcd
489blacklist ${PATH}/xfce4-terminal 504deny ${PATH}/xfce4-terminal
490blacklist ${PATH}/xfce4-terminal.wrapper 505deny ${PATH}/xfce4-terminal.wrapper
491# blacklist ${PATH}/konsole 506# blacklist ${PATH}/konsole
492# konsole doesn't seem to have this problem - last tested on Ubuntu 16.04 507# konsole doesn't seem to have this problem - last tested on Ubuntu 16.04
493 508
494# kernel files 509# kernel files
495blacklist /initrd* 510deny /initrd*
496blacklist /vmlinuz* 511deny /vmlinuz*
497 512
498# snapshot files 513# snapshot files
499blacklist /.snapshots 514deny /.snapshots
500 515
501# flatpak 516# flatpak
502blacklist ${HOME}/.cache/flatpak 517deny ${HOME}/.cache/flatpak
503blacklist ${HOME}/.config/flatpak 518deny ${HOME}/.config/flatpak
504noblacklist ${HOME}/.local/share/flatpak/exports 519nodeny ${HOME}/.local/share/flatpak/exports
505read-only ${HOME}/.local/share/flatpak/exports 520read-only ${HOME}/.local/share/flatpak/exports
506blacklist ${HOME}/.local/share/flatpak/* 521deny ${HOME}/.local/share/flatpak/*
507blacklist ${HOME}/.var 522deny ${HOME}/.var
508blacklist ${RUNUSER}/app 523deny ${RUNUSER}/app
509blacklist ${RUNUSER}/doc 524deny ${RUNUSER}/doc
510blacklist ${RUNUSER}/.dbus-proxy 525deny ${RUNUSER}/.dbus-proxy
511blacklist ${RUNUSER}/.flatpak 526deny ${RUNUSER}/.flatpak
512blacklist ${RUNUSER}/.flatpak-cache 527deny ${RUNUSER}/.flatpak-cache
513blacklist ${RUNUSER}/.flatpak-helper 528deny ${RUNUSER}/.flatpak-helper
514blacklist /usr/share/flatpak 529deny /usr/share/flatpak
515noblacklist /var/lib/flatpak/exports 530nodeny /var/lib/flatpak/exports
516blacklist /var/lib/flatpak/* 531deny /var/lib/flatpak/*
517# most of the time bwrap is SUID binary 532# most of the time bwrap is SUID binary
518blacklist ${PATH}/bwrap 533deny ${PATH}/bwrap
519 534
520# snap 535# snap
521blacklist ${RUNUSER}/snapd-session-agent.socket 536deny ${RUNUSER}/snapd-session-agent.socket
522 537
523# mail directories used by mutt 538# mail directories used by mutt
524blacklist ${HOME}/.Mail 539deny ${HOME}/.Mail
525blacklist ${HOME}/.mail 540deny ${HOME}/.mail
526blacklist ${HOME}/.signature 541deny ${HOME}/.signature
527blacklist ${HOME}/Mail 542deny ${HOME}/Mail
528blacklist ${HOME}/mail 543deny ${HOME}/mail
529blacklist ${HOME}/postponed 544deny ${HOME}/postponed
530blacklist ${HOME}/sent 545deny ${HOME}/sent
531 546
532# kernel configuration 547# kernel configuration
533blacklist /proc/config.gz 548deny /proc/config.gz
534 549
535# prevent DNS malware attempting to communicate with the server 550# prevent DNS malware attempting to communicate with the server
536# using regular DNS tools 551# using regular DNS tools
537blacklist ${PATH}/dig 552deny ${PATH}/dig
538blacklist ${PATH}/dlint 553deny ${PATH}/dlint
539blacklist ${PATH}/dns2tcp 554deny ${PATH}/dns2tcp
540blacklist ${PATH}/dnssec-* 555deny ${PATH}/dnssec-*
541blacklist ${PATH}/dnswalk 556deny ${PATH}/dnswalk
542blacklist ${PATH}/drill 557deny ${PATH}/drill
543blacklist ${PATH}/host 558deny ${PATH}/host
544blacklist ${PATH}/iodine 559deny ${PATH}/iodine
545blacklist ${PATH}/kdig 560deny ${PATH}/kdig
546blacklist ${PATH}/khost 561deny ${PATH}/khost
547blacklist ${PATH}/knsupdate 562deny ${PATH}/knsupdate
548blacklist ${PATH}/ldns-* 563deny ${PATH}/ldns-*
549blacklist ${PATH}/ldnsd 564deny ${PATH}/ldnsd
550blacklist ${PATH}/nslookup 565deny ${PATH}/nslookup
551blacklist ${PATH}/resolvectl 566deny ${PATH}/resolvectl
552blacklist ${PATH}/unbound-host 567deny ${PATH}/unbound-host
553 568
554# rest of ${RUNUSER} 569# rest of ${RUNUSER}
555blacklist ${RUNUSER}/*.lock 570deny ${RUNUSER}/*.lock
556blacklist ${RUNUSER}/inaccessible 571deny ${RUNUSER}/inaccessible
557blacklist ${RUNUSER}/pk-debconf-socket 572deny ${RUNUSER}/pk-debconf-socket
558blacklist ${RUNUSER}/update-notifier.pid 573deny ${RUNUSER}/update-notifier.pid
diff --git a/etc/inc/disable-devel.inc b/etc/inc/disable-devel.inc
index e74b1b40b..a893eb3f3 100644
--- a/etc/inc/disable-devel.inc
+++ b/etc/inc/disable-devel.inc
@@ -5,65 +5,65 @@ include disable-devel.local
5# development tools 5# development tools
6 6
7# clang/llvm 7# clang/llvm
8blacklist ${PATH}/clang* 8deny ${PATH}/clang*
9blacklist ${PATH}/lldb* 9deny ${PATH}/lldb*
10blacklist ${PATH}/llvm* 10deny ${PATH}/llvm*
11# see issue #2106 - it disables hardware acceleration in Firefox on Radeon GPU 11# see issue #2106 - it disables hardware acceleration in Firefox on Radeon GPU
12# blacklist /usr/lib/llvm* 12# blacklist /usr/lib/llvm*
13 13
14# GCC 14# GCC
15blacklist ${PATH}/as 15deny ${PATH}/as
16blacklist ${PATH}/cc 16deny ${PATH}/cc
17blacklist ${PATH}/c++* 17deny ${PATH}/c++*
18blacklist ${PATH}/c8* 18deny ${PATH}/c8*
19blacklist ${PATH}/c9* 19deny ${PATH}/c9*
20blacklist ${PATH}/cpp* 20deny ${PATH}/cpp*
21blacklist ${PATH}/g++* 21deny ${PATH}/g++*
22blacklist ${PATH}/gcc* 22deny ${PATH}/gcc*
23blacklist ${PATH}/gdb 23deny ${PATH}/gdb
24blacklist ${PATH}/ld 24deny ${PATH}/ld
25blacklist ${PATH}/*-gcc* 25deny ${PATH}/*-gcc*
26blacklist ${PATH}/*-g++* 26deny ${PATH}/*-g++*
27blacklist ${PATH}/*-gcc* 27deny ${PATH}/*-gcc*
28blacklist ${PATH}/*-g++* 28deny ${PATH}/*-g++*
29# seems to create problems on Gentoo 29# seems to create problems on Gentoo
30#blacklist /usr/lib/gcc 30#blacklist /usr/lib/gcc
31 31
32#Go 32#Go
33blacklist ${PATH}/gccgo 33deny ${PATH}/gccgo
34blacklist ${PATH}/go 34deny ${PATH}/go
35blacklist ${PATH}/gofmt 35deny ${PATH}/gofmt
36 36
37# Java 37# Java
38blacklist ${PATH}/java 38deny ${PATH}/java
39blacklist ${PATH}/javac 39deny ${PATH}/javac
40blacklist /etc/java 40deny /etc/java
41blacklist /usr/lib/java 41deny /usr/lib/java
42blacklist /usr/share/java 42deny /usr/share/java
43 43
44#OpenSSL 44#OpenSSL
45blacklist ${PATH}/openssl 45deny ${PATH}/openssl
46blacklist ${PATH}/openssl-1.0 46deny ${PATH}/openssl-1.0
47 47
48#Rust 48#Rust
49blacklist ${PATH}/rust-gdb 49deny ${PATH}/rust-gdb
50blacklist ${PATH}/rust-lldb 50deny ${PATH}/rust-lldb
51blacklist ${PATH}/rustc 51deny ${PATH}/rustc
52blacklist ${HOME}/.rustup 52deny ${HOME}/.rustup
53 53
54# tcc - Tiny C Compiler 54# tcc - Tiny C Compiler
55blacklist ${PATH}/tcc 55deny ${PATH}/tcc
56blacklist ${PATH}/x86_64-tcc 56deny ${PATH}/x86_64-tcc
57blacklist /usr/lib/tcc 57deny /usr/lib/tcc
58 58
59# Valgrind 59# Valgrind
60blacklist ${PATH}/valgrind* 60deny ${PATH}/valgrind*
61blacklist /usr/lib/valgrind 61deny /usr/lib/valgrind
62 62
63 63
64# Source-Code 64# Source-Code
65 65
66blacklist /usr/src 66deny /usr/src
67blacklist /usr/local/src 67deny /usr/local/src
68blacklist /usr/include 68deny /usr/include
69blacklist /usr/local/include 69deny /usr/local/include
diff --git a/etc/inc/disable-interpreters.inc b/etc/inc/disable-interpreters.inc
index 5d8a236fb..c77d9a490 100644
--- a/etc/inc/disable-interpreters.inc
+++ b/etc/inc/disable-interpreters.inc
@@ -3,66 +3,66 @@
3include disable-interpreters.local 3include disable-interpreters.local
4 4
5# gjs 5# gjs
6blacklist ${PATH}/gjs 6deny ${PATH}/gjs
7blacklist ${PATH}/gjs-console 7deny ${PATH}/gjs-console
8blacklist /usr/lib/gjs 8deny /usr/lib/gjs
9blacklist /usr/lib/libgjs* 9deny /usr/lib/libgjs*
10blacklist /usr/lib64/gjs 10deny /usr/lib64/gjs
11blacklist /usr/lib64/libgjs* 11deny /usr/lib64/libgjs*
12 12
13# Lua 13# Lua
14blacklist ${PATH}/lua* 14deny ${PATH}/lua*
15blacklist /usr/include/lua* 15deny /usr/include/lua*
16blacklist /usr/lib/liblua* 16deny /usr/lib/liblua*
17blacklist /usr/lib/lua 17deny /usr/lib/lua
18blacklist /usr/lib64/liblua* 18deny /usr/lib64/liblua*
19blacklist /usr/lib64/lua 19deny /usr/lib64/lua
20blacklist /usr/share/lua* 20deny /usr/share/lua*
21 21
22# mozjs 22# mozjs
23blacklist /usr/lib/libmozjs-* 23deny /usr/lib/libmozjs-*
24blacklist /usr/lib64/libmozjs-* 24deny /usr/lib64/libmozjs-*
25 25
26# Node.js 26# Node.js
27blacklist ${PATH}/node 27deny ${PATH}/node
28blacklist /usr/include/node 28deny /usr/include/node
29 29
30# nvm 30# nvm
31blacklist ${HOME}/.nvm 31deny ${HOME}/.nvm
32 32
33# Perl 33# Perl
34blacklist ${PATH}/core_perl 34deny ${PATH}/core_perl
35blacklist ${PATH}/cpan* 35deny ${PATH}/cpan*
36blacklist ${PATH}/perl 36deny ${PATH}/perl
37blacklist ${PATH}/site_perl 37deny ${PATH}/site_perl
38blacklist ${PATH}/vendor_perl 38deny ${PATH}/vendor_perl
39blacklist /usr/lib/perl* 39deny /usr/lib/perl*
40blacklist /usr/lib64/perl* 40deny /usr/lib64/perl*
41blacklist /usr/share/perl* 41deny /usr/share/perl*
42 42
43# PHP 43# PHP
44blacklist ${PATH}/php* 44deny ${PATH}/php*
45blacklist /usr/lib/php* 45deny /usr/lib/php*
46blacklist /usr/share/php* 46deny /usr/share/php*
47 47
48# Ruby 48# Ruby
49blacklist ${PATH}/ruby 49deny ${PATH}/ruby
50blacklist /usr/lib/ruby 50deny /usr/lib/ruby
51 51
52# Programs using python: deluge, firefox addons, filezilla, cherrytree, xchat, hexchat, libreoffice, scribus 52# Programs using python: deluge, firefox addons, filezilla, cherrytree, xchat, hexchat, libreoffice, scribus
53# Python 2 53# Python 2
54blacklist ${PATH}/python2* 54deny ${PATH}/python2*
55blacklist /usr/include/python2* 55deny /usr/include/python2*
56blacklist /usr/lib/python2* 56deny /usr/lib/python2*
57blacklist /usr/local/lib/python2* 57deny /usr/local/lib/python2*
58blacklist /usr/share/python2* 58deny /usr/share/python2*
59 59
60# You will want to add noblacklist for python3 stuff in the firefox and/or chromium profiles if you use the Gnome connector (see Issue #2026) 60# You will want to add noblacklist for python3 stuff in the firefox and/or chromium profiles if you use the Gnome connector (see Issue #2026)
61 61
62# Python 3 62# Python 3
63blacklist ${PATH}/python3* 63deny ${PATH}/python3*
64blacklist /usr/include/python3* 64deny /usr/include/python3*
65blacklist /usr/lib/python3* 65deny /usr/lib/python3*
66blacklist /usr/lib64/python3* 66deny /usr/lib64/python3*
67blacklist /usr/local/lib/python3* 67deny /usr/local/lib/python3*
68blacklist /usr/share/python3* 68deny /usr/share/python3*
diff --git a/etc/inc/disable-passwdmgr.inc b/etc/inc/disable-passwdmgr.inc
index 3ed9a1b14..0a61bc46f 100644
--- a/etc/inc/disable-passwdmgr.inc
+++ b/etc/inc/disable-passwdmgr.inc
@@ -2,18 +2,18 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include disable-passwdmgr.local 3include disable-passwdmgr.local
4 4
5blacklist ${HOME}/.config/Bitwarden 5deny ${HOME}/.config/Bitwarden
6blacklist ${HOME}/.config/KeePass 6deny ${HOME}/.config/KeePass
7blacklist ${HOME}/.config/keepass 7deny ${HOME}/.config/keepass
8blacklist ${HOME}/.config/keepassx 8deny ${HOME}/.config/keepassx
9blacklist ${HOME}/.config/keepassxc 9deny ${HOME}/.config/keepassxc
10blacklist ${HOME}/.config/KeePassXCrc 10deny ${HOME}/.config/KeePassXCrc
11blacklist ${HOME}/.config/Sinew Software Systems 11deny ${HOME}/.config/Sinew Software Systems
12blacklist ${HOME}/.fpm 12deny ${HOME}/.fpm
13blacklist ${HOME}/.keepass 13deny ${HOME}/.keepass
14blacklist ${HOME}/.keepassx 14deny ${HOME}/.keepassx
15blacklist ${HOME}/.keepassxc 15deny ${HOME}/.keepassxc
16blacklist ${HOME}/.lastpass 16deny ${HOME}/.lastpass
17blacklist ${HOME}/.local/share/KeePass 17deny ${HOME}/.local/share/KeePass
18blacklist ${HOME}/.local/share/keepass 18deny ${HOME}/.local/share/keepass
19blacklist ${HOME}/.password-store 19deny ${HOME}/.password-store
diff --git a/etc/inc/disable-programs.inc b/etc/inc/disable-programs.inc
index 90abe1d3e..5fe2f8c28 100644
--- a/etc/inc/disable-programs.inc
+++ b/etc/inc/disable-programs.inc
@@ -2,1083 +2,1097 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include disable-programs.local 3include disable-programs.local
4 4
5blacklist ${HOME}/Arduino 5deny ${HOME}/.*coin
6blacklist ${HOME}/i2p 6deny ${HOME}/.8pecxstudios
7blacklist ${HOME}/Monero/wallets 7deny ${HOME}/.AndroidStudio*
8blacklist ${HOME}/Nextcloud 8deny ${HOME}/.Atom
9blacklist ${HOME}/Nextcloud/Notes 9deny ${HOME}/.CLion*
10blacklist ${HOME}/SoftMaker 10deny ${HOME}/.FBReader
11blacklist ${HOME}/Standard Notes Backups 11deny ${HOME}/.FontForge
12blacklist ${HOME}/TeamSpeak3-Client-linux_x86 12deny ${HOME}/.IdeaIC*
13blacklist ${HOME}/TeamSpeak3-Client-linux_amd64 13deny ${HOME}/.LuminanceHDR
14blacklist ${HOME}/hyperrogue.ini 14deny ${HOME}/.Mathematica
15blacklist ${HOME}/mps 15deny ${HOME}/.Natron
16blacklist ${HOME}/wallet.dat 16deny ${HOME}/.PlayOnLinux
17blacklist ${HOME}/.*coin 17deny ${HOME}/.PyCharm*
18blacklist ${HOME}/.8pecxstudios 18deny ${HOME}/.Sayonara
19blacklist ${HOME}/.AndroidStudio* 19deny ${HOME}/.Steam
20blacklist ${HOME}/.Atom 20deny ${HOME}/.Steampath
21blacklist ${HOME}/.CLion* 21deny ${HOME}/.Steampid
22blacklist ${HOME}/.FBReader 22deny ${HOME}/.TelegramDesktop
23blacklist ${HOME}/.FontForge 23deny ${HOME}/.VSCodium
24blacklist ${HOME}/.IdeaIC* 24deny ${HOME}/.ViberPC
25blacklist ${HOME}/.LuminanceHDR 25deny ${HOME}/.VirtualBox
26blacklist ${HOME}/.Mathematica 26deny ${HOME}/.WebStorm*
27blacklist ${HOME}/.Natron 27deny ${HOME}/.Wolfram Research
28blacklist ${HOME}/.PlayOnLinux 28deny ${HOME}/.ZAP
29blacklist ${HOME}/.PyCharm* 29deny ${HOME}/.aMule
30blacklist ${HOME}/.Sayonara 30deny ${HOME}/.abook
31blacklist ${HOME}/.Steam 31deny ${HOME}/.addressbook
32blacklist ${HOME}/.Steampath 32deny ${HOME}/.alpine-smime
33blacklist ${HOME}/.Steampid 33deny ${HOME}/.android
34blacklist ${HOME}/.TelegramDesktop 34deny ${HOME}/.anydesk
35blacklist ${HOME}/.VSCodium 35deny ${HOME}/.arduino15
36blacklist ${HOME}/.ViberPC 36deny ${HOME}/.aria2
37blacklist ${HOME}/.VirtualBox 37deny ${HOME}/.arm
38blacklist ${HOME}/.WebStorm* 38deny ${HOME}/.asunder_album_artist
39blacklist ${HOME}/.Wolfram Research 39deny ${HOME}/.asunder_album_genre
40blacklist ${HOME}/.ZAP 40deny ${HOME}/.asunder_album_title
41blacklist ${HOME}/.abook 41deny ${HOME}/.atom
42blacklist ${HOME}/.aMule 42deny ${HOME}/.attic
43blacklist ${HOME}/.android 43deny ${HOME}/.audacity-data
44blacklist ${HOME}/.anydesk 44deny ${HOME}/.avidemux6
45blacklist ${HOME}/.arduino15 45deny ${HOME}/.ballbuster.hs
46blacklist ${HOME}/.aria2 46deny ${HOME}/.balsa
47blacklist ${HOME}/.arm 47deny ${HOME}/.bcast5
48blacklist ${HOME}/.asunder_album_artist 48deny ${HOME}/.bibletime
49blacklist ${HOME}/.asunder_album_genre 49deny ${HOME}/.bitcoin
50blacklist ${HOME}/.asunder_album_title 50deny ${HOME}/.blobby
51blacklist ${HOME}/.atom 51deny ${HOME}/.bogofilter
52blacklist ${HOME}/.attic 52deny ${HOME}/.bzf
53blacklist ${HOME}/.audacity-data 53deny ${HOME}/.cargo/*
54blacklist ${HOME}/.avidemux6 54deny ${HOME}/.claws-mail
55blacklist ${HOME}/.ballbuster.hs 55deny ${HOME}/.cliqz
56blacklist ${HOME}/.balsa 56deny ${HOME}/.clion*
57blacklist ${HOME}/.bcast5 57deny ${HOME}/.clonk
58blacklist ${HOME}/.bibletime 58deny ${HOME}/.config/0ad
59blacklist ${HOME}/.bitcoin 59deny ${HOME}/.config/2048-qt
60blacklist ${HOME}/.bogofilter 60deny ${HOME}/.config/Atom
61blacklist ${HOME}/.bzf 61deny ${HOME}/.config/Audaciousrc
62blacklist ${HOME}/.cargo/advisory-db 62deny ${HOME}/.config/Authenticator
63blacklist ${HOME}/.cargo/config 63deny ${HOME}/.config/Beaker Browser
64blacklist ${HOME}/.cargo/git 64deny ${HOME}/.config/Bitcoin
65blacklist ${HOME}/.cargo/registry 65deny ${HOME}/.config/Bitwarden
66blacklist ${HOME}/.cargo/.crates.toml 66deny ${HOME}/.config/Brackets
67blacklist ${HOME}/.cargo/.crates2.json 67deny ${HOME}/.config/BraveSoftware
68blacklist ${HOME}/.cargo/.package-cache 68deny ${HOME}/.config/Clementine
69blacklist ${HOME}/.claws-mail 69deny ${HOME}/.config/Code
70blacklist ${HOME}/.cliqz 70deny ${HOME}/.config/Code - OSS
71blacklist ${HOME}/.clonk 71deny ${HOME}/.config/Code Industry
72blacklist ${HOME}/.config/0ad 72deny ${HOME}/.config/Cryptocat
73blacklist ${HOME}/.config/2048-qt 73deny ${HOME}/.config/Debauchee/Barrier.conf
74blacklist ${HOME}/.config/Atom 74deny ${HOME}/.config/Dharkael
75blacklist ${HOME}/.config/Audaciousrc 75deny ${HOME}/.config/ENCOM
76blacklist ${HOME}/.config/Authenticator 76deny ${HOME}/.config/Element
77blacklist ${HOME}/.config/Beaker Browser 77deny ${HOME}/.config/Element (Riot)
78blacklist ${HOME}/.config/Bitcoin 78deny ${HOME}/.config/Enox
79blacklist ${HOME}/.config/Bitwarden 79deny ${HOME}/.config/Epic
80blacklist ${HOME}/.config/Brackets 80deny ${HOME}/.config/Ferdi
81blacklist ${HOME}/.config/BraveSoftware 81deny ${HOME}/.config/Flavio Tordini
82blacklist ${HOME}/.config/Clementine 82deny ${HOME}/.config/Franz
83blacklist ${HOME}/.config/Code 83deny ${HOME}/.config/FreeCAD
84blacklist ${HOME}/.config/Code - OSS 84deny ${HOME}/.config/FreeTube
85blacklist ${HOME}/.config/Code Industry 85deny ${HOME}/.config/Fritzing
86blacklist ${HOME}/.config/Cryptocat 86deny ${HOME}/.config/GIMP
87blacklist ${HOME}/.config/Debauchee/Barrier.conf 87deny ${HOME}/.config/GitHub Desktop
88blacklist ${HOME}/.config/Dharkael 88deny ${HOME}/.config/Gitter
89blacklist ${HOME}/.config/Element 89deny ${HOME}/.config/Google
90blacklist ${HOME}/.config/Element (Riot) 90deny ${HOME}/.config/Google Play Music Desktop Player
91blacklist ${HOME}/.config/ENCOM 91deny ${HOME}/.config/Gpredict
92blacklist ${HOME}/.config/Enox 92deny ${HOME}/.config/INRIA
93blacklist ${HOME}/.config/Epic 93deny ${HOME}/.config/InSilmaril
94blacklist ${HOME}/.config/Ferdi 94deny ${HOME}/.config/Jitsi Meet
95blacklist ${HOME}/.config/Flavio Tordini 95deny ${HOME}/.config/JetBrains/CLion*
96blacklist ${HOME}/.config/Franz 96deny ${HOME}/.config/KDE/neochat
97blacklist ${HOME}/.config/FreeCAD 97deny ${HOME}/.config/Kid3
98blacklist ${HOME}/.config/FreeTube 98deny ${HOME}/.config/Kingsoft
99blacklist ${HOME}/.config/Fritzing 99deny ${HOME}/.config/LibreCAD
100blacklist ${HOME}/.config/GIMP 100deny ${HOME}/.config/Loop_Hero
101blacklist ${HOME}/.config/GitHub Desktop 101deny ${HOME}/.config/Luminance
102blacklist ${HOME}/.config/Gitter 102deny ${HOME}/.config/LyX
103blacklist ${HOME}/.config/Google 103deny ${HOME}/.config/Mattermost
104blacklist ${HOME}/.config/Google Play Music Desktop Player 104deny ${HOME}/.config/Meltytech
105blacklist ${HOME}/.config/Gpredict 105deny ${HOME}/.config/Mendeley Ltd.
106blacklist ${HOME}/.config/INRIA 106deny ${HOME}/.config/Microsoft
107blacklist ${HOME}/.config/InSilmaril 107deny ${HOME}/.config/Min
108blacklist ${HOME}/.config/Jitsi Meet 108deny ${HOME}/.config/ModTheSpire
109blacklist ${HOME}/.config/KDE/neochat 109deny ${HOME}/.config/Mousepad
110blacklist ${HOME}/.config/Kid3 110deny ${HOME}/.config/Mumble
111blacklist ${HOME}/.config/Kingsoft 111deny ${HOME}/.config/MusE
112blacklist ${HOME}/.config/Loop_Hero 112deny ${HOME}/.config/MuseScore
113blacklist ${HOME}/.config/Luminance 113deny ${HOME}/.config/MusicBrainz
114blacklist ${HOME}/.config/LyX 114deny ${HOME}/.config/Nathan Osman
115blacklist ${HOME}/.config/Mattermost 115deny ${HOME}/.config/Nextcloud
116blacklist ${HOME}/.config/Meltytech 116deny ${HOME}/.config/NitroShare
117blacklist ${HOME}/.config/Mendeley Ltd. 117deny ${HOME}/.config/Nylas Mail
118blacklist ${HOME}/.config/Min 118deny ${HOME}/.config/PBE
119blacklist ${HOME}/.config/ModTheSpire 119deny ${HOME}/.config/PacmanLogViewer
120blacklist ${HOME}/.config/Mousepad 120deny ${HOME}/.config/PawelStolowski
121blacklist ${HOME}/.config/Mumble 121deny ${HOME}/.config/Philipp Schmieder
122blacklist ${HOME}/.config/MusE 122deny ${HOME}/.config/Pinta
123blacklist ${HOME}/.config/MuseScore 123deny ${HOME}/.config/QGIS
124blacklist ${HOME}/.config/MusicBrainz 124deny ${HOME}/.config/QMediathekView
125blacklist ${HOME}/.config/Nathan Osman 125deny ${HOME}/.config/Qlipper
126blacklist ${HOME}/.config/Nextcloud 126deny ${HOME}/.config/QuiteRss
127blacklist ${HOME}/.config/Nylas Mail 127deny ${HOME}/.config/QuiteRssrc
128blacklist ${HOME}/.config/PacmanLogViewer 128deny ${HOME}/.config/Quotient
129blacklist ${HOME}/.config/PawelStolowski 129deny ${HOME}/.config/Rambox
130blacklist ${HOME}/.config/PBE 130deny ${HOME}/.config/Riot
131blacklist ${HOME}/.config/Philipp Schmieder 131deny ${HOME}/.config/Rocket.Chat
132blacklist ${HOME}/.config/QGIS 132deny ${HOME}/.config/RogueLegacy
133blacklist ${HOME}/.config/QMediathekView 133deny ${HOME}/.config/RogueLegacyStorageContainer
134blacklist ${HOME}/.config/Qlipper 134deny ${HOME}/.config/Signal
135blacklist ${HOME}/.config/QuiteRss 135deny ${HOME}/.config/Sinew Software Systems
136blacklist ${HOME}/.config/QuiteRssrc 136deny ${HOME}/.config/Slack
137blacklist ${HOME}/.config/Quotient 137deny ${HOME}/.config/Standard Notes
138blacklist ${HOME}/.config/Rambox 138deny ${HOME}/.config/SubDownloader
139blacklist ${HOME}/.config/Riot 139deny ${HOME}/.config/Thunar
140blacklist ${HOME}/.config/Rocket.Chat 140deny ${HOME}/.config/Twitch
141blacklist ${HOME}/.config/RogueLegacy 141deny ${HOME}/.config/Unknown Organization
142blacklist ${HOME}/.config/RogueLegacyStorageContainer 142deny ${HOME}/.config/VirtualBox
143blacklist ${HOME}/.config/Signal 143deny ${HOME}/.config/Whalebird
144blacklist ${HOME}/.config/Sinew Software Systems 144deny ${HOME}/.config/Wire
145blacklist ${HOME}/.config/Slack 145deny ${HOME}/.config/Youtube
146blacklist ${HOME}/.config/Standard Notes 146deny ${HOME}/.config/ZeGrapher Project
147blacklist ${HOME}/.config/SubDownloader 147deny ${HOME}/.config/Zeal
148blacklist ${HOME}/.config/Thunar 148deny ${HOME}/.config/Zulip
149blacklist ${HOME}/.config/Twitch 149deny ${HOME}/.config/aacs
150blacklist ${HOME}/.config/Unknown Organization 150deny ${HOME}/.config/abiword
151blacklist ${HOME}/.config/VirtualBox 151deny ${HOME}/.config/agenda
152blacklist ${HOME}/.config/Wire 152deny ${HOME}/.config/akonadi*
153blacklist ${HOME}/.config/Youtube 153deny ${HOME}/.config/akregatorrc
154blacklist ${HOME}/.config/Zeal 154deny ${HOME}/.config/alacritty
155blacklist ${HOME}/.config/ZeGrapher Project 155deny ${HOME}/.config/ardour4
156blacklist ${HOME}/.config/aacs 156deny ${HOME}/.config/ardour5
157blacklist ${HOME}/.config/abiword 157deny ${HOME}/.config/aria2
158blacklist ${HOME}/.config/agenda 158deny ${HOME}/.config/arkrc
159blacklist ${HOME}/.config/akonadi* 159deny ${HOME}/.config/artha.conf
160blacklist ${HOME}/.config/akregatorrc 160deny ${HOME}/.config/artha.log
161blacklist ${HOME}/.config/alacritty 161deny ${HOME}/.config/asunder
162blacklist ${HOME}/.config/ardour4 162deny ${HOME}/.config/atril
163blacklist ${HOME}/.config/ardour5 163deny ${HOME}/.config/audacious
164blacklist ${HOME}/.config/aria2 164deny ${HOME}/.config/autokey
165blacklist ${HOME}/.config/arkrc 165deny ${HOME}/.config/avidemux3_qt5rc
166blacklist ${HOME}/.config/artha.conf 166deny ${HOME}/.config/aweather
167blacklist ${HOME}/.config/artha.log 167deny ${HOME}/.config/backintime
168blacklist ${HOME}/.config/asunder 168deny ${HOME}/.config/baloofilerc
169blacklist ${HOME}/.config/atril 169deny ${HOME}/.config/baloorc
170blacklist ${HOME}/.config/audacious 170deny ${HOME}/.config/bcompare
171blacklist ${HOME}/.config/autokey 171deny ${HOME}/.config/blender
172blacklist ${HOME}/.config/avidemux3_qt5rc 172deny ${HOME}/.config/bless
173blacklist ${HOME}/.config/aweather 173deny ${HOME}/.config/bnox
174blacklist ${HOME}/.config/backintime 174deny ${HOME}/.config/borg
175blacklist ${HOME}/.config/baloofilerc 175deny ${HOME}/.config/brasero
176blacklist ${HOME}/.config/baloorc 176deny ${HOME}/.config/brave
177blacklist ${HOME}/.config/bcompare 177deny ${HOME}/.config/brave-flags.conf
178blacklist ${HOME}/.config/blender 178deny ${HOME}/.config/caja
179blacklist ${HOME}/.config/bless 179deny ${HOME}/.config/calibre
180blacklist ${HOME}/.config/bnox 180deny ${HOME}/.config/cantata
181blacklist ${HOME}/.config/borg 181deny ${HOME}/.config/catfish
182blacklist ${HOME}/.config/brasero 182deny ${HOME}/.config/cawbird
183blacklist ${HOME}/.config/brave 183deny ${HOME}/.config/celluloid
184blacklist ${HOME}/.config/brave-flags.conf 184deny ${HOME}/.config/cherrytree
185blacklist ${HOME}/.config/caja 185deny ${HOME}/.config/chrome-beta-flags.conf
186blacklist ${HOME}/.config/calibre 186deny ${HOME}/.config/chrome-beta-flags.config
187blacklist ${HOME}/.config/cantata 187deny ${HOME}/.config/chrome-flags.conf
188blacklist ${HOME}/.config/catfish 188deny ${HOME}/.config/chrome-flags.config
189blacklist ${HOME}/.config/cawbird 189deny ${HOME}/.config/chrome-unstable-flags.conf
190blacklist ${HOME}/.config/celluloid 190deny ${HOME}/.config/chrome-unstable-flags.config
191blacklist ${HOME}/.config/cherrytree 191deny ${HOME}/.config/chromium
192blacklist ${HOME}/.config/chrome-beta-flags.conf 192deny ${HOME}/.config/chromium-dev
193blacklist ${HOME}/.config/chrome-beta-flags.config 193deny ${HOME}/.config/chromium-flags.conf
194blacklist ${HOME}/.config/chrome-flags.conf 194deny ${HOME}/.config/clipit
195blacklist ${HOME}/.config/chrome-flags.config 195deny ${HOME}/.config/cliqz
196blacklist ${HOME}/.config/chrome-unstable-flags.conf 196deny ${HOME}/.config/cmus
197blacklist ${HOME}/.config/chrome-unstable-flags.config 197deny ${HOME}/.config/com.github.bleakgrey.tootle
198blacklist ${HOME}/.config/chromium 198deny ${HOME}/.config/corebird
199blacklist ${HOME}/.config/chromium-dev 199deny ${HOME}/.config/cower
200blacklist ${HOME}/.config/chromium-flags.conf 200deny ${HOME}/.config/coyim
201blacklist ${HOME}/.config/clipit 201deny ${HOME}/.config/d-feet
202blacklist ${HOME}/.config/cliqz 202deny ${HOME}/.config/darktable
203blacklist ${HOME}/.config/cmus 203deny ${HOME}/.config/deadbeef
204blacklist ${HOME}/.config/com.github.bleakgrey.tootle 204deny ${HOME}/.config/deluge
205blacklist ${HOME}/.config/corebird 205deny ${HOME}/.config/devilspie2
206blacklist ${HOME}/.config/cower 206deny ${HOME}/.config/digikam
207blacklist ${HOME}/.config/coyim 207deny ${HOME}/.config/digikamrc
208blacklist ${HOME}/.config/darktable 208deny ${HOME}/.config/discord
209blacklist ${HOME}/.config/deadbeef 209deny ${HOME}/.config/discordcanary
210blacklist ${HOME}/.config/deluge 210deny ${HOME}/.config/dkl
211blacklist ${HOME}/.config/devilspie2 211deny ${HOME}/.config/dnox
212blacklist ${HOME}/.config/digikam 212deny ${HOME}/.config/dolphin-emu
213blacklist ${HOME}/.config/digikamrc 213deny ${HOME}/.config/dolphinrc
214blacklist ${HOME}/.config/discord 214deny ${HOME}/.config/dragonplayerrc
215blacklist ${HOME}/.config/discordcanary 215deny ${HOME}/.config/draw.io
216blacklist ${HOME}/.config/dkl 216deny ${HOME}/.config/electron-mail
217blacklist ${HOME}/.config/dnox 217deny ${HOME}/.config/emaildefaults
218blacklist ${HOME}/.config/dolphin-emu 218deny ${HOME}/.config/emailidentities
219blacklist ${HOME}/.config/dolphinrc 219deny ${HOME}/.config/emilia
220blacklist ${HOME}/.config/dragonplayerrc 220deny ${HOME}/.config/enchant
221blacklist ${HOME}/.config/draw.io 221deny ${HOME}/.config/eog
222blacklist ${HOME}/.config/d-feet 222deny ${HOME}/.config/epiphany
223blacklist ${HOME}/.config/electron-mail 223deny ${HOME}/.config/equalx
224blacklist ${HOME}/.config/emaildefaults 224deny ${HOME}/.config/evince
225blacklist ${HOME}/.config/emailidentities 225deny ${HOME}/.config/evolution
226blacklist ${HOME}/.config/emilia 226deny ${HOME}/.config/falkon
227blacklist ${HOME}/.config/enchant 227deny ${HOME}/.config/filezilla
228blacklist ${HOME}/.config/eog 228deny ${HOME}/.config/flameshot
229blacklist ${HOME}/.config/epiphany 229deny ${HOME}/.config/flaska.net
230blacklist ${HOME}/.config/equalx 230deny ${HOME}/.config/flowblade
231blacklist ${HOME}/.config/evince 231deny ${HOME}/.config/font-manager
232blacklist ${HOME}/.config/evolution 232deny ${HOME}/.config/freecol
233blacklist ${HOME}/.config/falkon 233deny ${HOME}/.config/gajim
234blacklist ${HOME}/.config/filezilla 234deny ${HOME}/.config/galculator
235blacklist ${HOME}/.config/flameshot 235deny ${HOME}/.config/gconf
236blacklist ${HOME}/.config/flaska.net 236deny ${HOME}/.config/geany
237blacklist ${HOME}/.config/flowblade 237deny ${HOME}/.config/geary
238blacklist ${HOME}/.config/font-manager 238deny ${HOME}/.config/gedit
239blacklist ${HOME}/.config/freecol 239deny ${HOME}/.config/geeqie
240blacklist ${HOME}/.config/gajim 240deny ${HOME}/.config/ghb
241blacklist ${HOME}/.config/galculator 241deny ${HOME}/.config/ghostwriter
242blacklist ${HOME}/.config/gconf 242deny ${HOME}/.config/git
243blacklist ${HOME}/.config/geany 243deny ${HOME}/.config/git-cola
244blacklist ${HOME}/.config/geary 244deny ${HOME}/.config/glade.conf
245blacklist ${HOME}/.config/gedit 245deny ${HOME}/.config/globaltime
246blacklist ${HOME}/.config/geeqie 246deny ${HOME}/.config/gmpc
247blacklist ${HOME}/.config/ghb 247deny ${HOME}/.config/gnome-builder
248blacklist ${HOME}/.config/ghostwriter 248deny ${HOME}/.config/gnome-chess
249blacklist ${HOME}/.config/git 249deny ${HOME}/.config/gnome-control-center
250blacklist ${HOME}/.config/git-cola 250deny ${HOME}/.config/gnome-initial-setup-done
251blacklist ${HOME}/.config/glade.conf 251deny ${HOME}/.config/gnome-latex
252blacklist ${HOME}/.config/globaltime 252deny ${HOME}/.config/gnome-mplayer
253blacklist ${HOME}/.config/gmpc 253deny ${HOME}/.config/gnome-mpv
254blacklist ${HOME}/.config/gnome-builder 254deny ${HOME}/.config/gnome-pie
255blacklist ${HOME}/.config/gnome-chess 255deny ${HOME}/.config/gnome-session
256blacklist ${HOME}/.config/gnome-control-center 256deny ${HOME}/.config/gnote
257blacklist ${HOME}/.config/gnome-initial-setup-done 257deny ${HOME}/.config/godot
258blacklist ${HOME}/.config/gnome-latex 258deny ${HOME}/.config/google-chrome
259blacklist ${HOME}/.config/gnome-mplayer 259deny ${HOME}/.config/google-chrome-beta
260blacklist ${HOME}/.config/gnome-mpv 260deny ${HOME}/.config/google-chrome-unstable
261blacklist ${HOME}/.config/gnome-pie 261deny ${HOME}/.config/gpicview
262blacklist ${HOME}/.config/gnome-session 262deny ${HOME}/.config/gthumb
263blacklist ${HOME}/.config/gnote 263deny ${HOME}/.config/gummi
264blacklist ${HOME}/.config/godot 264deny ${HOME}/.config/guvcview2
265blacklist ${HOME}/.config/google-chrome 265deny ${HOME}/.config/gwenviewrc
266blacklist ${HOME}/.config/google-chrome-beta 266deny ${HOME}/.config/hexchat
267blacklist ${HOME}/.config/google-chrome-unstable 267deny ${HOME}/.config/homebank
268blacklist ${HOME}/.config/gpicview 268deny ${HOME}/.config/i2p
269blacklist ${HOME}/.config/gthumb 269deny ${HOME}/.config/inkscape
270blacklist ${HOME}/.config/gummi 270deny ${HOME}/.config/inox
271blacklist ${HOME}/.config/guvcview2 271deny ${HOME}/.config/iridium
272blacklist ${HOME}/.config/gwenviewrc 272deny ${HOME}/.config/itch
273blacklist ${HOME}/.config/hexchat 273deny ${HOME}/.config/jami
274blacklist ${HOME}/.config/homebank 274deny ${HOME}/.config/jd-gui.cfg
275blacklist ${HOME}/.config/i2p 275deny ${HOME}/.config/k3brc
276blacklist ${HOME}/.config/inkscape 276deny ${HOME}/.config/kaffeinerc
277blacklist ${HOME}/.config/inox 277deny ${HOME}/.config/kalgebrarc
278blacklist ${HOME}/.config/iridium 278deny ${HOME}/.config/katemetainfos
279blacklist ${HOME}/.config/itch 279deny ${HOME}/.config/katepartrc
280blacklist ${HOME}/.config/jami 280deny ${HOME}/.config/katerc
281blacklist ${HOME}/.config/jd-gui.cfg 281deny ${HOME}/.config/kateschemarc
282blacklist ${HOME}/.config/k3brc 282deny ${HOME}/.config/katesyntaxhighlightingrc
283blacklist ${HOME}/.config/kaffeinerc 283deny ${HOME}/.config/katevirc
284blacklist ${HOME}/.config/kalgebrarc 284deny ${HOME}/.config/kazam
285blacklist ${HOME}/.config/katemetainfos 285deny ${HOME}/.config/kdeconnect
286blacklist ${HOME}/.config/katepartrc 286deny ${HOME}/.config/kdenliverc
287blacklist ${HOME}/.config/katerc 287deny ${HOME}/.config/kdiff3fileitemactionrc
288blacklist ${HOME}/.config/kateschemarc 288deny ${HOME}/.config/kdiff3rc
289blacklist ${HOME}/.config/katesyntaxhighlightingrc 289deny ${HOME}/.config/kfindrc
290blacklist ${HOME}/.config/katevirc 290deny ${HOME}/.config/kgetrc
291blacklist ${HOME}/.config/kazam 291deny ${HOME}/.config/kid3rc
292blacklist ${HOME}/.config/kdeconnect 292deny ${HOME}/.config/klavaro
293blacklist ${HOME}/.config/kdenliverc 293deny ${HOME}/.config/klipperrc
294blacklist ${HOME}/.config/kdiff3fileitemactionrc 294deny ${HOME}/.config/kmail2rc
295blacklist ${HOME}/.config/kdiff3rc 295deny ${HOME}/.config/kmailsearchindexingrc
296blacklist ${HOME}/.config/kfindrc 296deny ${HOME}/.config/kmplayerrc
297blacklist ${HOME}/.config/kgetrc 297deny ${HOME}/.config/knotesrc
298blacklist ${HOME}/.config/kid3rc 298deny ${HOME}/.config/konversation.notifyrc
299blacklist ${HOME}/.config/klavaro 299deny ${HOME}/.config/konversationrc
300blacklist ${HOME}/.config/klipperrc 300deny ${HOME}/.config/kritarc
301blacklist ${HOME}/.config/kmail2rc 301deny ${HOME}/.config/ktorrentrc
302blacklist ${HOME}/.config/kmailsearchindexingrc 302deny ${HOME}/.config/ktouch2rc
303blacklist ${HOME}/.config/kmplayerrc 303deny ${HOME}/.config/kube
304blacklist ${HOME}/.config/knotesrc 304deny ${HOME}/.config/kwriterc
305blacklist ${HOME}/.config/konversationrc 305deny ${HOME}/.config/leafpad
306blacklist ${HOME}/.config/konversation.notifyrc 306deny ${HOME}/.config/libreoffice
307blacklist ${HOME}/.config/kritarc 307deny ${HOME}/.config/liferea
308blacklist ${HOME}/.config/ktorrentrc 308deny ${HOME}/.config/linphone
309blacklist ${HOME}/.config/ktouch2rc 309deny ${HOME}/.config/lugaru
310blacklist ${HOME}/.config/kube 310deny ${HOME}/.config/lutris
311blacklist ${HOME}/.config/kwriterc 311deny ${HOME}/.config/lximage-qt
312blacklist ${HOME}/.config/leafpad 312deny ${HOME}/.config/mailtransports
313blacklist ${HOME}/.config/libreoffice 313deny ${HOME}/.config/mana
314blacklist ${HOME}/.config/liferea 314deny ${HOME}/.config/mate-calc
315blacklist ${HOME}/.config/linphone 315deny ${HOME}/.config/mate/eom
316blacklist ${HOME}/.config/lugaru 316deny ${HOME}/.config/mate/mate-dictionary
317blacklist ${HOME}/.config/lutris 317deny ${HOME}/.config/matrix-mirage
318blacklist ${HOME}/.config/lximage-qt 318deny ${HOME}/.config/mcomix
319blacklist ${HOME}/.config/mailtransports 319deny ${HOME}/.config/meld
320blacklist ${HOME}/.config/mana 320deny ${HOME}/.config/menulibre.cfg
321blacklist ${HOME}/.config/mate-calc 321deny ${HOME}/.config/meteo-qt
322blacklist ${HOME}/.config/mate/eom 322deny ${HOME}/.config/mfusion
323blacklist ${HOME}/.config/mate/mate-dictionary 323deny ${HOME}/.config/microsoft-edge-dev
324blacklist ${HOME}/.config/matrix-mirage 324deny ${HOME}/.config/midori
325blacklist ${HOME}/.config/mcomix 325deny ${HOME}/.config/mirage
326blacklist ${HOME}/.config/meld 326deny ${HOME}/.config/mono
327blacklist ${HOME}/.config/meteo-qt 327deny ${HOME}/.config/mpDris2
328blacklist ${HOME}/.config/menulibre.cfg 328deny ${HOME}/.config/mpd
329blacklist ${HOME}/.config/mfusion 329deny ${HOME}/.config/mps-youtube
330blacklist ${HOME}/.config/Microsoft 330deny ${HOME}/.config/mpv
331blacklist ${HOME}/.config/microsoft-edge-dev 331deny ${HOME}/.config/mupen64plus
332blacklist ${HOME}/.config/midori 332deny ${HOME}/.config/mutt
333blacklist ${HOME}/.config/mirage 333deny ${HOME}/.config/mutter
334blacklist ${HOME}/.config/mono 334deny ${HOME}/.config/mypaint
335blacklist ${HOME}/.config/mpDris2 335deny ${HOME}/.config/nano
336blacklist ${HOME}/.config/mpd 336deny ${HOME}/.config/nautilus
337blacklist ${HOME}/.config/mps-youtube 337deny ${HOME}/.config/nemo
338blacklist ${HOME}/.config/mpv 338deny ${HOME}/.config/neochat.notifyrc
339blacklist ${HOME}/.config/mupen64plus 339deny ${HOME}/.config/neochatrc
340blacklist ${HOME}/.config/mutt 340deny ${HOME}/.config/neomutt
341blacklist ${HOME}/.config/mutter 341deny ${HOME}/.config/netsurf
342blacklist ${HOME}/.config/mypaint 342deny ${HOME}/.config/newsbeuter
343blacklist ${HOME}/.config/nano 343deny ${HOME}/.config/newsboat
344blacklist ${HOME}/.config/nautilus 344deny ${HOME}/.config/newsflash
345blacklist ${HOME}/.config/nemo 345deny ${HOME}/.config/nheko
346blacklist ${HOME}/.config/neochatrc 346deny ${HOME}/.config/nomacs
347blacklist ${HOME}/.config/neochat.notifyrc 347deny ${HOME}/.config/nuclear
348blacklist ${HOME}/.config/neomutt 348deny ${HOME}/.config/obs-studio
349blacklist ${HOME}/.config/netsurf 349deny ${HOME}/.config/okularpartrc
350blacklist ${HOME}/.config/newsbeuter 350deny ${HOME}/.config/okularrc
351blacklist ${HOME}/.config/newsboat 351deny ${HOME}/.config/onboard
352blacklist ${HOME}/.config/newsflash 352deny ${HOME}/.config/onionshare
353blacklist ${HOME}/.config/nheko 353deny ${HOME}/.config/onlyoffice
354blacklist ${HOME}/.config/NitroShare 354deny ${HOME}/.config/openmw
355blacklist ${HOME}/.config/nomacs 355deny ${HOME}/.config/opera
356blacklist ${HOME}/.config/nuclear 356deny ${HOME}/.config/opera-beta
357blacklist ${HOME}/.config/obs-studio 357deny ${HOME}/.config/orage
358blacklist ${HOME}/.config/okularpartrc 358deny ${HOME}/.config/org.gabmus.gfeeds.json
359blacklist ${HOME}/.config/okularrc 359deny ${HOME}/.config/org.gabmus.gfeeds.saved_articles
360blacklist ${HOME}/.config/onboard 360deny ${HOME}/.config/org.kde.gwenviewrc
361blacklist ${HOME}/.config/onionshare 361deny ${HOME}/.config/otter
362blacklist ${HOME}/.config/onlyoffice 362deny ${HOME}/.config/pavucontrol-qt
363blacklist ${HOME}/.config/openmw 363deny ${HOME}/.config/pavucontrol.ini
364blacklist ${HOME}/.config/opera 364deny ${HOME}/.config/pcmanfm
365blacklist ${HOME}/.config/opera-beta 365deny ${HOME}/.config/pdfmod
366blacklist ${HOME}/.config/orage 366deny ${HOME}/.config/pipe-viewer
367blacklist ${HOME}/.config/org.gabmus.gfeeds.json 367deny ${HOME}/.config/pitivi
368blacklist ${HOME}/.config/org.gabmus.gfeeds.saved_articles 368deny ${HOME}/.config/pix
369blacklist ${HOME}/.config/org.kde.gwenviewrc 369deny ${HOME}/.config/pluma
370blacklist ${HOME}/.config/otter 370deny ${HOME}/.config/ppsspp
371blacklist ${HOME}/.config/pavucontrol-qt 371deny ${HOME}/.config/pragha
372blacklist ${HOME}/.config/pavucontrol.ini 372deny ${HOME}/.config/profanity
373blacklist ${HOME}/.config/pcmanfm 373deny ${HOME}/.config/psi
374blacklist ${HOME}/.config/pdfmod 374deny ${HOME}/.config/psi+
375blacklist ${HOME}/.config/Pinta 375deny ${HOME}/.config/qBittorrent
376blacklist ${HOME}/.config/pipe-viewer 376deny ${HOME}/.config/qBittorrentrc
377blacklist ${HOME}/.config/pitivi 377deny ${HOME}/.config/qnapi.ini
378blacklist ${HOME}/.config/pix 378deny ${HOME}/.config/qpdfview
379blacklist ${HOME}/.config/pluma 379deny ${HOME}/.config/quodlibet
380blacklist ${HOME}/.config/ppsspp 380deny ${HOME}/.config/qupzilla
381blacklist ${HOME}/.config/pragha 381deny ${HOME}/.config/qutebrowser
382blacklist ${HOME}/.config/profanity 382deny ${HOME}/.config/ranger
383blacklist ${HOME}/.config/psi 383deny ${HOME}/.config/redshift
384blacklist ${HOME}/.config/psi+ 384deny ${HOME}/.config/redshift.conf
385blacklist ${HOME}/.config/qBittorrent 385deny ${HOME}/.config/remmina
386blacklist ${HOME}/.config/qBittorrentrc 386deny ${HOME}/.config/ristretto
387blacklist ${HOME}/.config/qnapi.ini 387deny ${HOME}/.config/rtv
388blacklist ${HOME}/.config/qpdfview 388deny ${HOME}/.config/scribus
389blacklist ${HOME}/.config/quodlibet 389deny ${HOME}/.config/scribusrc
390blacklist ${HOME}/.config/qupzilla 390deny ${HOME}/.config/sinew.in
391blacklist ${HOME}/.config/qutebrowser 391deny ${HOME}/.config/sink
392blacklist ${HOME}/.config/ranger 392deny ${HOME}/.config/skypeforlinux
393blacklist ${HOME}/.config/redshift 393deny ${HOME}/.config/slimjet
394blacklist ${HOME}/.config/redshift.conf 394deny ${HOME}/.config/smplayer
395blacklist ${HOME}/.config/remmina 395deny ${HOME}/.config/smtube
396blacklist ${HOME}/.config/ristretto 396deny ${HOME}/.config/smuxi
397blacklist ${HOME}/.config/rtv 397deny ${HOME}/.config/snox
398blacklist ${HOME}/.config/scribus 398deny ${HOME}/.config/sound-juicer
399blacklist ${HOME}/.config/scribusrc 399deny ${HOME}/.config/specialmailcollectionsrc
400blacklist ${HOME}/.config/sinew.in 400deny ${HOME}/.config/spectaclerc
401blacklist ${HOME}/.config/sink 401deny ${HOME}/.config/spotify
402blacklist ${HOME}/.config/skypeforlinux 402deny ${HOME}/.config/sqlitebrowser
403blacklist ${HOME}/.config/slimjet 403deny ${HOME}/.config/stellarium
404blacklist ${HOME}/.config/smplayer 404deny ${HOME}/.config/straw-viewer
405blacklist ${HOME}/.config/smtube 405deny ${HOME}/.config/strawberry
406blacklist ${HOME}/.config/smuxi 406deny ${HOME}/.config/supertuxkart
407blacklist ${HOME}/.config/snox 407deny ${HOME}/.config/synfig
408blacklist ${HOME}/.config/sound-juicer 408deny ${HOME}/.config/teams
409blacklist ${HOME}/.config/specialmailcollectionsrc 409deny ${HOME}/.config/teams-for-linux
410blacklist ${HOME}/.config/spectaclerc 410deny ${HOME}/.config/telepathy-account-widgets
411blacklist ${HOME}/.config/spotify 411deny ${HOME}/.config/torbrowser
412blacklist ${HOME}/.config/sqlitebrowser 412deny ${HOME}/.config/totem
413blacklist ${HOME}/.config/stellarium 413deny ${HOME}/.config/tox
414blacklist ${HOME}/.config/strawberry 414deny ${HOME}/.config/transgui
415blacklist ${HOME}/.config/straw-viewer 415deny ${HOME}/.config/transmission
416blacklist ${HOME}/.config/supertuxkart 416deny ${HOME}/.config/truecraft
417blacklist ${HOME}/.config/synfig 417deny ${HOME}/.config/tuta_integration
418blacklist ${HOME}/.config/teams 418deny ${HOME}/.config/tutanota-desktop
419blacklist ${HOME}/.config/teams-for-linux 419deny ${HOME}/.config/tvbrowser
420blacklist ${HOME}/.config/telepathy-account-widgets 420deny ${HOME}/.config/uGet
421blacklist ${HOME}/.config/torbrowser 421deny ${HOME}/.config/ungoogled-chromium
422blacklist ${HOME}/.config/totem 422deny ${HOME}/.config/uzbl
423blacklist ${HOME}/.config/tox 423deny ${HOME}/.config/viewnior
424blacklist ${HOME}/.config/transgui 424deny ${HOME}/.config/vivaldi
425blacklist ${HOME}/.config/transmission 425deny ${HOME}/.config/vivaldi-snapshot
426blacklist ${HOME}/.config/truecraft 426deny ${HOME}/.config/vlc
427blacklist ${HOME}/.config/tuta_integration 427deny ${HOME}/.config/wesnoth
428blacklist ${HOME}/.config/tutanota-desktop 428deny ${HOME}/.config/wireshark
429blacklist ${HOME}/.config/tvbrowser 429deny ${HOME}/.config/wormux
430blacklist ${HOME}/.config/uGet 430deny ${HOME}/.config/xchat
431blacklist ${HOME}/.config/ungoogled-chromium 431deny ${HOME}/.config/xed
432blacklist ${HOME}/.config/uzbl 432deny ${HOME}/.config/xfburn
433blacklist ${HOME}/.config/viewnior 433deny ${HOME}/.config/xfce4-dict
434blacklist ${HOME}/.config/vivaldi 434deny ${HOME}/.config/xfce4/xfce4-notes.gtkrc
435blacklist ${HOME}/.config/vivaldi-snapshot 435deny ${HOME}/.config/xfce4/xfce4-notes.rc
436blacklist ${HOME}/.config/vlc 436deny ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
437blacklist ${HOME}/.config/wesnoth 437deny ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
438blacklist ${HOME}/.config/wormux 438deny ${HOME}/.config/xiaoyong
439blacklist ${HOME}/.config/Whalebird 439deny ${HOME}/.config/xmms2
440blacklist ${HOME}/.config/wireshark 440deny ${HOME}/.config/xplayer
441blacklist ${HOME}/.config/xchat 441deny ${HOME}/.config/xreader
442blacklist ${HOME}/.config/xed 442deny ${HOME}/.config/xviewer
443blacklist ${HOME}/.config/xfburn 443deny ${HOME}/.config/yandex-browser
444blacklist ${HOME}/.config/xfce4/xfce4-notes.gtkrc 444deny ${HOME}/.config/yandex-browser-beta
445blacklist ${HOME}/.config/xfce4/xfce4-notes.rc 445deny ${HOME}/.config/yelp
446blacklist ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml 446deny ${HOME}/.config/youtube-dl
447blacklist ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml 447deny ${HOME}/.config/youtube-dlg
448blacklist ${HOME}/.config/xfce4-dict 448deny ${HOME}/.config/youtube-music-desktop-app
449blacklist ${HOME}/.config/xiaoyong 449deny ${HOME}/.config/youtube-viewer
450blacklist ${HOME}/.config/xmms2 450deny ${HOME}/.config/youtubemusic-nativefier-040164
451blacklist ${HOME}/.config/xplayer 451deny ${HOME}/.config/zathura
452blacklist ${HOME}/.config/xreader 452deny ${HOME}/.config/zoomus.conf
453blacklist ${HOME}/.config/xviewer 453deny ${HOME}/.conkeror.mozdev.org
454blacklist ${HOME}/.config/yandex-browser 454deny ${HOME}/.crawl
455blacklist ${HOME}/.config/yandex-browser-beta 455deny ${HOME}/.cups
456blacklist ${HOME}/.config/yelp 456deny ${HOME}/.curl-hsts
457blacklist ${HOME}/.config/youtube-dl 457deny ${HOME}/.curlrc
458blacklist ${HOME}/.config/youtube-dlg 458deny ${HOME}/.dashcore
459blacklist ${HOME}/.config/youtubemusic-nativefier-040164 459deny ${HOME}/.devilspie
460blacklist ${HOME}/.config/youtube-music-desktop-app 460deny ${HOME}/.dia
461blacklist ${HOME}/.config/youtube-viewer 461deny ${HOME}/.digrc
462blacklist ${HOME}/.config/zathura 462deny ${HOME}/.dillo
463blacklist ${HOME}/.config/zoomus.conf 463deny ${HOME}/.dooble
464blacklist ${HOME}/.config/Zulip 464deny ${HOME}/.dosbox
465blacklist ${HOME}/.conkeror.mozdev.org 465deny ${HOME}/.dropbox*
466blacklist ${HOME}/.crawl 466deny ${HOME}/.easystroke
467blacklist ${HOME}/.cups 467deny ${HOME}/.electron-cache
468blacklist ${HOME}/.curl-hsts 468deny ${HOME}/.electrum*
469blacklist ${HOME}/.curlrc 469deny ${HOME}/.elinks
470blacklist ${HOME}/.dashcore 470deny ${HOME}/.emacs
471blacklist ${HOME}/.devilspie 471deny ${HOME}/.emacs.d
472blacklist ${HOME}/.dia 472deny ${HOME}/.equalx
473blacklist ${HOME}/.digrc 473deny ${HOME}/.ethereum
474blacklist ${HOME}/.dillo 474deny ${HOME}/.etr
475blacklist ${HOME}/.dooble 475deny ${HOME}/.filezilla
476blacklist ${HOME}/.dosbox 476deny ${HOME}/.firedragon
477blacklist ${HOME}/.dropbox* 477deny ${HOME}/.flowblade
478blacklist ${HOME}/.easystroke 478deny ${HOME}/.fltk
479blacklist ${HOME}/.electron-cache 479deny ${HOME}/.fossamail
480blacklist ${HOME}/.electrum* 480deny ${HOME}/.freeciv
481blacklist ${HOME}/.elinks 481deny ${HOME}/.freecol
482blacklist ${HOME}/.emacs 482deny ${HOME}/.freemind
483blacklist ${HOME}/.emacs.d 483deny ${HOME}/.frogatto
484blacklist ${HOME}/.equalx 484deny ${HOME}/.frozen-bubble
485blacklist ${HOME}/.ethereum 485deny ${HOME}/.funnyboat
486blacklist ${HOME}/.etr 486deny ${HOME}/.gimp*
487blacklist ${HOME}/.filezilla 487deny ${HOME}/.gist
488blacklist ${HOME}/.firedragon 488deny ${HOME}/.gitconfig
489blacklist ${HOME}/.flowblade 489deny ${HOME}/.gl-117
490blacklist ${HOME}/.fltk 490deny ${HOME}/.glaxiumrc
491blacklist ${HOME}/.fossamail 491deny ${HOME}/.gnome/gnome-schedule
492blacklist ${HOME}/.freeciv 492deny ${HOME}/.googleearth
493blacklist ${HOME}/.freecol 493deny ${HOME}/.gradle
494blacklist ${HOME}/.freemind 494deny ${HOME}/.gramps
495blacklist ${HOME}/.frogatto 495deny ${HOME}/.guayadeque
496blacklist ${HOME}/.frozen-bubble 496deny ${HOME}/.hashcat
497blacklist ${HOME}/.gimp* 497deny ${HOME}/.hedgewars
498blacklist ${HOME}/.gist 498deny ${HOME}/.hex-a-hop
499blacklist ${HOME}/.gitconfig 499deny ${HOME}/.hugin
500blacklist ${HOME}/.gl-117 500deny ${HOME}/.i2p
501blacklist ${HOME}/.glaxiumrc 501deny ${HOME}/.icedove
502blacklist ${HOME}/.gnome/gnome-schedule 502deny ${HOME}/.imagej
503blacklist ${HOME}/.googleearth 503deny ${HOME}/.inkscape
504blacklist ${HOME}/.gradle 504deny ${HOME}/.itch
505blacklist ${HOME}/.gramps 505deny ${HOME}/.jack-server
506blacklist ${HOME}/.guayadeque 506deny ${HOME}/.jack-settings
507blacklist ${HOME}/.hashcat 507deny ${HOME}/.jak
508blacklist ${HOME}/.hex-a-hop 508deny ${HOME}/.java
509blacklist ${HOME}/.hedgewars 509deny ${HOME}/.jd
510blacklist ${HOME}/.hugin 510deny ${HOME}/.jitsi
511blacklist ${HOME}/.i2p 511deny ${HOME}/.jumpnbump
512blacklist ${HOME}/.icedove 512deny ${HOME}/.kde/share/apps/digikam
513blacklist ${HOME}/.imagej 513deny ${HOME}/.kde/share/apps/gwenview
514blacklist ${HOME}/.inkscape 514deny ${HOME}/.kde/share/apps/kaffeine
515blacklist ${HOME}/.itch 515deny ${HOME}/.kde/share/apps/kcookiejar
516blacklist ${HOME}/.jack-server 516deny ${HOME}/.kde/share/apps/kget
517blacklist ${HOME}/.jack-settings 517deny ${HOME}/.kde/share/apps/khtml
518blacklist ${HOME}/.jak 518deny ${HOME}/.kde/share/apps/klatexformula
519blacklist ${HOME}/.java 519deny ${HOME}/.kde/share/apps/konqsidebartng
520blacklist ${HOME}/.jd 520deny ${HOME}/.kde/share/apps/konqueror
521blacklist ${HOME}/.jitsi 521deny ${HOME}/.kde/share/apps/kopete
522blacklist ${HOME}/.jumpnbump 522deny ${HOME}/.kde/share/apps/ktorrent
523blacklist ${HOME}/.kde/share/apps/digikam 523deny ${HOME}/.kde/share/apps/okular
524blacklist ${HOME}/.kde/share/apps/gwenview 524deny ${HOME}/.kde/share/config/baloofilerc
525blacklist ${HOME}/.kde/share/apps/kaffeine 525deny ${HOME}/.kde/share/config/baloorc
526blacklist ${HOME}/.kde/share/apps/kcookiejar 526deny ${HOME}/.kde/share/config/digikam
527blacklist ${HOME}/.kde/share/apps/kget 527deny ${HOME}/.kde/share/config/gwenviewrc
528blacklist ${HOME}/.kde/share/apps/khtml 528deny ${HOME}/.kde/share/config/k3brc
529blacklist ${HOME}/.kde/share/apps/klatexformula 529deny ${HOME}/.kde/share/config/kaffeinerc
530blacklist ${HOME}/.kde/share/apps/konqsidebartng 530deny ${HOME}/.kde/share/config/kcookiejarrc
531blacklist ${HOME}/.kde/share/apps/konqueror 531deny ${HOME}/.kde/share/config/kfindrc
532blacklist ${HOME}/.kde/share/apps/kopete 532deny ${HOME}/.kde/share/config/kgetrc
533blacklist ${HOME}/.kde/share/apps/ktorrent 533deny ${HOME}/.kde/share/config/khtmlrc
534blacklist ${HOME}/.kde/share/apps/okular 534deny ${HOME}/.kde/share/config/klipperrc
535blacklist ${HOME}/.kde/share/config/baloofilerc 535deny ${HOME}/.kde/share/config/kmplayerrc
536blacklist ${HOME}/.kde/share/config/baloorc 536deny ${HOME}/.kde/share/config/konq_history
537blacklist ${HOME}/.kde/share/config/digikam 537deny ${HOME}/.kde/share/config/konqsidebartngrc
538blacklist ${HOME}/.kde/share/config/gwenviewrc 538deny ${HOME}/.kde/share/config/konquerorrc
539blacklist ${HOME}/.kde/share/config/k3brc 539deny ${HOME}/.kde/share/config/konversationrc
540blacklist ${HOME}/.kde/share/config/kaffeinerc 540deny ${HOME}/.kde/share/config/kopeterc
541blacklist ${HOME}/.kde/share/config/kcookiejarrc 541deny ${HOME}/.kde/share/config/ktorrentrc
542blacklist ${HOME}/.kde/share/config/kfindrc 542deny ${HOME}/.kde/share/config/okularpartrc
543blacklist ${HOME}/.kde/share/config/kgetrc 543deny ${HOME}/.kde/share/config/okularrc
544blacklist ${HOME}/.kde/share/config/khtmlrc 544deny ${HOME}/.kde4/share/apps/digikam
545blacklist ${HOME}/.kde/share/config/klipperrc 545deny ${HOME}/.kde4/share/apps/gwenview
546blacklist ${HOME}/.kde/share/config/kmplayerrc 546deny ${HOME}/.kde4/share/apps/kaffeine
547blacklist ${HOME}/.kde/share/config/konq_history 547deny ${HOME}/.kde4/share/apps/kcookiejar
548blacklist ${HOME}/.kde/share/config/konqsidebartngrc 548deny ${HOME}/.kde4/share/apps/kget
549blacklist ${HOME}/.kde/share/config/konquerorrc 549deny ${HOME}/.kde4/share/apps/khtml
550blacklist ${HOME}/.kde/share/config/konversationrc 550deny ${HOME}/.kde4/share/apps/konqsidebartng
551blacklist ${HOME}/.kde/share/config/kopeterc 551deny ${HOME}/.kde4/share/apps/konqueror
552blacklist ${HOME}/.kde/share/config/ktorrentrc 552deny ${HOME}/.kde4/share/apps/kopete
553blacklist ${HOME}/.kde/share/config/okularpartrc 553deny ${HOME}/.kde4/share/apps/ktorrent
554blacklist ${HOME}/.kde/share/config/okularrc 554deny ${HOME}/.kde4/share/apps/okular
555blacklist ${HOME}/.kde4/share/apps/digikam 555deny ${HOME}/.kde4/share/config/baloofilerc
556blacklist ${HOME}/.kde4/share/apps/gwenview 556deny ${HOME}/.kde4/share/config/baloorc
557blacklist ${HOME}/.kde4/share/apps/kaffeine 557deny ${HOME}/.kde4/share/config/digikam
558blacklist ${HOME}/.kde4/share/apps/kcookiejar 558deny ${HOME}/.kde4/share/config/gwenviewrc
559blacklist ${HOME}/.kde4/share/apps/kget 559deny ${HOME}/.kde4/share/config/k3brc
560blacklist ${HOME}/.kde4/share/apps/khtml 560deny ${HOME}/.kde4/share/config/kaffeinerc
561blacklist ${HOME}/.kde4/share/apps/konqsidebartng 561deny ${HOME}/.kde4/share/config/kcookiejarrc
562blacklist ${HOME}/.kde4/share/apps/konqueror 562deny ${HOME}/.kde4/share/config/kfindrc
563blacklist ${HOME}/.kde4/share/apps/kopete 563deny ${HOME}/.kde4/share/config/kgetrc
564blacklist ${HOME}/.kde4/share/apps/ktorrent 564deny ${HOME}/.kde4/share/config/khtmlrc
565blacklist ${HOME}/.kde4/share/apps/okular 565deny ${HOME}/.kde4/share/config/klipperrc
566blacklist ${HOME}/.kde4/share/config/baloofilerc 566deny ${HOME}/.kde4/share/config/konq_history
567blacklist ${HOME}/.kde4/share/config/baloorc 567deny ${HOME}/.kde4/share/config/konqsidebartngrc
568blacklist ${HOME}/.kde4/share/config/digikam 568deny ${HOME}/.kde4/share/config/konquerorrc
569blacklist ${HOME}/.kde4/share/config/gwenviewrc 569deny ${HOME}/.kde4/share/config/konversationrc
570blacklist ${HOME}/.kde4/share/config/k3brc 570deny ${HOME}/.kde4/share/config/kopeterc
571blacklist ${HOME}/.kde4/share/config/kaffeinerc 571deny ${HOME}/.kde4/share/config/ktorrentrc
572blacklist ${HOME}/.kde4/share/config/kcookiejarrc 572deny ${HOME}/.kde4/share/config/okularpartrc
573blacklist ${HOME}/.kde4/share/config/kfindrc 573deny ${HOME}/.kde4/share/config/okularrc
574blacklist ${HOME}/.kde4/share/config/kgetrc 574deny ${HOME}/.killingfloor
575blacklist ${HOME}/.kde4/share/config/khtmlrc 575deny ${HOME}/.kingsoft
576blacklist ${HOME}/.kde4/share/config/klipperrc 576deny ${HOME}/.kino-history
577blacklist ${HOME}/.kde4/share/config/konq_history 577deny ${HOME}/.kinorc
578blacklist ${HOME}/.kde4/share/config/konqsidebartngrc 578deny ${HOME}/.klatexformula
579blacklist ${HOME}/.kde4/share/config/konquerorrc 579deny ${HOME}/.klei
580blacklist ${HOME}/.kde4/share/config/konversationrc 580deny ${HOME}/.kodi
581blacklist ${HOME}/.kde4/share/config/kopeterc 581deny ${HOME}/.librewolf
582blacklist ${HOME}/.kde4/share/config/ktorrentrc 582deny ${HOME}/.lincity-ng
583blacklist ${HOME}/.kde4/share/config/okularpartrc 583deny ${HOME}/.links
584blacklist ${HOME}/.kde4/share/config/okularrc 584deny ${HOME}/.links2
585blacklist ${HOME}/.killingfloor 585deny ${HOME}/.linphone-history.db
586blacklist ${HOME}/.kingsoft 586deny ${HOME}/.linphonerc
587blacklist ${HOME}/.kino-history 587deny ${HOME}/.lmmsrc.xml
588blacklist ${HOME}/.kinorc 588deny ${HOME}/.local/lib/vivaldi
589blacklist ${HOME}/.klatexformula 589deny ${HOME}/.local/share/0ad
590blacklist ${HOME}/.klei 590deny ${HOME}/.local/share/3909/PapersPlease
591blacklist ${HOME}/.kodi 591deny ${HOME}/.local/share/Anki2
592blacklist ${HOME}/.librewolf 592deny ${HOME}/.local/share/Dredmor
593blacklist ${HOME}/.lincity-ng 593deny ${HOME}/.local/share/Empathy
594blacklist ${HOME}/.links 594deny ${HOME}/.local/share/Enpass
595blacklist ${HOME}/.linphone-history.db 595deny ${HOME}/.local/share/FasterThanLight
596blacklist ${HOME}/.linphonerc 596deny ${HOME}/.local/share/Flavio Tordini
597blacklist ${HOME}/.lmmsrc.xml 597deny ${HOME}/.local/share/IntoTheBreach
598blacklist ${HOME}/.local/lib/vivaldi 598deny ${HOME}/.local/share/JetBrains
599blacklist ${HOME}/.local/share/0ad 599deny ${HOME}/.local/share/KDE/neochat
600blacklist ${HOME}/.local/share/3909/PapersPlease 600deny ${HOME}/.local/share/Kingsoft
601blacklist ${HOME}/.local/share/Anki2 601deny ${HOME}/.local/share/LibreCAD
602blacklist ${HOME}/.local/share/Dredmor 602deny ${HOME}/.local/share/Mendeley Ltd.
603blacklist ${HOME}/.local/share/Empathy 603deny ${HOME}/.local/share/Mumble
604blacklist ${HOME}/.local/share/Enpass 604deny ${HOME}/.local/share/Nextcloud
605blacklist ${HOME}/.local/share/Flavio Tordini 605deny ${HOME}/.local/share/PBE
606blacklist ${HOME}/.local/share/JetBrains 606deny ${HOME}/.local/share/Paradox Interactive
607blacklist ${HOME}/.local/share/KDE/neochat 607deny ${HOME}/.local/share/PawelStolowski
608blacklist ${HOME}/.local/share/Kingsoft 608deny ${HOME}/.local/share/PillarsOfEternity
609blacklist ${HOME}/.local/share/Mendeley Ltd. 609deny ${HOME}/.local/share/Psi
610blacklist ${HOME}/.local/share/Mumble 610deny ${HOME}/.local/share/QGIS
611blacklist ${HOME}/.local/share/Nextcloud 611deny ${HOME}/.local/share/QMediathekView
612blacklist ${HOME}/.local/share/PBE 612deny ${HOME}/.local/share/QuiteRss
613blacklist ${HOME}/.local/share/PawelStolowski 613deny ${HOME}/.local/share/Ricochet
614blacklist ${HOME}/.local/share/PillarsOfEternity 614deny ${HOME}/.local/share/RogueLegacy
615blacklist ${HOME}/.local/share/Psi 615deny ${HOME}/.local/share/RogueLegacyStorageContainer
616blacklist ${HOME}/.local/share/QGIS 616deny ${HOME}/.local/share/Shortwave
617blacklist ${HOME}/.local/share/QMediathekView 617deny ${HOME}/.local/share/Steam
618blacklist ${HOME}/.local/share/QuiteRss 618deny ${HOME}/.local/share/SteamWorld Dig 2
619blacklist ${HOME}/.local/share/Ricochet 619deny ${HOME}/.local/share/SteamWorldDig
620blacklist ${HOME}/.local/share/RogueLegacy 620deny ${HOME}/.local/share/SuperHexagon
621blacklist ${HOME}/.local/share/RogueLegacyStorageContainer 621deny ${HOME}/.local/share/TelegramDesktop
622blacklist ${HOME}/.local/share/Shortwave 622deny ${HOME}/.local/share/Terraria
623blacklist ${HOME}/.local/share/Steam 623deny ${HOME}/.local/share/TpLogger
624blacklist ${HOME}/.local/share/SteamWorldDig 624deny ${HOME}/.local/share/Zeal
625blacklist ${HOME}/.local/share/SteamWorld Dig 2 625deny ${HOME}/.local/share/agenda
626blacklist ${HOME}/.local/share/SuperHexagon 626deny ${HOME}/.local/share/akonadi*
627blacklist ${HOME}/.local/share/TelegramDesktop 627deny ${HOME}/.local/share/akregator
628blacklist ${HOME}/.local/share/Terraria 628deny ${HOME}/.local/share/apps/korganizer
629blacklist ${HOME}/.local/share/TpLogger 629deny ${HOME}/.local/share/aspyr-media
630blacklist ${HOME}/.local/share/Zeal 630deny ${HOME}/.local/share/authenticator-rs
631blacklist ${HOME}/.local/share/akonadi* 631deny ${HOME}/.local/share/autokey
632blacklist ${HOME}/.local/share/akregator 632deny ${HOME}/.local/share/backintime
633blacklist ${HOME}/.local/share/agenda 633deny ${HOME}/.local/share/baloo
634blacklist ${HOME}/.local/share/apps/korganizer 634deny ${HOME}/.local/share/barrier
635blacklist ${HOME}/.local/share/aspyr-media 635deny ${HOME}/.local/share/bibletime
636blacklist ${HOME}/.local/share/autokey 636deny ${HOME}/.local/share/bijiben
637blacklist ${HOME}/.local/share/authenticator-rs 637deny ${HOME}/.local/share/bohemiainteractive
638blacklist ${HOME}/.local/share/backintime 638deny ${HOME}/.local/share/caja-python
639blacklist ${HOME}/.local/share/baloo 639deny ${HOME}/.local/share/calligragemini
640blacklist ${HOME}/.local/share/barrier 640deny ${HOME}/.local/share/cantata
641blacklist ${HOME}/.local/share/bibletime 641deny ${HOME}/.local/share/cdprojektred
642blacklist ${HOME}/.local/share/bijiben 642deny ${HOME}/.local/share/clipit
643blacklist ${HOME}/.local/share/bohemiainteractive 643deny ${HOME}/.local/share/com.github.johnfactotum.Foliate
644blacklist ${HOME}/.local/share/caja-python 644deny ${HOME}/.local/share/contacts
645blacklist ${HOME}/.local/share/calligragemini 645deny ${HOME}/.local/share/cor-games
646blacklist ${HOME}/.local/share/cantata 646deny ${HOME}/.local/share/data/Mendeley Ltd.
647blacklist ${HOME}/.local/share/cdprojektred 647deny ${HOME}/.local/share/data/Mumble
648blacklist ${HOME}/.local/share/clipit 648deny ${HOME}/.local/share/data/MusE
649blacklist ${HOME}/.local/share/com.github.johnfactotum.Foliate 649deny ${HOME}/.local/share/data/MuseScore
650blacklist ${HOME}/.local/share/contacts 650deny ${HOME}/.local/share/data/nomacs
651blacklist ${HOME}/.local/share/cor-games 651deny ${HOME}/.local/share/data/qBittorrent
652blacklist ${HOME}/.local/share/data/Mendeley Ltd. 652deny ${HOME}/.local/share/dino
653blacklist ${HOME}/.local/share/data/Mumble 653deny ${HOME}/.local/share/dolphin
654blacklist ${HOME}/.local/share/data/MusE 654deny ${HOME}/.local/share/dolphin-emu
655blacklist ${HOME}/.local/share/data/MuseScore 655deny ${HOME}/.local/share/emailidentities
656blacklist ${HOME}/.local/share/data/nomacs 656deny ${HOME}/.local/share/epiphany
657blacklist ${HOME}/.local/share/data/qBittorrent 657deny ${HOME}/.local/share/evolution
658blacklist ${HOME}/.local/share/dino 658deny ${HOME}/.local/share/feedreader
659blacklist ${HOME}/.local/share/dolphin 659deny ${HOME}/.local/share/feral-interactive
660blacklist ${HOME}/.local/share/dolphin-emu 660deny ${HOME}/.local/share/five-or-more
661blacklist ${HOME}/.local/share/emailidentities 661deny ${HOME}/.local/share/freecol
662blacklist ${HOME}/.local/share/epiphany 662deny ${HOME}/.local/share/gajim
663blacklist ${HOME}/.local/share/evolution 663deny ${HOME}/.local/share/geary
664blacklist ${HOME}/.local/share/FasterThanLight 664deny ${HOME}/.local/share/geeqie
665blacklist ${HOME}/.local/share/feedreader 665deny ${HOME}/.local/share/ghostwriter
666blacklist ${HOME}/.local/share/feral-interactive 666deny ${HOME}/.local/share/gitg
667blacklist ${HOME}/.local/share/five-or-more 667deny ${HOME}/.local/share/gnome-2048
668blacklist ${HOME}/.local/share/freecol 668deny ${HOME}/.local/share/gnome-boxes
669blacklist ${HOME}/.local/share/gajim 669deny ${HOME}/.local/share/gnome-builder
670blacklist ${HOME}/.local/share/geary 670deny ${HOME}/.local/share/gnome-chess
671blacklist ${HOME}/.local/share/geeqie 671deny ${HOME}/.local/share/gnome-klotski
672blacklist ${HOME}/.local/share/ghostwriter 672deny ${HOME}/.local/share/gnome-latex
673blacklist ${HOME}/.local/share/gitg 673deny ${HOME}/.local/share/gnome-mines
674blacklist ${HOME}/.local/share/gnome-2048 674deny ${HOME}/.local/share/gnome-music
675blacklist ${HOME}/.local/share/gnome-boxes 675deny ${HOME}/.local/share/gnome-nibbles
676blacklist ${HOME}/.local/share/gnome-builder 676deny ${HOME}/.local/share/gnome-photos
677blacklist ${HOME}/.local/share/gnome-chess 677deny ${HOME}/.local/share/gnome-pomodoro
678blacklist ${HOME}/.local/share/gnome-klotski 678deny ${HOME}/.local/share/gnome-recipes
679blacklist ${HOME}/.local/share/gnome-latex 679deny ${HOME}/.local/share/gnome-ring
680blacklist ${HOME}/.local/share/gnome-mines 680deny ${HOME}/.local/share/gnome-sudoku
681blacklist ${HOME}/.local/share/gnome-music 681deny ${HOME}/.local/share/gnome-twitch
682blacklist ${HOME}/.local/share/gnome-nibbles 682deny ${HOME}/.local/share/gnote
683blacklist ${HOME}/.local/share/gnome-photos 683deny ${HOME}/.local/share/godot
684blacklist ${HOME}/.local/share/gnome-pomodoro 684deny ${HOME}/.local/share/gradio
685blacklist ${HOME}/.local/share/gnome-recipes 685deny ${HOME}/.local/share/gwenview
686blacklist ${HOME}/.local/share/gnome-ring 686deny ${HOME}/.local/share/i2p
687blacklist ${HOME}/.local/share/gnome-sudoku 687deny ${HOME}/.local/share/jami
688blacklist ${HOME}/.local/share/gnome-twitch 688deny ${HOME}/.local/share/kaffeine
689blacklist ${HOME}/.local/share/gnote 689deny ${HOME}/.local/share/kalgebra
690blacklist ${HOME}/.local/share/godot 690deny ${HOME}/.local/share/kate
691blacklist ${HOME}/.local/share/gradio 691deny ${HOME}/.local/share/kdenlive
692blacklist ${HOME}/.local/share/gwenview 692deny ${HOME}/.local/share/kget
693blacklist ${HOME}/.local/share/i2p 693deny ${HOME}/.local/share/kiwix
694blacklist ${HOME}/.local/share/IntoTheBreach 694deny ${HOME}/.local/share/kiwix-desktop
695blacklist ${HOME}/.local/share/jami 695deny ${HOME}/.local/share/klavaro
696blacklist ${HOME}/.local/share/kaffeine 696deny ${HOME}/.local/share/kmail2
697blacklist ${HOME}/.local/share/kalgebra 697deny ${HOME}/.local/share/kmplayer
698blacklist ${HOME}/.local/share/kate 698deny ${HOME}/.local/share/knotes
699blacklist ${HOME}/.local/share/kdenlive 699deny ${HOME}/.local/share/krita
700blacklist ${HOME}/.local/share/kget 700deny ${HOME}/.local/share/ktorrent
701blacklist ${HOME}/.local/share/kiwix 701deny ${HOME}/.local/share/ktorrentrc
702blacklist ${HOME}/.local/share/kiwix-desktop 702deny ${HOME}/.local/share/ktouch
703blacklist ${HOME}/.local/share/klavaro 703deny ${HOME}/.local/share/kube
704blacklist ${HOME}/.local/share/kmail2 704deny ${HOME}/.local/share/kwrite
705blacklist ${HOME}/.local/share/kmplayer 705deny ${HOME}/.local/share/kxmlgui5/*
706blacklist ${HOME}/.local/share/knotes 706deny ${HOME}/.local/share/liferea
707blacklist ${HOME}/.local/share/krita 707deny ${HOME}/.local/share/linphone
708blacklist ${HOME}/.local/share/ktorrent 708deny ${HOME}/.local/share/local-mail
709blacklist ${HOME}/.local/share/ktorrentrc 709deny ${HOME}/.local/share/lollypop
710blacklist ${HOME}/.local/share/ktouch 710deny ${HOME}/.local/share/love
711blacklist ${HOME}/.local/share/kube 711deny ${HOME}/.local/share/lugaru
712blacklist ${HOME}/.local/share/kwrite 712deny ${HOME}/.local/share/lutris
713blacklist ${HOME}/.local/share/kxmlgui5/* 713deny ${HOME}/.local/share/man
714blacklist ${HOME}/.local/share/liferea 714deny ${HOME}/.local/share/mana
715blacklist ${HOME}/.local/share/linphone 715deny ${HOME}/.local/share/maps-places.json
716blacklist ${HOME}/.local/share/local-mail 716deny ${HOME}/.local/share/matrix-mirage
717blacklist ${HOME}/.local/share/lollypop 717deny ${HOME}/.local/share/mcomix
718blacklist ${HOME}/.local/share/love 718deny ${HOME}/.local/share/meld
719blacklist ${HOME}/.local/share/lugaru 719deny ${HOME}/.local/share/midori
720blacklist ${HOME}/.local/share/lutris 720deny ${HOME}/.local/share/minder
721blacklist ${HOME}/.local/share/man 721deny ${HOME}/.local/share/mirage
722blacklist ${HOME}/.local/share/mana 722deny ${HOME}/.local/share/multimc
723blacklist ${HOME}/.local/share/maps-places.json 723deny ${HOME}/.local/share/multimc5
724blacklist ${HOME}/.local/share/matrix-mirage 724deny ${HOME}/.local/share/mupen64plus
725blacklist ${HOME}/.local/share/mcomix 725deny ${HOME}/.local/share/mypaint
726blacklist ${HOME}/.local/share/meld 726deny ${HOME}/.local/share/nautilus
727blacklist ${HOME}/.local/share/midori 727deny ${HOME}/.local/share/nautilus-python
728blacklist ${HOME}/.local/share/minder 728deny ${HOME}/.local/share/nemo
729blacklist ${HOME}/.local/share/mirage 729deny ${HOME}/.local/share/nemo-python
730blacklist ${HOME}/.local/share/multimc 730deny ${HOME}/.local/share/news-flash
731blacklist ${HOME}/.local/share/multimc5 731deny ${HOME}/.local/share/newsbeuter
732blacklist ${HOME}/.local/share/mupen64plus 732deny ${HOME}/.local/share/newsboat
733blacklist ${HOME}/.local/share/mypaint 733deny ${HOME}/.local/share/nheko
734blacklist ${HOME}/.local/share/nautilus 734deny ${HOME}/.local/share/nomacs
735blacklist ${HOME}/.local/share/nautilus-python 735deny ${HOME}/.local/share/notes
736blacklist ${HOME}/.local/share/nemo 736deny ${HOME}/.local/share/ocenaudio
737blacklist ${HOME}/.local/share/nemo-python 737deny ${HOME}/.local/share/okular
738blacklist ${HOME}/.local/share/news-flash 738deny ${HOME}/.local/share/onlyoffice
739blacklist ${HOME}/.local/share/newsbeuter 739deny ${HOME}/.local/share/openmw
740blacklist ${HOME}/.local/share/newsboat 740deny ${HOME}/.local/share/orage
741blacklist ${HOME}/.local/share/nheko 741deny ${HOME}/.local/share/org.kde.gwenview
742blacklist ${HOME}/.local/share/nomacs 742deny ${HOME}/.local/share/pix
743blacklist ${HOME}/.local/share/notes 743deny ${HOME}/.local/share/plasma_notes
744blacklist ${HOME}/.local/share/ocenaudio 744deny ${HOME}/.local/share/profanity
745blacklist ${HOME}/.local/share/okular 745deny ${HOME}/.local/share/psi
746blacklist ${HOME}/.local/share/onlyoffice 746deny ${HOME}/.local/share/psi+
747blacklist ${HOME}/.local/share/openmw 747deny ${HOME}/.local/share/qpdfview
748blacklist ${HOME}/.local/share/orage 748deny ${HOME}/.local/share/quadrapassel
749blacklist ${HOME}/.local/share/org.kde.gwenview 749deny ${HOME}/.local/share/qutebrowser
750blacklist ${HOME}/.local/share/Paradox Interactive 750deny ${HOME}/.local/share/remmina
751blacklist ${HOME}/.local/share/pix 751deny ${HOME}/.local/share/rhythmbox
752blacklist ${HOME}/.local/share/plasma_notes 752deny ${HOME}/.local/share/rtv
753blacklist ${HOME}/.local/share/profanity 753deny ${HOME}/.local/share/scribus
754blacklist ${HOME}/.local/share/psi 754deny ${HOME}/.local/share/shotwell
755blacklist ${HOME}/.local/share/psi+ 755deny ${HOME}/.local/share/signal-cli
756blacklist ${HOME}/.local/share/quadrapassel 756deny ${HOME}/.local/share/sink
757blacklist ${HOME}/.local/share/qpdfview 757deny ${HOME}/.local/share/smuxi
758blacklist ${HOME}/.local/share/qutebrowser 758deny ${HOME}/.local/share/spotify
759blacklist ${HOME}/.local/share/remmina 759deny ${HOME}/.local/share/steam
760blacklist ${HOME}/.local/share/rhythmbox 760deny ${HOME}/.local/share/strawberry
761blacklist ${HOME}/.local/share/rtv 761deny ${HOME}/.local/share/supertux2
762blacklist ${HOME}/.local/share/scribus 762deny ${HOME}/.local/share/supertuxkart
763blacklist ${HOME}/.local/share/shotwell 763deny ${HOME}/.local/share/swell-foop
764blacklist ${HOME}/.local/share/signal-cli 764deny ${HOME}/.local/share/telepathy
765blacklist ${HOME}/.local/share/sink 765deny ${HOME}/.local/share/terasology
766blacklist ${HOME}/.local/share/smuxi 766deny ${HOME}/.local/share/torbrowser
767blacklist ${HOME}/.local/share/spotify 767deny ${HOME}/.local/share/totem
768blacklist ${HOME}/.local/share/steam 768deny ${HOME}/.local/share/uzbl
769blacklist ${HOME}/.local/share/strawberry 769deny ${HOME}/.local/share/vlc
770blacklist ${HOME}/.local/share/supertux2 770deny ${HOME}/.local/share/vpltd
771blacklist ${HOME}/.local/share/supertuxkart 771deny ${HOME}/.local/share/vulkan
772blacklist ${HOME}/.local/share/swell-foop 772deny ${HOME}/.local/share/warsow-2.1
773blacklist ${HOME}/.local/share/telepathy 773deny ${HOME}/.local/share/wesnoth
774blacklist ${HOME}/.local/share/terasology 774deny ${HOME}/.local/share/wormux
775blacklist ${HOME}/.local/share/torbrowser 775deny ${HOME}/.local/share/xplayer
776blacklist ${HOME}/.local/share/totem 776deny ${HOME}/.local/share/xreader
777blacklist ${HOME}/.local/share/uzbl 777deny ${HOME}/.local/share/zathura
778blacklist ${HOME}/.local/share/vlc 778deny ${HOME}/.lv2
779blacklist ${HOME}/.local/share/vpltd 779deny ${HOME}/.lyx
780blacklist ${HOME}/.local/share/vulkan 780deny ${HOME}/.magicor
781blacklist ${HOME}/.local/share/warsow-2.1 781deny ${HOME}/.masterpdfeditor
782blacklist ${HOME}/.local/share/wesnoth 782deny ${HOME}/.mbwarband
783blacklist ${HOME}/.local/share/wormux 783deny ${HOME}/.mcabber
784blacklist ${HOME}/.local/share/xplayer 784deny ${HOME}/.mcabberrc
785blacklist ${HOME}/.local/share/xreader 785deny ${HOME}/.mediathek3
786blacklist ${HOME}/.local/share/zathura 786deny ${HOME}/.megaglest
787blacklist ${HOME}/.lv2 787deny ${HOME}/.minecraft
788blacklist ${HOME}/.lyx 788deny ${HOME}/.minetest
789blacklist ${HOME}/.magicor 789deny ${HOME}/.mirrormagic
790blacklist ${HOME}/.masterpdfeditor 790deny ${HOME}/.moc
791blacklist ${HOME}/.mbwarband 791deny ${HOME}/.moonchild productions/basilisk
792blacklist ${HOME}/.mcabber 792deny ${HOME}/.moonchild productions/pale moon
793blacklist ${HOME}/.mcabberrc 793deny ${HOME}/.mozilla
794blacklist ${HOME}/.mediathek3 794deny ${HOME}/.mp3splt-gtk
795blacklist ${HOME}/.megaglest 795deny ${HOME}/.mpd
796blacklist ${HOME}/.minecraft 796deny ${HOME}/.mpdconf
797blacklist ${HOME}/.minetest 797deny ${HOME}/.mplayer
798blacklist ${HOME}/.mirrormagic 798deny ${HOME}/.msmtprc
799blacklist ${HOME}/.moc 799deny ${HOME}/.multimc5
800blacklist ${HOME}/.moonchild productions/basilisk 800deny ${HOME}/.nanorc
801blacklist ${HOME}/.moonchild productions/pale moon 801deny ${HOME}/.netactview
802blacklist ${HOME}/.mozilla 802deny ${HOME}/.neverball
803blacklist ${HOME}/.mp3splt-gtk 803deny ${HOME}/.newsbeuter
804blacklist ${HOME}/.mpd 804deny ${HOME}/.newsboat
805blacklist ${HOME}/.mpdconf 805deny ${HOME}/.newsrc
806blacklist ${HOME}/.mplayer 806deny ${HOME}/.nicotine
807blacklist ${HOME}/.msmtprc 807deny ${HOME}/.node-gyp
808blacklist ${HOME}/.multimc5 808deny ${HOME}/.npm
809blacklist ${HOME}/.nanorc 809deny ${HOME}/.npmrc
810blacklist ${HOME}/.netactview 810deny ${HOME}/.nv
811blacklist ${HOME}/.neverball 811deny ${HOME}/.nvm
812blacklist ${HOME}/.newsbeuter 812deny ${HOME}/.nylas-mail
813blacklist ${HOME}/.newsboat 813deny ${HOME}/.openarena
814blacklist ${HOME}/.nicotine 814deny ${HOME}/.opencity
815blacklist ${HOME}/.node-gyp 815deny ${HOME}/.openinvaders
816blacklist ${HOME}/.npm 816deny ${HOME}/.openshot
817blacklist ${HOME}/.npmrc 817deny ${HOME}/.openshot_qt
818blacklist ${HOME}/.nv 818deny ${HOME}/.openttd
819blacklist ${HOME}/.nvm 819deny ${HOME}/.opera
820blacklist ${HOME}/.nylas-mail 820deny ${HOME}/.opera-beta
821blacklist ${HOME}/.openarena 821deny ${HOME}/.ostrichriders
822blacklist ${HOME}/.opencity 822deny ${HOME}/.paradoxinteractive
823blacklist ${HOME}/.openinvaders 823deny ${HOME}/.parallelrealities/blobwars
824blacklist ${HOME}/.openshot 824deny ${HOME}/.pcsxr
825blacklist ${HOME}/.openshot_qt 825deny ${HOME}/.penguin-command
826blacklist ${HOME}/.openttd 826deny ${HOME}/.pine-crash
827blacklist ${HOME}/.opera 827deny ${HOME}/.pine-debug1
828blacklist ${HOME}/.opera-beta 828deny ${HOME}/.pine-debug2
829blacklist ${HOME}/.ostrichriders 829deny ${HOME}/.pine-debug3
830blacklist ${HOME}/.paradoxinteractive 830deny ${HOME}/.pine-debug4
831blacklist ${HOME}/.parallelrealities/blobwars 831deny ${HOME}/.pine-interrupted-mail
832blacklist ${HOME}/.pcsxr 832deny ${HOME}/.pinerc
833blacklist ${HOME}/.penguin-command 833deny ${HOME}/.pinercex
834blacklist ${HOME}/.pingus 834deny ${HOME}/.pingus
835blacklist ${HOME}/.pioneer 835deny ${HOME}/.pioneer
836blacklist ${HOME}/.purple 836deny ${HOME}/.purple
837blacklist ${HOME}/.pylint.d 837deny ${HOME}/.pylint.d
838blacklist ${HOME}/.qemu-launcher 838deny ${HOME}/.qemu-launcher
839blacklist ${HOME}/.qgis2 839deny ${HOME}/.qgis2
840blacklist ${HOME}/.qmmp 840deny ${HOME}/.qmmp
841blacklist ${HOME}/.quodlibet 841deny ${HOME}/.quodlibet
842blacklist ${HOME}/.redeclipse 842deny ${HOME}/.redeclipse
843blacklist ${HOME}/.remmina 843deny ${HOME}/.remmina
844blacklist ${HOME}/.repo_.gitconfig.json 844deny ${HOME}/.repo_.gitconfig.json
845blacklist ${HOME}/.repoconfig 845deny ${HOME}/.repoconfig
846blacklist ${HOME}/.retroshare 846deny ${HOME}/.retroshare
847blacklist ${HOME}/.ripperXrc 847deny ${HOME}/.ripperXrc
848blacklist ${HOME}/.scorched3d 848deny ${HOME}/.scorched3d
849blacklist ${HOME}/.scribus 849deny ${HOME}/.scribus
850blacklist ${HOME}/.scribusrc 850deny ${HOME}/.scribusrc
851blacklist ${HOME}/.simutrans 851deny ${HOME}/.simutrans
852blacklist ${HOME}/.smartgit/*/passwords 852deny ${HOME}/.smartgit/*/passwords
853blacklist ${HOME}/.ssr 853deny ${HOME}/.ssr
854blacklist ${HOME}/.steam 854deny ${HOME}/.steam
855blacklist ${HOME}/.steampath 855deny ${HOME}/.steampath
856blacklist ${HOME}/.steampid 856deny ${HOME}/.steampid
857blacklist ${HOME}/.stellarium 857deny ${HOME}/.stellarium
858blacklist ${HOME}/.subversion 858deny ${HOME}/.subversion
859blacklist ${HOME}/.surf 859deny ${HOME}/.surf
860blacklist ${HOME}/.suve/colorful 860deny ${HOME}/.suve/colorful
861blacklist ${HOME}/.swb.ini 861deny ${HOME}/.swb.ini
862blacklist ${HOME}/.sword 862deny ${HOME}/.sword
863blacklist ${HOME}/.sylpheed-2.0 863deny ${HOME}/.sylpheed-2.0
864blacklist ${HOME}/.synfig 864deny ${HOME}/.synfig
865blacklist ${HOME}/.tb 865deny ${HOME}/.tb
866blacklist ${HOME}/.tconn 866deny ${HOME}/.tconn
867blacklist ${HOME}/.teeworlds 867deny ${HOME}/.teeworlds
868blacklist ${HOME}/.texlive20* 868deny ${HOME}/.texlive20*
869blacklist ${HOME}/.thunderbird 869deny ${HOME}/.thunderbird
870blacklist ${HOME}/.tilp 870deny ${HOME}/.tilp
871blacklist ${HOME}/.tooling 871deny ${HOME}/.tin
872blacklist ${HOME}/.tor-browser* 872deny ${HOME}/.tooling
873blacklist ${HOME}/.torcs 873deny ${HOME}/.tor-browser*
874blacklist ${HOME}/.tremulous 874deny ${HOME}/.torcs
875blacklist ${HOME}/.ts3client 875deny ${HOME}/.tremulous
876blacklist ${HOME}/.tuxguitar* 876deny ${HOME}/.ts3client
877blacklist ${HOME}/.tvbrowser 877deny ${HOME}/.tuxguitar*
878blacklist ${HOME}/.unknown-horizons 878deny ${HOME}/.tvbrowser
879blacklist ${HOME}/.viking 879deny ${HOME}/.unknown-horizons
880blacklist ${HOME}/.viking-maps 880deny ${HOME}/.viking
881blacklist ${HOME}/.vim 881deny ${HOME}/.viking-maps
882blacklist ${HOME}/.vimrc 882deny ${HOME}/.vim
883blacklist ${HOME}/.vmware 883deny ${HOME}/.vimrc
884blacklist ${HOME}/.vscode 884deny ${HOME}/.vmware
885blacklist ${HOME}/.vscode-oss 885deny ${HOME}/.vscode
886blacklist ${HOME}/.vst 886deny ${HOME}/.vscode-oss
887blacklist ${HOME}/.vultures 887deny ${HOME}/.vst
888blacklist ${HOME}/.w3m 888deny ${HOME}/.vultures
889blacklist ${HOME}/.warzone2100-3.* 889deny ${HOME}/.w3m
890blacklist ${HOME}/.waterfox 890deny ${HOME}/.warzone2100-3.*
891blacklist ${HOME}/.weechat 891deny ${HOME}/.waterfox
892blacklist ${HOME}/.wget-hsts 892deny ${HOME}/.weechat
893blacklist ${HOME}/.wgetrc 893deny ${HOME}/.wget-hsts
894blacklist ${HOME}/.widelands 894deny ${HOME}/.wgetrc
895blacklist ${HOME}/.wine 895deny ${HOME}/.widelands
896blacklist ${HOME}/.wine64 896deny ${HOME}/.wine
897blacklist ${HOME}/.wireshark 897deny ${HOME}/.wine64
898blacklist ${HOME}/.wordwarvi 898deny ${HOME}/.wireshark
899blacklist ${HOME}/.wormux 899deny ${HOME}/.wordwarvi
900blacklist ${HOME}/.xiphos 900deny ${HOME}/.wormux
901blacklist ${HOME}/.xmind 901deny ${HOME}/.xiphos
902blacklist ${HOME}/.xmms 902deny ${HOME}/.xmind
903blacklist ${HOME}/.xmr-stak 903deny ${HOME}/.xmms
904blacklist ${HOME}/.xonotic 904deny ${HOME}/.xmr-stak
905blacklist ${HOME}/.xournalpp 905deny ${HOME}/.xonotic
906blacklist ${HOME}/.xpdfrc 906deny ${HOME}/.xournalpp
907blacklist ${HOME}/.yarn 907deny ${HOME}/.xpdfrc
908blacklist ${HOME}/.yarn-config 908deny ${HOME}/.yarn
909blacklist ${HOME}/.yarncache 909deny ${HOME}/.yarn-config
910blacklist ${HOME}/.yarnrc 910deny ${HOME}/.yarncache
911blacklist ${HOME}/.zoom 911deny ${HOME}/.yarnrc
912blacklist /tmp/akonadi-* 912deny ${HOME}/.zoom
913blacklist /tmp/.wine-* 913deny ${HOME}/Arduino
914blacklist /var/games/nethack 914deny ${HOME}/Monero/wallets
915blacklist /var/games/slashem 915deny ${HOME}/Nextcloud
916blacklist /var/games/vulturesclaw 916deny ${HOME}/Nextcloud/Notes
917blacklist /var/games/vultureseye 917deny ${HOME}/SoftMaker
918blacklist /var/lib/games/Maelstrom-Scores 918deny ${HOME}/Standard Notes Backups
919deny ${HOME}/TeamSpeak3-Client-linux_amd64
920deny ${HOME}/TeamSpeak3-Client-linux_x86
921deny ${HOME}/hyperrogue.ini
922deny ${HOME}/i2p
923deny ${HOME}/mps
924deny ${HOME}/wallet.dat
925deny /tmp/.wine-*
926deny /tmp/akonadi-*
927deny /var/games/nethack
928deny /var/games/slashem
929deny /var/games/vulturesclaw
930deny /var/games/vultureseye
931deny /var/lib/games/Maelstrom-Scores
919 932
920# ${HOME}/.cache directory 933# ${HOME}/.cache directory
921blacklist ${HOME}/.cache/0ad 934deny ${HOME}/.cache/0ad
922blacklist ${HOME}/.cache/8pecxstudios 935deny ${HOME}/.cache/8pecxstudios
923blacklist ${HOME}/.cache/Authenticator 936deny ${HOME}/.cache/Authenticator
924blacklist ${HOME}/.cache/BraveSoftware 937deny ${HOME}/.cache/BraveSoftware
925blacklist ${HOME}/.cache/Clementine 938deny ${HOME}/.cache/Clementine
926blacklist ${HOME}/.cache/ENCOM/Spectral 939deny ${HOME}/.cache/ENCOM/Spectral
927blacklist ${HOME}/.cache/Enox 940deny ${HOME}/.cache/Enox
928blacklist ${HOME}/.cache/Enpass 941deny ${HOME}/.cache/Enpass
929blacklist ${HOME}/.cache/Ferdi 942deny ${HOME}/.cache/Ferdi
930blacklist ${HOME}/.cache/Flavio Tordini 943deny ${HOME}/.cache/Flavio Tordini
931blacklist ${HOME}/.cache/Franz 944deny ${HOME}/.cache/Franz
932blacklist ${HOME}/.cache/INRIA 945deny ${HOME}/.cache/INRIA
933blacklist ${HOME}/.cache/MusicBrainz 946deny ${HOME}/.cache/INRIA/Natron
934blacklist ${HOME}/.cache/NewsFlashGTK 947deny ${HOME}/.cache/KDE/neochat
935blacklist ${HOME}/.cache/Otter 948deny ${HOME}/.cache/Mendeley Ltd.
936blacklist ${HOME}/.cache/PawelStolowski 949deny ${HOME}/.cache/MusicBrainz
937blacklist ${HOME}/.cache/Psi 950deny ${HOME}/.cache/NewsFlashGTK
938blacklist ${HOME}/.cache/QuiteRss 951deny ${HOME}/.cache/Otter
939blacklist ${HOME}/.cache/quodlibet 952deny ${HOME}/.cache/PawelStolowski
940blacklist ${HOME}/.cache/Quotient/quaternion 953deny ${HOME}/.cache/Psi
941blacklist ${HOME}/.cache/Shortwave 954deny ${HOME}/.cache/QuiteRss
942blacklist ${HOME}/.cache/Tox 955deny ${HOME}/.cache/Quotient/quaternion
943blacklist ${HOME}/.cache/Zeal 956deny ${HOME}/.cache/Shortwave
944blacklist ${HOME}/.cache/agenda 957deny ${HOME}/.cache/Tox
945blacklist ${HOME}/.cache/akonadi* 958deny ${HOME}/.cache/Zeal
946blacklist ${HOME}/.cache/atril 959deny ${HOME}/.cache/agenda
947blacklist ${HOME}/.cache/attic 960deny ${HOME}/.cache/akonadi*
948blacklist ${HOME}/.cache/babl 961deny ${HOME}/.cache/atril
949blacklist ${HOME}/.cache/bnox 962deny ${HOME}/.cache/attic
950blacklist ${HOME}/.cache/borg 963deny ${HOME}/.cache/babl
951blacklist ${HOME}/.cache/calibre 964deny ${HOME}/.cache/bnox
952blacklist ${HOME}/.cache/cantata 965deny ${HOME}/.cache/borg
953blacklist ${HOME}/.cache/champlain 966deny ${HOME}/.cache/calibre
954blacklist ${HOME}/.cache/chromium 967deny ${HOME}/.cache/cantata
955blacklist ${HOME}/.cache/chromium-dev 968deny ${HOME}/.cache/champlain
956blacklist ${HOME}/.cache/cliqz 969deny ${HOME}/.cache/chromium
957blacklist ${HOME}/.cache/com.github.johnfactotum.Foliate 970deny ${HOME}/.cache/chromium-dev
958blacklist ${HOME}/.cache/darktable 971deny ${HOME}/.cache/cliqz
959blacklist ${HOME}/.cache/deja-dup 972deny ${HOME}/.cache/com.github.johnfactotum.Foliate
960blacklist ${HOME}/.cache/discover 973deny ${HOME}/.cache/darktable
961blacklist ${HOME}/.cache/dnox 974deny ${HOME}/.cache/deja-dup
962blacklist ${HOME}/.cache/dolphin 975deny ${HOME}/.cache/discover
963blacklist ${HOME}/.cache/dolphin-emu 976deny ${HOME}/.cache/dnox
964blacklist ${HOME}/.cache/ephemeral 977deny ${HOME}/.cache/dolphin
965blacklist ${HOME}/.cache/epiphany 978deny ${HOME}/.cache/dolphin-emu
966blacklist ${HOME}/.cache/evolution 979deny ${HOME}/.cache/ephemeral
967blacklist ${HOME}/.cache/falkon 980deny ${HOME}/.cache/epiphany
968blacklist ${HOME}/.cache/feedreader 981deny ${HOME}/.cache/evolution
969blacklist ${HOME}/.cache/firedragon 982deny ${HOME}/.cache/falkon
970blacklist ${HOME}/.cache/flaska.net/trojita 983deny ${HOME}/.cache/feedreader
971blacklist ${HOME}/.cache/folks 984deny ${HOME}/.cache/firedragon
972blacklist ${HOME}/.cache/font-manager 985deny ${HOME}/.cache/flaska.net/trojita
973blacklist ${HOME}/.cache/fossamail 986deny ${HOME}/.cache/folks
974blacklist ${HOME}/.cache/fractal 987deny ${HOME}/.cache/font-manager
975blacklist ${HOME}/.cache/freecol 988deny ${HOME}/.cache/fossamail
976blacklist ${HOME}/.cache/gajim 989deny ${HOME}/.cache/fractal
977blacklist ${HOME}/.cache/geary 990deny ${HOME}/.cache/freecol
978blacklist ${HOME}/.cache/gegl-0.4 991deny ${HOME}/.cache/gajim
979blacklist ${HOME}/.cache/geeqie 992deny ${HOME}/.cache/geary
980blacklist ${HOME}/.cache/gfeeds 993deny ${HOME}/.cache/geeqie
981blacklist ${HOME}/.cache/gimp 994deny ${HOME}/.cache/gegl-0.4
982blacklist ${HOME}/.cache/gnome-boxes 995deny ${HOME}/.cache/gfeeds
983blacklist ${HOME}/.cache/gnome-builder 996deny ${HOME}/.cache/gimp
984blacklist ${HOME}/.cache/gnome-control-center 997deny ${HOME}/.cache/gnome-boxes
985blacklist ${HOME}/.cache/gnome-recipes 998deny ${HOME}/.cache/gnome-builder
986blacklist ${HOME}/.cache/gnome-screenshot 999deny ${HOME}/.cache/gnome-control-center
987blacklist ${HOME}/.cache/gnome-software 1000deny ${HOME}/.cache/gnome-recipes
988blacklist ${HOME}/.cache/gnome-twitch 1001deny ${HOME}/.cache/gnome-screenshot
989blacklist ${HOME}/.cache/godot 1002deny ${HOME}/.cache/gnome-software
990blacklist ${HOME}/.cache/google-chrome 1003deny ${HOME}/.cache/gnome-twitch
991blacklist ${HOME}/.cache/google-chrome-beta 1004deny ${HOME}/.cache/godot
992blacklist ${HOME}/.cache/google-chrome-unstable 1005deny ${HOME}/.cache/google-chrome
993blacklist ${HOME}/.cache/gradio 1006deny ${HOME}/.cache/google-chrome-beta
994blacklist ${HOME}/.cache/gummi 1007deny ${HOME}/.cache/google-chrome-unstable
995blacklist ${HOME}/.cache/icedove 1008deny ${HOME}/.cache/gradio
996blacklist ${HOME}/.cache/INRIA/Natron 1009deny ${HOME}/.cache/gummi
997blacklist ${HOME}/.cache/inkscape 1010deny ${HOME}/.cache/icedove
998blacklist ${HOME}/.cache/inox 1011deny ${HOME}/.cache/inkscape
999blacklist ${HOME}/.cache/iridium 1012deny ${HOME}/.cache/inox
1000blacklist ${HOME}/.cache/kcmshell5 1013deny ${HOME}/.cache/iridium
1001blacklist ${HOME}/.cache/KDE/neochat 1014deny ${HOME}/.cache/JetBrains/CLion*
1002blacklist ${HOME}/.cache/kdenlive 1015deny ${HOME}/.cache/kcmshell5
1003blacklist ${HOME}/.cache/keepassxc 1016deny ${HOME}/.cache/kdenlive
1004blacklist ${HOME}/.cache/kfind 1017deny ${HOME}/.cache/keepassxc
1005blacklist ${HOME}/.cache/kinfocenter 1018deny ${HOME}/.cache/kfind
1006blacklist ${HOME}/.cache/kmail2 1019deny ${HOME}/.cache/kinfocenter
1007blacklist ${HOME}/.cache/krunner 1020deny ${HOME}/.cache/kmail2
1008blacklist ${HOME}/.cache/krunnerbookmarkrunnerfirefoxdbfile.sqlite* 1021deny ${HOME}/.cache/krunner
1009blacklist ${HOME}/.cache/kscreenlocker_greet 1022deny ${HOME}/.cache/krunnerbookmarkrunnerfirefoxdbfile.sqlite*
1010blacklist ${HOME}/.cache/ksmserver-logout-greeter 1023deny ${HOME}/.cache/kscreenlocker_greet
1011blacklist ${HOME}/.cache/ksplashqml 1024deny ${HOME}/.cache/ksmserver-logout-greeter
1012blacklist ${HOME}/.cache/kube 1025deny ${HOME}/.cache/ksplashqml
1013blacklist ${HOME}/.cache/kwin 1026deny ${HOME}/.cache/kube
1014blacklist ${HOME}/.cache/libgweather 1027deny ${HOME}/.cache/kwin
1015blacklist ${HOME}/.cache/librewolf 1028deny ${HOME}/.cache/libgweather
1016blacklist ${HOME}/.cache/liferea 1029deny ${HOME}/.cache/librewolf
1017blacklist ${HOME}/.cache/lutris 1030deny ${HOME}/.cache/liferea
1018blacklist ${HOME}/.cache/Mendeley Ltd. 1031deny ${HOME}/.cache/lutris
1019blacklist ${HOME}/.cache/marker 1032deny ${HOME}/.cache/marker
1020blacklist ${HOME}/.cache/matrix-mirage 1033deny ${HOME}/.cache/matrix-mirage
1021blacklist ${HOME}/.cache/microsoft-edge-dev 1034deny ${HOME}/.cache/microsoft-edge-dev
1022blacklist ${HOME}/.cache/midori 1035deny ${HOME}/.cache/midori
1023blacklist ${HOME}/.cache/minetest 1036deny ${HOME}/.cache/minetest
1024blacklist ${HOME}/.cache/mirage 1037deny ${HOME}/.cache/mirage
1025blacklist ${HOME}/.cache/moonchild productions/basilisk 1038deny ${HOME}/.cache/moonchild productions/basilisk
1026blacklist ${HOME}/.cache/moonchild productions/pale moon 1039deny ${HOME}/.cache/moonchild productions/pale moon
1027blacklist ${HOME}/.cache/mozilla 1040deny ${HOME}/.cache/mozilla
1028blacklist ${HOME}/.cache/ms-excel-online 1041deny ${HOME}/.cache/ms-excel-online
1029blacklist ${HOME}/.cache/ms-office-online 1042deny ${HOME}/.cache/ms-office-online
1030blacklist ${HOME}/.cache/ms-onenote-online 1043deny ${HOME}/.cache/ms-onenote-online
1031blacklist ${HOME}/.cache/ms-outlook-online 1044deny ${HOME}/.cache/ms-outlook-online
1032blacklist ${HOME}/.cache/ms-powerpoint-online 1045deny ${HOME}/.cache/ms-powerpoint-online
1033blacklist ${HOME}/.cache/ms-skype-online 1046deny ${HOME}/.cache/ms-skype-online
1034blacklist ${HOME}/.cache/ms-word-online 1047deny ${HOME}/.cache/ms-word-online
1035blacklist ${HOME}/.cache/mutt 1048deny ${HOME}/.cache/mutt
1036blacklist ${HOME}/.cache/mypaint 1049deny ${HOME}/.cache/mypaint
1037blacklist ${HOME}/.cache/nheko 1050deny ${HOME}/.cache/netsurf
1038blacklist ${HOME}/.cache/netsurf 1051deny ${HOME}/.cache/nheko
1039blacklist ${HOME}/.cache/okular 1052deny ${HOME}/.cache/okular
1040blacklist ${HOME}/.cache/opera 1053deny ${HOME}/.cache/opera
1041blacklist ${HOME}/.cache/opera-beta 1054deny ${HOME}/.cache/opera-beta
1042blacklist ${HOME}/.cache/org.gabmus.gfeeds 1055deny ${HOME}/.cache/org.gabmus.gfeeds
1043blacklist ${HOME}/.cache/org.gnome.Books 1056deny ${HOME}/.cache/org.gnome.Books
1044blacklist ${HOME}/.cache/org.gnome.Maps 1057deny ${HOME}/.cache/org.gnome.Maps
1045blacklist ${HOME}/.cache/pdfmod 1058deny ${HOME}/.cache/pdfmod
1046blacklist ${HOME}/.cache/peek 1059deny ${HOME}/.cache/peek
1047blacklist ${HOME}/.cache/pip 1060deny ${HOME}/.cache/pip
1048blacklist ${HOME}/.cache/pipe-viewer 1061deny ${HOME}/.cache/pipe-viewer
1049blacklist ${HOME}/.cache/plasmashell 1062deny ${HOME}/.cache/plasmashell
1050blacklist ${HOME}/.cache/plasmashellbookmarkrunnerfirefoxdbfile.sqlite* 1063deny ${HOME}/.cache/plasmashellbookmarkrunnerfirefoxdbfile.sqlite*
1051blacklist ${HOME}/.cache/psi 1064deny ${HOME}/.cache/psi
1052blacklist ${HOME}/.cache/qBittorrent 1065deny ${HOME}/.cache/qBittorrent
1053blacklist ${HOME}/.cache/qupzilla 1066deny ${HOME}/.cache/quodlibet
1054blacklist ${HOME}/.cache/qutebrowser 1067deny ${HOME}/.cache/qupzilla
1055blacklist ${HOME}/.cache/rhythmbox 1068deny ${HOME}/.cache/qutebrowser
1056blacklist ${HOME}/.cache/shotwell 1069deny ${HOME}/.cache/rhythmbox
1057blacklist ${HOME}/.cache/simple-scan 1070deny ${HOME}/.cache/shotwell
1058blacklist ${HOME}/.cache/slimjet 1071deny ${HOME}/.cache/simple-scan
1059blacklist ${HOME}/.cache/smuxi 1072deny ${HOME}/.cache/slimjet
1060blacklist ${HOME}/.cache/snox 1073deny ${HOME}/.cache/smuxi
1061blacklist ${HOME}/.cache/spotify 1074deny ${HOME}/.cache/snox
1062blacklist ${HOME}/.cache/strawberry 1075deny ${HOME}/.cache/spotify
1063blacklist ${HOME}/.cache/straw-viewer 1076deny ${HOME}/.cache/straw-viewer
1064blacklist ${HOME}/.cache/supertuxkart 1077deny ${HOME}/.cache/strawberry
1065blacklist ${HOME}/.cache/systemsettings 1078deny ${HOME}/.cache/supertuxkart
1066blacklist ${HOME}/.cache/telepathy 1079deny ${HOME}/.cache/systemsettings
1067blacklist ${HOME}/.cache/thunderbird 1080deny ${HOME}/.cache/telepathy
1068blacklist ${HOME}/.cache/torbrowser 1081deny ${HOME}/.cache/thunderbird
1069blacklist ${HOME}/.cache/transmission 1082deny ${HOME}/.cache/torbrowser
1070blacklist ${HOME}/.cache/ungoogled-chromium 1083deny ${HOME}/.cache/transmission
1071blacklist ${HOME}/.cache/vivaldi 1084deny ${HOME}/.cache/ungoogled-chromium
1072blacklist ${HOME}/.cache/vivaldi-snapshot 1085deny ${HOME}/.cache/vivaldi
1073blacklist ${HOME}/.cache/vlc 1086deny ${HOME}/.cache/vivaldi-snapshot
1074blacklist ${HOME}/.cache/vmware 1087deny ${HOME}/.cache/vlc
1075blacklist ${HOME}/.cache/warsow-2.1 1088deny ${HOME}/.cache/vmware
1076blacklist ${HOME}/.cache/waterfox 1089deny ${HOME}/.cache/warsow-2.1
1077blacklist ${HOME}/.cache/wesnoth 1090deny ${HOME}/.cache/waterfox
1078blacklist ${HOME}/.cache/winetricks 1091deny ${HOME}/.cache/wesnoth
1079blacklist ${HOME}/.cache/xmms2 1092deny ${HOME}/.cache/winetricks
1080blacklist ${HOME}/.cache/xreader 1093deny ${HOME}/.cache/xmms2
1081blacklist ${HOME}/.cache/yandex-browser 1094deny ${HOME}/.cache/xreader
1082blacklist ${HOME}/.cache/yandex-browser-beta 1095deny ${HOME}/.cache/yandex-browser
1083blacklist ${HOME}/.cache/youtube-dl 1096deny ${HOME}/.cache/yandex-browser-beta
1084blacklist ${HOME}/.cache/youtube-viewer 1097deny ${HOME}/.cache/youtube-dl
1098deny ${HOME}/.cache/youtube-viewer
diff --git a/etc/inc/disable-shell.inc b/etc/inc/disable-shell.inc
index 8274b0215..da6fb31a3 100644
--- a/etc/inc/disable-shell.inc
+++ b/etc/inc/disable-shell.inc
@@ -2,14 +2,14 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include disable-shell.local 3include disable-shell.local
4 4
5blacklist ${PATH}/bash 5deny ${PATH}/bash
6blacklist ${PATH}/csh 6deny ${PATH}/csh
7blacklist ${PATH}/dash 7deny ${PATH}/dash
8blacklist ${PATH}/fish 8deny ${PATH}/fish
9blacklist ${PATH}/ksh 9deny ${PATH}/ksh
10blacklist ${PATH}/mksh 10deny ${PATH}/mksh
11blacklist ${PATH}/oksh 11deny ${PATH}/oksh
12blacklist ${PATH}/sh 12deny ${PATH}/sh
13blacklist ${PATH}/tclsh 13deny ${PATH}/tclsh
14blacklist ${PATH}/tcsh 14deny ${PATH}/tcsh
15blacklist ${PATH}/zsh 15deny ${PATH}/zsh
diff --git a/etc/inc/disable-xdg.inc b/etc/inc/disable-xdg.inc
index 22acf272d..32aa8c7f6 100644
--- a/etc/inc/disable-xdg.inc
+++ b/etc/inc/disable-xdg.inc
@@ -2,10 +2,10 @@
2# Persistent customizations should go in a .local file. 2# Persistent customizations should go in a .local file.
3include disable-xdg.local 3include disable-xdg.local
4 4
5blacklist ${DOCUMENTS} 5deny ${DOCUMENTS}
6blacklist ${MUSIC} 6deny ${MUSIC}
7blacklist ${PICTURES} 7deny ${PICTURES}
8blacklist ${VIDEOS} 8deny ${VIDEOS}
9 9
10# The following should be considered catch-all directories 10# The following should be considered catch-all directories
11#blacklist ${DESKTOP} 11#blacklist ${DESKTOP}
diff --git a/etc/inc/whitelist-1793-workaround.inc b/etc/inc/whitelist-1793-workaround.inc
index 862837f12..06a424440 100644
--- a/etc/inc/whitelist-1793-workaround.inc
+++ b/etc/inc/whitelist-1793-workaround.inc
@@ -3,27 +3,27 @@
3include whitelist-1793-workaround.local 3include whitelist-1793-workaround.local
4# This works around bug 1793, and allows whitelisting to be used for some KDE applications. 4# This works around bug 1793, and allows whitelisting to be used for some KDE applications.
5 5
6noblacklist ${HOME}/.config/ibus 6nodeny ${HOME}/.config/ibus
7noblacklist ${HOME}/.config/mimeapps.list 7nodeny ${HOME}/.config/mimeapps.list
8noblacklist ${HOME}/.config/pkcs11 8nodeny ${HOME}/.config/pkcs11
9noblacklist ${HOME}/.config/user-dirs.dirs 9nodeny ${HOME}/.config/user-dirs.dirs
10noblacklist ${HOME}/.config/user-dirs.locale 10nodeny ${HOME}/.config/user-dirs.locale
11noblacklist ${HOME}/.config/dconf 11nodeny ${HOME}/.config/dconf
12noblacklist ${HOME}/.config/fontconfig 12nodeny ${HOME}/.config/fontconfig
13noblacklist ${HOME}/.config/gtk-2.0 13nodeny ${HOME}/.config/gtk-2.0
14noblacklist ${HOME}/.config/gtk-3.0 14nodeny ${HOME}/.config/gtk-3.0
15noblacklist ${HOME}/.config/gtk-4.0 15nodeny ${HOME}/.config/gtk-4.0
16noblacklist ${HOME}/.config/gtkrc 16nodeny ${HOME}/.config/gtkrc
17noblacklist ${HOME}/.config/gtkrc-2.0 17nodeny ${HOME}/.config/gtkrc-2.0
18noblacklist ${HOME}/.config/Kvantum 18nodeny ${HOME}/.config/Kvantum
19noblacklist ${HOME}/.config/Trolltech.conf 19nodeny ${HOME}/.config/Trolltech.conf
20noblacklist ${HOME}/.config/QtProject.conf 20nodeny ${HOME}/.config/QtProject.conf
21noblacklist ${HOME}/.config/kdeglobals 21nodeny ${HOME}/.config/kdeglobals
22noblacklist ${HOME}/.config/kio_httprc 22nodeny ${HOME}/.config/kio_httprc
23noblacklist ${HOME}/.config/kioslaverc 23nodeny ${HOME}/.config/kioslaverc
24noblacklist ${HOME}/.config/ksslcablacklist 24nodeny ${HOME}/.config/ksslcablacklist
25noblacklist ${HOME}/.config/qt5ct 25nodeny ${HOME}/.config/qt5ct
26noblacklist ${HOME}/.config/qtcurve 26nodeny ${HOME}/.config/qtcurve
27 27
28blacklist ${HOME}/.config/* 28deny ${HOME}/.config/*
29whitelist ${HOME}/.config 29allow ${HOME}/.config
diff --git a/etc/inc/whitelist-common.inc b/etc/inc/whitelist-common.inc
index 1d3728521..11070e372 100644
--- a/etc/inc/whitelist-common.inc
+++ b/etc/inc/whitelist-common.inc
@@ -4,81 +4,82 @@ include whitelist-common.local
4 4
5# common whitelist for all profiles 5# common whitelist for all profiles
6 6
7whitelist ${HOME}/.XCompose 7allow ${HOME}/.XCompose
8whitelist ${HOME}/.alsaequal.bin 8allow ${HOME}/.alsaequal.bin
9whitelist ${HOME}/.asoundrc 9allow ${HOME}/.asoundrc
10whitelist ${HOME}/.config/ibus 10allow ${HOME}/.config/ibus
11whitelist ${HOME}/.config/mimeapps.list 11allow ${HOME}/.config/mimeapps.list
12whitelist ${HOME}/.config/pkcs11 12allow ${HOME}/.config/pkcs11
13read-only ${HOME}/.config/pkcs11 13read-only ${HOME}/.config/pkcs11
14whitelist ${HOME}/.config/user-dirs.dirs 14allow ${HOME}/.config/user-dirs.dirs
15read-only ${HOME}/.config/user-dirs.dirs 15read-only ${HOME}/.config/user-dirs.dirs
16whitelist ${HOME}/.config/user-dirs.locale 16allow ${HOME}/.config/user-dirs.locale
17read-only ${HOME}/.config/user-dirs.locale 17read-only ${HOME}/.config/user-dirs.locale
18whitelist ${HOME}/.drirc 18allow ${HOME}/.drirc
19whitelist ${HOME}/.icons 19allow ${HOME}/.icons
20?HAS_APPIMAGE: whitelist ${HOME}/.local/share/appimagekit 20?HAS_APPIMAGE: whitelist ${HOME}/.local/share/appimagekit
21whitelist ${HOME}/.local/share/applications 21allow ${HOME}/.local/share/applications
22read-only ${HOME}/.local/share/applications 22read-only ${HOME}/.local/share/applications
23whitelist ${HOME}/.local/share/icons 23allow ${HOME}/.local/share/icons
24whitelist ${HOME}/.local/share/mime 24allow ${HOME}/.local/share/mime
25whitelist ${HOME}/.mime.types 25allow ${HOME}/.mime.types
26whitelist ${HOME}/.uim.d 26allow ${HOME}/.sndio/cookie
27allow ${HOME}/.uim.d
27 28
28# dconf 29# dconf
29mkdir ${HOME}/.config/dconf 30mkdir ${HOME}/.config/dconf
30whitelist ${HOME}/.config/dconf 31allow ${HOME}/.config/dconf
31 32
32# fonts 33# fonts
33whitelist ${HOME}/.cache/fontconfig 34allow ${HOME}/.cache/fontconfig
34whitelist ${HOME}/.config/fontconfig 35allow ${HOME}/.config/fontconfig
35whitelist ${HOME}/.fontconfig 36allow ${HOME}/.fontconfig
36whitelist ${HOME}/.fonts 37allow ${HOME}/.fonts
37whitelist ${HOME}/.fonts.conf 38allow ${HOME}/.fonts.conf
38whitelist ${HOME}/.fonts.conf.d 39allow ${HOME}/.fonts.conf.d
39whitelist ${HOME}/.fonts.d 40allow ${HOME}/.fonts.d
40whitelist ${HOME}/.local/share/fonts 41allow ${HOME}/.local/share/fonts
41whitelist ${HOME}/.pangorc 42allow ${HOME}/.pangorc
42 43
43# gtk 44# gtk
44whitelist ${HOME}/.config/gtk-2.0 45allow ${HOME}/.config/gtk-2.0
45whitelist ${HOME}/.config/gtk-3.0 46allow ${HOME}/.config/gtk-3.0
46whitelist ${HOME}/.config/gtk-4.0 47allow ${HOME}/.config/gtk-4.0
47whitelist ${HOME}/.config/gtkrc 48allow ${HOME}/.config/gtkrc
48whitelist ${HOME}/.config/gtkrc-2.0 49allow ${HOME}/.config/gtkrc-2.0
49whitelist ${HOME}/.gnome2 50allow ${HOME}/.gnome2
50whitelist ${HOME}/.gnome2-private 51allow ${HOME}/.gnome2-private
51whitelist ${HOME}/.gtk-2.0 52allow ${HOME}/.gtk-2.0
52whitelist ${HOME}/.gtkrc 53allow ${HOME}/.gtkrc
53whitelist ${HOME}/.gtkrc-2.0 54allow ${HOME}/.gtkrc-2.0
54whitelist ${HOME}/.kde/share/config/gtkrc 55allow ${HOME}/.kde/share/config/gtkrc
55whitelist ${HOME}/.kde/share/config/gtkrc-2.0 56allow ${HOME}/.kde/share/config/gtkrc-2.0
56whitelist ${HOME}/.kde4/share/config/gtkrc 57allow ${HOME}/.kde4/share/config/gtkrc
57whitelist ${HOME}/.kde4/share/config/gtkrc-2.0 58allow ${HOME}/.kde4/share/config/gtkrc-2.0
58whitelist ${HOME}/.local/share/themes 59allow ${HOME}/.local/share/themes
59whitelist ${HOME}/.themes 60allow ${HOME}/.themes
60 61
61# qt/kde 62# qt/kde
62whitelist ${HOME}/.cache/kioexec/krun 63allow ${HOME}/.cache/kioexec/krun
63whitelist ${HOME}/.config/Kvantum 64allow ${HOME}/.config/Kvantum
64whitelist ${HOME}/.config/Trolltech.conf 65allow ${HOME}/.config/Trolltech.conf
65whitelist ${HOME}/.config/QtProject.conf 66allow ${HOME}/.config/QtProject.conf
66whitelist ${HOME}/.config/kdeglobals 67allow ${HOME}/.config/kdeglobals
67whitelist ${HOME}/.config/kio_httprc 68allow ${HOME}/.config/kio_httprc
68whitelist ${HOME}/.config/kioslaverc 69allow ${HOME}/.config/kioslaverc
69whitelist ${HOME}/.config/ksslcablacklist 70allow ${HOME}/.config/ksslcablacklist
70whitelist ${HOME}/.config/qt5ct 71allow ${HOME}/.config/qt5ct
71whitelist ${HOME}/.config/qtcurve 72allow ${HOME}/.config/qtcurve
72whitelist ${HOME}/.kde/share/config/kdeglobals 73allow ${HOME}/.kde/share/config/kdeglobals
73whitelist ${HOME}/.kde/share/config/kio_httprc 74allow ${HOME}/.kde/share/config/kio_httprc
74whitelist ${HOME}/.kde/share/config/kioslaverc 75allow ${HOME}/.kde/share/config/kioslaverc
75whitelist ${HOME}/.kde/share/config/ksslcablacklist 76allow ${HOME}/.kde/share/config/ksslcablacklist
76whitelist ${HOME}/.kde/share/config/oxygenrc 77allow ${HOME}/.kde/share/config/oxygenrc
77whitelist ${HOME}/.kde/share/icons 78allow ${HOME}/.kde/share/icons
78whitelist ${HOME}/.kde4/share/config/kdeglobals 79allow ${HOME}/.kde4/share/config/kdeglobals
79whitelist ${HOME}/.kde4/share/config/kio_httprc 80allow ${HOME}/.kde4/share/config/kio_httprc
80whitelist ${HOME}/.kde4/share/config/kioslaverc 81allow ${HOME}/.kde4/share/config/kioslaverc
81whitelist ${HOME}/.kde4/share/config/ksslcablacklist 82allow ${HOME}/.kde4/share/config/ksslcablacklist
82whitelist ${HOME}/.kde4/share/config/oxygenrc 83allow ${HOME}/.kde4/share/config/oxygenrc
83whitelist ${HOME}/.kde4/share/icons 84allow ${HOME}/.kde4/share/icons
84whitelist ${HOME}/.local/share/qt5ct 85allow ${HOME}/.local/share/qt5ct
diff --git a/etc/inc/whitelist-player-common.inc b/etc/inc/whitelist-player-common.inc
index e5bf36804..d6ae8eab6 100644
--- a/etc/inc/whitelist-player-common.inc
+++ b/etc/inc/whitelist-player-common.inc
@@ -4,8 +4,8 @@ include whitelist-player-common.local
4 4
5# common whitelist for all media players 5# common whitelist for all media players
6 6
7whitelist ${DESKTOP} 7allow ${DESKTOP}
8whitelist ${DOWNLOADS} 8allow ${DOWNLOADS}
9whitelist ${MUSIC} 9allow ${MUSIC}
10whitelist ${PICTURES} 10allow ${PICTURES}
11whitelist ${VIDEOS} 11allow ${VIDEOS}
diff --git a/etc/inc/whitelist-runuser-common.inc b/etc/inc/whitelist-runuser-common.inc
index 48309ffe3..86e5264b9 100644
--- a/etc/inc/whitelist-runuser-common.inc
+++ b/etc/inc/whitelist-runuser-common.inc
@@ -4,13 +4,13 @@ include whitelist-runuser-common.local
4 4
5# common ${RUNUSER} (=/run/user/$UID) whitelist for all profiles 5# common ${RUNUSER} (=/run/user/$UID) whitelist for all profiles
6 6
7whitelist ${RUNUSER}/bus 7allow ${RUNUSER}/bus
8whitelist ${RUNUSER}/dconf 8allow ${RUNUSER}/dconf
9whitelist ${RUNUSER}/gdm/Xauthority 9allow ${RUNUSER}/gdm/Xauthority
10whitelist ${RUNUSER}/ICEauthority 10allow ${RUNUSER}/ICEauthority
11whitelist ${RUNUSER}/.mutter-Xwaylandauth.* 11allow ${RUNUSER}/.mutter-Xwaylandauth.*
12whitelist ${RUNUSER}/pulse/native 12allow ${RUNUSER}/pulse/native
13whitelist ${RUNUSER}/wayland-0 13allow ${RUNUSER}/wayland-0
14whitelist ${RUNUSER}/wayland-1 14allow ${RUNUSER}/wayland-1
15whitelist ${RUNUSER}/xauth_* 15allow ${RUNUSER}/xauth_*
16whitelist ${RUNUSER}/[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]] 16allow ${RUNUSER}/[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]-[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]
diff --git a/etc/inc/whitelist-usr-share-common.inc b/etc/inc/whitelist-usr-share-common.inc
index fe0097934..64296da15 100644
--- a/etc/inc/whitelist-usr-share-common.inc
+++ b/etc/inc/whitelist-usr-share-common.inc
@@ -4,66 +4,66 @@ include whitelist-usr-share-common.local
4 4
5# common /usr/share whitelist for all profiles 5# common /usr/share whitelist for all profiles
6 6
7whitelist /usr/share/alsa 7allow /usr/share/alsa
8whitelist /usr/share/applications 8allow /usr/share/applications
9whitelist /usr/share/ca-certificates 9allow /usr/share/ca-certificates
10whitelist /usr/share/crypto-policies 10allow /usr/share/crypto-policies
11whitelist /usr/share/cursors 11allow /usr/share/cursors
12whitelist /usr/share/dconf 12allow /usr/share/dconf
13whitelist /usr/share/distro-info 13allow /usr/share/distro-info
14whitelist /usr/share/drirc.d 14allow /usr/share/drirc.d
15whitelist /usr/share/enchant 15allow /usr/share/enchant
16whitelist /usr/share/enchant-2 16allow /usr/share/enchant-2
17whitelist /usr/share/file 17allow /usr/share/file
18whitelist /usr/share/fontconfig 18allow /usr/share/fontconfig
19whitelist /usr/share/fonts 19allow /usr/share/fonts
20whitelist /usr/share/fonts-config 20allow /usr/share/fonts-config
21whitelist /usr/share/gir-1.0 21allow /usr/share/gir-1.0
22whitelist /usr/share/gjs-1.0 22allow /usr/share/gjs-1.0
23whitelist /usr/share/glib-2.0 23allow /usr/share/glib-2.0
24whitelist /usr/share/glvnd 24allow /usr/share/glvnd
25whitelist /usr/share/gtk-2.0 25allow /usr/share/gtk-2.0
26whitelist /usr/share/gtk-3.0 26allow /usr/share/gtk-3.0
27whitelist /usr/share/gtk-engines 27allow /usr/share/gtk-engines
28whitelist /usr/share/gtksourceview-3.0 28allow /usr/share/gtksourceview-3.0
29whitelist /usr/share/gtksourceview-4 29allow /usr/share/gtksourceview-4
30whitelist /usr/share/hunspell 30allow /usr/share/hunspell
31whitelist /usr/share/hwdata 31allow /usr/share/hwdata
32whitelist /usr/share/icons 32allow /usr/share/icons
33whitelist /usr/share/icu 33allow /usr/share/icu
34whitelist /usr/share/knotifications5 34allow /usr/share/knotifications5
35whitelist /usr/share/kservices5 35allow /usr/share/kservices5
36whitelist /usr/share/Kvantum 36allow /usr/share/Kvantum
37whitelist /usr/share/kxmlgui5 37allow /usr/share/kxmlgui5
38whitelist /usr/share/libdrm 38allow /usr/share/libdrm
39whitelist /usr/share/libthai 39allow /usr/share/libthai
40whitelist /usr/share/locale 40allow /usr/share/locale
41whitelist /usr/share/mime 41allow /usr/share/mime
42whitelist /usr/share/misc 42allow /usr/share/misc
43whitelist /usr/share/Modules 43allow /usr/share/Modules
44whitelist /usr/share/myspell 44allow /usr/share/myspell
45whitelist /usr/share/p11-kit 45allow /usr/share/p11-kit
46whitelist /usr/share/perl 46allow /usr/share/perl
47whitelist /usr/share/perl5 47allow /usr/share/perl5
48whitelist /usr/share/pixmaps 48allow /usr/share/pixmaps
49whitelist /usr/share/pki 49allow /usr/share/pki
50whitelist /usr/share/plasma 50allow /usr/share/plasma
51whitelist /usr/share/publicsuffix 51allow /usr/share/publicsuffix
52whitelist /usr/share/qt 52allow /usr/share/qt
53whitelist /usr/share/qt4 53allow /usr/share/qt4
54whitelist /usr/share/qt5 54allow /usr/share/qt5
55whitelist /usr/share/qt5ct 55allow /usr/share/qt5ct
56whitelist /usr/share/sounds 56allow /usr/share/sounds
57whitelist /usr/share/tcl8.6 57allow /usr/share/tcl8.6
58whitelist /usr/share/tcltk 58allow /usr/share/tcltk
59whitelist /usr/share/terminfo 59allow /usr/share/terminfo
60whitelist /usr/share/texlive 60allow /usr/share/texlive
61whitelist /usr/share/texmf 61allow /usr/share/texmf
62whitelist /usr/share/themes 62allow /usr/share/themes
63whitelist /usr/share/thumbnail.so 63allow /usr/share/thumbnail.so
64whitelist /usr/share/uim 64allow /usr/share/uim
65whitelist /usr/share/vulkan 65allow /usr/share/vulkan
66whitelist /usr/share/X11 66allow /usr/share/X11
67whitelist /usr/share/xml 67allow /usr/share/xml
68whitelist /usr/share/zenity 68allow /usr/share/zenity
69whitelist /usr/share/zoneinfo 69allow /usr/share/zoneinfo
diff --git a/etc/inc/whitelist-var-common.inc b/etc/inc/whitelist-var-common.inc
index d8ba84ad0..c449e8905 100644
--- a/etc/inc/whitelist-var-common.inc
+++ b/etc/inc/whitelist-var-common.inc
@@ -4,12 +4,12 @@ include whitelist-var-common.local
4 4
5# common /var whitelist for all profiles 5# common /var whitelist for all profiles
6 6
7whitelist /var/lib/aspell 7allow /var/lib/aspell
8whitelist /var/lib/ca-certificates 8allow /var/lib/ca-certificates
9whitelist /var/lib/dbus 9allow /var/lib/dbus
10whitelist /var/lib/menu-xdg 10allow /var/lib/menu-xdg
11whitelist /var/lib/uim 11allow /var/lib/uim
12whitelist /var/cache/fontconfig 12allow /var/cache/fontconfig
13whitelist /var/tmp 13allow /var/tmp
14whitelist /var/run 14allow /var/run
15whitelist /var/lock 15allow /var/lock
diff --git a/etc/profile-a-l/0ad.profile b/etc/profile-a-l/0ad.profile
index 454a15ab2..6f493fff1 100644
--- a/etc/profile-a-l/0ad.profile
+++ b/etc/profile-a-l/0ad.profile
@@ -6,9 +6,11 @@ include 0ad.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/0ad 9nodeny ${HOME}/.cache/0ad
10noblacklist ${HOME}/.config/0ad 10nodeny ${HOME}/.config/0ad
11noblacklist ${HOME}/.local/share/0ad 11nodeny ${HOME}/.local/share/0ad
12
13deny /usr/libexec
12 14
13include disable-common.inc 15include disable-common.inc
14include disable-devel.inc 16include disable-devel.inc
@@ -21,11 +23,11 @@ include disable-xdg.inc
21mkdir ${HOME}/.cache/0ad 23mkdir ${HOME}/.cache/0ad
22mkdir ${HOME}/.config/0ad 24mkdir ${HOME}/.config/0ad
23mkdir ${HOME}/.local/share/0ad 25mkdir ${HOME}/.local/share/0ad
24whitelist ${HOME}/.cache/0ad 26allow ${HOME}/.cache/0ad
25whitelist ${HOME}/.config/0ad 27allow ${HOME}/.config/0ad
26whitelist ${HOME}/.local/share/0ad 28allow ${HOME}/.local/share/0ad
27whitelist /usr/share/0ad 29allow /usr/share/0ad
28whitelist /usr/share/games 30allow /usr/share/games
29include whitelist-common.inc 31include whitelist-common.inc
30include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 33include whitelist-var-common.inc
diff --git a/etc/profile-a-l/2048-qt.profile b/etc/profile-a-l/2048-qt.profile
index 1d787cba7..3a7b331a7 100644
--- a/etc/profile-a-l/2048-qt.profile
+++ b/etc/profile-a-l/2048-qt.profile
@@ -6,8 +6,8 @@ include 2048-qt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/2048-qt 9nodeny ${HOME}/.config/2048-qt
10noblacklist ${HOME}/.config/xiaoyong 10nodeny ${HOME}/.config/xiaoyong
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-programs.inc
18 18
19mkdir ${HOME}/.config/2048-qt 19mkdir ${HOME}/.config/2048-qt
20mkdir ${HOME}/.config/xiaoyong 20mkdir ${HOME}/.config/xiaoyong
21whitelist ${HOME}/.config/2048-qt 21allow ${HOME}/.config/2048-qt
22whitelist ${HOME}/.config/xiaoyong 22allow ${HOME}/.config/xiaoyong
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-var-common.inc 24include whitelist-var-common.inc
25 25
diff --git a/etc/profile-a-l/Cryptocat.profile b/etc/profile-a-l/Cryptocat.profile
index 1d86b0fbf..def0ec111 100644
--- a/etc/profile-a-l/Cryptocat.profile
+++ b/etc/profile-a-l/Cryptocat.profile
@@ -5,7 +5,7 @@ include Cryptocat.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/Cryptocat 8nodeny ${HOME}/.config/Cryptocat
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-a-l/Discord.profile b/etc/profile-a-l/Discord.profile
index 3f274b21c..1d3ae49ca 100644
--- a/etc/profile-a-l/Discord.profile
+++ b/etc/profile-a-l/Discord.profile
@@ -5,10 +5,10 @@ include Discord.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/discord 8nodeny ${HOME}/.config/discord
9 9
10mkdir ${HOME}/.config/discord 10mkdir ${HOME}/.config/discord
11whitelist ${HOME}/.config/discord 11allow ${HOME}/.config/discord
12 12
13private-bin Discord 13private-bin Discord
14private-opt Discord 14private-opt Discord
diff --git a/etc/profile-a-l/DiscordCanary.profile b/etc/profile-a-l/DiscordCanary.profile
index d24e73ed8..3c85f187b 100644
--- a/etc/profile-a-l/DiscordCanary.profile
+++ b/etc/profile-a-l/DiscordCanary.profile
@@ -5,10 +5,10 @@ include DiscordCanary.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/discordcanary 8nodeny ${HOME}/.config/discordcanary
9 9
10mkdir ${HOME}/.config/discordcanary 10mkdir ${HOME}/.config/discordcanary
11whitelist ${HOME}/.config/discordcanary 11allow ${HOME}/.config/discordcanary
12 12
13private-bin DiscordCanary 13private-bin DiscordCanary
14private-opt DiscordCanary 14private-opt DiscordCanary
diff --git a/etc/profile-a-l/Fritzing.profile b/etc/profile-a-l/Fritzing.profile
index 7dc6b5ff0..8f746581f 100644
--- a/etc/profile-a-l/Fritzing.profile
+++ b/etc/profile-a-l/Fritzing.profile
@@ -6,8 +6,8 @@ include Fritzing.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Fritzing 9nodeny ${HOME}/.config/Fritzing
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/JDownloader.profile b/etc/profile-a-l/JDownloader.profile
index d10b70796..9a00c3230 100644
--- a/etc/profile-a-l/JDownloader.profile
+++ b/etc/profile-a-l/JDownloader.profile
@@ -5,7 +5,7 @@ include JDownloader.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.jd 8nodeny ${HOME}/.jd
9 9
10# Allow java (blacklisted by disable-devel.inc) 10# Allow java (blacklisted by disable-devel.inc)
11include allow-java.inc 11include allow-java.inc
@@ -19,8 +19,8 @@ include disable-programs.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21mkdir ${HOME}/.jd 21mkdir ${HOME}/.jd
22whitelist ${HOME}/.jd 22allow ${HOME}/.jd
23whitelist ${DOWNLOADS} 23allow ${DOWNLOADS}
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-a-l/abiword.profile b/etc/profile-a-l/abiword.profile
index 75da9a956..2a92c7db4 100644
--- a/etc/profile-a-l/abiword.profile
+++ b/etc/profile-a-l/abiword.profile
@@ -6,7 +6,7 @@ include abiword.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/abiword 9nodeny ${HOME}/.config/abiword
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19whitelist /usr/share/abiword-3.0 19allow /usr/share/abiword-3.0
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-runuser-common.inc 21include whitelist-runuser-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
diff --git a/etc/profile-a-l/abrowser.profile b/etc/profile-a-l/abrowser.profile
index 2e6e8f1af..70ddcec20 100644
--- a/etc/profile-a-l/abrowser.profile
+++ b/etc/profile-a-l/abrowser.profile
@@ -5,13 +5,13 @@ include abrowser.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/mozilla 8nodeny ${HOME}/.cache/mozilla
9noblacklist ${HOME}/.mozilla 9nodeny ${HOME}/.mozilla
10 10
11mkdir ${HOME}/.cache/mozilla/abrowser 11mkdir ${HOME}/.cache/mozilla/abrowser
12mkdir ${HOME}/.mozilla 12mkdir ${HOME}/.mozilla
13whitelist ${HOME}/.cache/mozilla/abrowser 13allow ${HOME}/.cache/mozilla/abrowser
14whitelist ${HOME}/.mozilla 14allow ${HOME}/.mozilla
15 15
16# private-etc must first be enabled in firefox-common.profile 16# private-etc must first be enabled in firefox-common.profile
17#private-etc abrowser 17#private-etc abrowser
diff --git a/etc/profile-a-l/agetpkg.profile b/etc/profile-a-l/agetpkg.profile
index 34f59769e..d32586c5b 100644
--- a/etc/profile-a-l/agetpkg.profile
+++ b/etc/profile-a-l/agetpkg.profile
@@ -7,8 +7,8 @@ include agetpkg.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER}/wayland-* 11deny ${RUNUSER}/wayland-*
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14#include allow-python2.inc 14#include allow-python2.inc
@@ -23,7 +23,7 @@ include disable-programs.inc
23include disable-shell.inc 23include disable-shell.inc
24include disable-xdg.inc 24include disable-xdg.inc
25 25
26whitelist ${DOWNLOADS} 26allow ${DOWNLOADS}
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
diff --git a/etc/profile-a-l/akonadi_control.profile b/etc/profile-a-l/akonadi_control.profile
index 37fdb38b5..7b1d1445f 100644
--- a/etc/profile-a-l/akonadi_control.profile
+++ b/etc/profile-a-l/akonadi_control.profile
@@ -4,22 +4,22 @@ include akonadi_control.local
4# Persistent global definitions 4# Persistent global definitions
5include globals.local 5include globals.local
6 6
7noblacklist ${HOME}/.cache/akonadi* 7nodeny ${HOME}/.cache/akonadi*
8noblacklist ${HOME}/.config/akonadi* 8nodeny ${HOME}/.config/akonadi*
9noblacklist ${HOME}/.config/baloorc 9nodeny ${HOME}/.config/baloorc
10noblacklist ${HOME}/.config/emaildefaults 10nodeny ${HOME}/.config/emaildefaults
11noblacklist ${HOME}/.config/emailidentities 11nodeny ${HOME}/.config/emailidentities
12noblacklist ${HOME}/.config/kmail2rc 12nodeny ${HOME}/.config/kmail2rc
13noblacklist ${HOME}/.config/mailtransports 13nodeny ${HOME}/.config/mailtransports
14noblacklist ${HOME}/.config/specialmailcollectionsrc 14nodeny ${HOME}/.config/specialmailcollectionsrc
15noblacklist ${HOME}/.local/share/akonadi* 15nodeny ${HOME}/.local/share/akonadi*
16noblacklist ${HOME}/.local/share/apps/korganizer 16nodeny ${HOME}/.local/share/apps/korganizer
17noblacklist ${HOME}/.local/share/contacts 17nodeny ${HOME}/.local/share/contacts
18noblacklist ${HOME}/.local/share/local-mail 18nodeny ${HOME}/.local/share/local-mail
19noblacklist ${HOME}/.local/share/notes 19nodeny ${HOME}/.local/share/notes
20noblacklist /sbin 20nodeny /sbin
21noblacklist /tmp/akonadi-* 21nodeny /tmp/akonadi-*
22noblacklist /usr/sbin 22nodeny /usr/sbin
23 23
24include disable-common.inc 24include disable-common.inc
25include disable-devel.inc 25include disable-devel.inc
diff --git a/etc/profile-a-l/akregator.profile b/etc/profile-a-l/akregator.profile
index 38fcd2dc1..b2323547c 100644
--- a/etc/profile-a-l/akregator.profile
+++ b/etc/profile-a-l/akregator.profile
@@ -6,9 +6,9 @@ include akregator.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/akregatorrc 9nodeny ${HOME}/.config/akregatorrc
10noblacklist ${HOME}/.local/share/akregator 10nodeny ${HOME}/.local/share/akregator
11noblacklist ${HOME}/.local/share/kxmlgui5/akregator 11nodeny ${HOME}/.local/share/kxmlgui5/akregator
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -21,10 +21,10 @@ include disable-shell.inc
21mkfile ${HOME}/.config/akregatorrc 21mkfile ${HOME}/.config/akregatorrc
22mkdir ${HOME}/.local/share/akregator 22mkdir ${HOME}/.local/share/akregator
23mkdir ${HOME}/.local/share/kxmlgui5/akregator 23mkdir ${HOME}/.local/share/kxmlgui5/akregator
24whitelist ${HOME}/.config/akregatorrc 24allow ${HOME}/.config/akregatorrc
25whitelist ${HOME}/.local/share/akregator 25allow ${HOME}/.local/share/akregator
26whitelist ${HOME}/.local/share/kssl 26allow ${HOME}/.local/share/kssl
27whitelist ${HOME}/.local/share/kxmlgui5/akregator 27allow ${HOME}/.local/share/kxmlgui5/akregator
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
30 30
diff --git a/etc/profile-a-l/alacarte.profile b/etc/profile-a-l/alacarte.profile
index 4c6d68020..ca6c8d887 100644
--- a/etc/profile-a-l/alacarte.profile
+++ b/etc/profile-a-l/alacarte.profile
@@ -19,13 +19,13 @@ include disable-passwdmgr.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21# Whitelist your system icon directory,varies by distro 21# Whitelist your system icon directory,varies by distro
22whitelist /usr/share/alacarte 22allow /usr/share/alacarte
23whitelist /usr/share/app-info 23allow /usr/share/app-info
24whitelist /usr/share/desktop-directories 24allow /usr/share/desktop-directories
25whitelist /usr/share/icons 25allow /usr/share/icons
26whitelist /var/lib/app-info/icons 26allow /var/lib/app-info/icons
27whitelist /var/lib/flatpak/exports/share/applications 27allow /var/lib/flatpak/exports/share/applications
28whitelist /var/lib/flatpak/exports/share/icons 28allow /var/lib/flatpak/exports/share/icons
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/alienarena.profile b/etc/profile-a-l/alienarena.profile
index 81ee6bd46..220c3345d 100644
--- a/etc/profile-a-l/alienarena.profile
+++ b/etc/profile-a-l/alienarena.profile
@@ -6,7 +6,7 @@ include alienarena.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/cor-games 9nodeny ${HOME}/.local/share/cor-games
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.local/share/cor-games 20mkdir ${HOME}/.local/share/cor-games
21whitelist ${HOME}/.local/share/cor-games 21allow ${HOME}/.local/share/cor-games
22whitelist /usr/share/alienarena 22allow /usr/share/alienarena
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/alpine.profile b/etc/profile-a-l/alpine.profile
new file mode 100644
index 000000000..6fa3edfa1
--- /dev/null
+++ b/etc/profile-a-l/alpine.profile
@@ -0,0 +1,104 @@
1# Firejail profile for alpine
2# Description: Text-based email and newsgroups reader
3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations
6include alpine.local
7# Persistent global definitions
8include globals.local
9
10# Workaround for bug https://github.com/netblue30/firejail/issues/2747
11# firejail --private-bin=sh --include='${CFG}/allow-bin-sh.inc' --profile=alpine sh -c '(alpine)'
12
13nodeny /var/mail
14nodeny /var/spool/mail
15nodeny ${DOCUMENTS}
16nodeny ${HOME}/.addressbook
17nodeny ${HOME}/.alpine-smime
18nodeny ${HOME}/.mailcap
19nodeny ${HOME}/.mh_profile
20nodeny ${HOME}/.mime.types
21nodeny ${HOME}/.newsrc
22nodeny ${HOME}/.pine-crash
23nodeny ${HOME}/.pine-debug1
24nodeny ${HOME}/.pine-debug2
25nodeny ${HOME}/.pine-debug3
26nodeny ${HOME}/.pine-debug4
27nodeny ${HOME}/.pine-interrupted-mail
28nodeny ${HOME}/.pinerc
29nodeny ${HOME}/.pinercex
30nodeny ${HOME}/.signature
31nodeny ${HOME}/mail
32
33deny /tmp/.X11-unix
34deny ${RUNUSER}/wayland-*
35
36include disable-common.inc
37include disable-devel.inc
38include disable-exec.inc
39include disable-interpreters.inc
40include disable-passwdmgr.inc
41include disable-programs.inc
42include disable-shell.inc
43include disable-xdg.inc
44
45#whitelist ${DOCUMENTS}
46#whitelist ${DOWNLOADS}
47#whitelist ${HOME}/.addressbook
48#whitelist ${HOME}/.alpine-smime
49#whitelist ${HOME}/.mailcap
50#whitelist ${HOME}/.mh_profile
51#whitelist ${HOME}/.mime.types
52#whitelist ${HOME}/.newsrc
53#whitelist ${HOME}/.pine-crash
54#whitelist ${HOME}/.pine-interrupted-mail
55#whitelist ${HOME}/.pinerc
56#whitelist ${HOME}/.pinercex
57#whitelist ${HOME}/.pine-debug1
58#whitelist ${HOME}/.pine-debug2
59#whitelist ${HOME}/.pine-debug3
60#whitelist ${HOME}/.pine-debug4
61#whitelist ${HOME}/.signature
62#whitelist ${HOME}/mail
63allow /var/mail
64allow /var/spool/mail
65#include whitelist-common.inc
66include whitelist-runuser-common.inc
67include whitelist-usr-share-common.inc
68include whitelist-var-common.inc
69
70apparmor
71caps.drop all
72ipc-namespace
73machine-id
74netfilter
75no3d
76nodvd
77nogroups
78noinput
79nonewprivs
80noroot
81nosound
82notv
83nou2f
84novideo
85protocol unix,inet,inet6
86seccomp
87seccomp.block-secondary
88shell none
89tracelog
90
91disable-mnt
92private-bin alpine
93private-cache
94private-dev
95private-etc alternatives,c-client.cf,ca-certificates,crypto-policies,host.conf,hostname,hosts,krb5.keytab,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,mailcap,mime.types,nsswitch.conf,passwd,pine.conf,pinerc.fixed,pki,protocols,resolv.conf,rpc,services,ssl,terminfo,xdg
96private-tmp
97writable-run-user
98writable-var
99
100dbus-user none
101dbus-system none
102
103memory-deny-write-execute
104read-only ${HOME}/.signature
diff --git a/etc/profile-a-l/alpinef.profile b/etc/profile-a-l/alpinef.profile
new file mode 100644
index 000000000..97b97fe5f
--- /dev/null
+++ b/etc/profile-a-l/alpinef.profile
@@ -0,0 +1,14 @@
1# Firejail profile for alpinef
2# Description: Text-based email and newsgroups reader using function keys
3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations
6include alpinef.local
7# Persistent global definitions
8# added by included profile
9#include globals.local
10
11private-bin alpinef
12
13# Redirect
14include alpine.profile
diff --git a/etc/profile-a-l/amarok.profile b/etc/profile-a-l/amarok.profile
index a7caddc4c..03aba36e4 100644
--- a/etc/profile-a-l/amarok.profile
+++ b/etc/profile-a-l/amarok.profile
@@ -6,7 +6,7 @@ include amarok.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/amule.profile b/etc/profile-a-l/amule.profile
index e3c4164ee..00039a7e9 100644
--- a/etc/profile-a-l/amule.profile
+++ b/etc/profile-a-l/amule.profile
@@ -6,7 +6,7 @@ include amule.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.aMule 9nodeny ${HOME}/.aMule
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,8 +16,8 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18mkdir ${HOME}/.aMule 18mkdir ${HOME}/.aMule
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.aMule 20allow ${HOME}/.aMule
21include whitelist-common.inc 21include whitelist-common.inc
22 22
23caps.drop all 23caps.drop all
diff --git a/etc/profile-a-l/android-studio.profile b/etc/profile-a-l/android-studio.profile
index 5a21744cf..5bf6ed773 100644
--- a/etc/profile-a-l/android-studio.profile
+++ b/etc/profile-a-l/android-studio.profile
@@ -5,13 +5,13 @@ include android-studio.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/Google 8nodeny ${HOME}/.config/Google
9noblacklist ${HOME}/.AndroidStudio* 9nodeny ${HOME}/.AndroidStudio*
10noblacklist ${HOME}/.android 10nodeny ${HOME}/.android
11noblacklist ${HOME}/.jack-server 11nodeny ${HOME}/.jack-server
12noblacklist ${HOME}/.jack-settings 12nodeny ${HOME}/.jack-settings
13noblacklist ${HOME}/.local/share/JetBrains 13nodeny ${HOME}/.local/share/JetBrains
14noblacklist ${HOME}/.tooling 14nodeny ${HOME}/.tooling
15 15
16# Allows files commonly used by IDEs 16# Allows files commonly used by IDEs
17include allow-common-devel.inc 17include allow-common-devel.inc
diff --git a/etc/profile-a-l/anki.profile b/etc/profile-a-l/anki.profile
index ef60e91c2..c1aa18ff3 100644
--- a/etc/profile-a-l/anki.profile
+++ b/etc/profile-a-l/anki.profile
@@ -6,8 +6,8 @@ include anki.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${HOME}/.local/share/Anki2 10nodeny ${HOME}/.local/share/Anki2
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
@@ -23,8 +23,8 @@ include disable-shell.inc
23include disable-xdg.inc 23include disable-xdg.inc
24 24
25mkdir ${HOME}/.local/share/Anki2 25mkdir ${HOME}/.local/share/Anki2
26whitelist ${DOCUMENTS} 26allow ${DOCUMENTS}
27whitelist ${HOME}/.local/share/Anki2 27allow ${HOME}/.local/share/Anki2
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
30 30
@@ -46,7 +46,6 @@ protocol unix,inet,inet6
46# QtWebengine needs chroot to set up its own sandbox 46# QtWebengine needs chroot to set up its own sandbox
47seccomp !chroot 47seccomp !chroot
48shell none 48shell none
49tracelog
50 49
51disable-mnt 50disable-mnt
52private-bin anki,python* 51private-bin anki,python*
diff --git a/etc/profile-a-l/anydesk.profile b/etc/profile-a-l/anydesk.profile
index fdaf10259..cb30ed8da 100644
--- a/etc/profile-a-l/anydesk.profile
+++ b/etc/profile-a-l/anydesk.profile
@@ -5,7 +5,7 @@ include anydesk.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.anydesk 8nodeny ${HOME}/.anydesk
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16 16
17mkdir ${HOME}/.anydesk 17mkdir ${HOME}/.anydesk
18whitelist ${HOME}/.anydesk 18allow ${HOME}/.anydesk
19include whitelist-common.inc 19include whitelist-common.inc
20 20
21caps.drop all 21caps.drop all
diff --git a/etc/profile-a-l/aosp.profile b/etc/profile-a-l/aosp.profile
index e7b09283e..d647a4657 100644
--- a/etc/profile-a-l/aosp.profile
+++ b/etc/profile-a-l/aosp.profile
@@ -5,13 +5,13 @@ include aosp.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.android 8nodeny ${HOME}/.android
9noblacklist ${HOME}/.bash_history 9nodeny ${HOME}/.bash_history
10noblacklist ${HOME}/.jack-server 10nodeny ${HOME}/.jack-server
11noblacklist ${HOME}/.jack-settings 11nodeny ${HOME}/.jack-settings
12noblacklist ${HOME}/.repo_.gitconfig.json 12nodeny ${HOME}/.repo_.gitconfig.json
13noblacklist ${HOME}/.repoconfig 13nodeny ${HOME}/.repoconfig
14noblacklist ${HOME}/.tooling 14nodeny ${HOME}/.tooling
15 15
16# Allows files commonly used by IDEs 16# Allows files commonly used by IDEs
17include allow-common-devel.inc 17include allow-common-devel.inc
diff --git a/etc/profile-a-l/apostrophe.profile b/etc/profile-a-l/apostrophe.profile
index 54abdb234..020ae2812 100644
--- a/etc/profile-a-l/apostrophe.profile
+++ b/etc/profile-a-l/apostrophe.profile
@@ -6,9 +6,9 @@ include apostrophe.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.texlive20* 9nodeny ${HOME}/.texlive20*
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12 12
13# Allow lua (blacklisted by disable-interpreters.inc) 13# Allow lua (blacklisted by disable-interpreters.inc)
14include allow-lua.inc 14include allow-lua.inc
@@ -31,11 +31,12 @@ include disable-programs.inc
31include disable-shell.inc 31include disable-shell.inc
32include disable-xdg.inc 32include disable-xdg.inc
33 33
34whitelist /usr/share/apostrophe 34allow /usr/libexec/webkit2gtk-4.0
35whitelist /usr/share/texlive 35allow /usr/share/apostrophe
36whitelist /usr/share/texmf 36allow /usr/share/texlive
37whitelist /usr/share/pandoc-* 37allow /usr/share/texmf
38whitelist /usr/share/perl5 38allow /usr/share/pandoc-*
39allow /usr/share/perl5
39include whitelist-runuser-common.inc 40include whitelist-runuser-common.inc
40include whitelist-usr-share-common.inc 41include whitelist-usr-share-common.inc
41include whitelist-var-common.inc 42include whitelist-var-common.inc
diff --git a/etc/profile-a-l/arch-audit.profile b/etc/profile-a-l/arch-audit.profile
index accabb6f5..8c71dd574 100644
--- a/etc/profile-a-l/arch-audit.profile
+++ b/etc/profile-a-l/arch-audit.profile
@@ -7,7 +7,7 @@ include arch-audit.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist /var/lib/pacman 10nodeny /var/lib/pacman
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-programs.inc
18include disable-shell.inc 18include disable-shell.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21whitelist /usr/share/arch-audit 21allow /usr/share/arch-audit
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23 23
24apparmor 24apparmor
diff --git a/etc/profile-a-l/archaudit-report.profile b/etc/profile-a-l/archaudit-report.profile
index 19c37f90e..0915ede33 100644
--- a/etc/profile-a-l/archaudit-report.profile
+++ b/etc/profile-a-l/archaudit-report.profile
@@ -6,7 +6,7 @@ include archaudit-report.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /var/lib/pacman 9nodeny /var/lib/pacman
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/archiver-common.profile b/etc/profile-a-l/archiver-common.profile
index 1fab4606b..5b859ceb1 100644
--- a/etc/profile-a-l/archiver-common.profile
+++ b/etc/profile-a-l/archiver-common.profile
@@ -4,7 +4,7 @@ include archiver-common.local
4 4
5# common profile for archiver/compression tools 5# common profile for archiver/compression tools
6 6
7blacklist ${RUNUSER} 7deny ${RUNUSER}
8 8
9# Comment/uncomment the relevant include file(s) in your archiver-common.local 9# Comment/uncomment the relevant include file(s) in your archiver-common.local
10# to (un)restrict file access for **all** archivers. Another option is to do this **per archiver** 10# to (un)restrict file access for **all** archivers. Another option is to do this **per archiver**
diff --git a/etc/profile-a-l/ardour5.profile b/etc/profile-a-l/ardour5.profile
index 84b1d6c18..960948afc 100644
--- a/etc/profile-a-l/ardour5.profile
+++ b/etc/profile-a-l/ardour5.profile
@@ -5,12 +5,12 @@ include ardour5.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/ardour4 8nodeny ${HOME}/.config/ardour4
9noblacklist ${HOME}/.config/ardour5 9nodeny ${HOME}/.config/ardour5
10noblacklist ${HOME}/.lv2 10nodeny ${HOME}/.lv2
11noblacklist ${HOME}/.vst 11nodeny ${HOME}/.vst
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13noblacklist ${MUSIC} 13nodeny ${MUSIC}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/arduino.profile b/etc/profile-a-l/arduino.profile
index fd1ca9a09..88f14fbfe 100644
--- a/etc/profile-a-l/arduino.profile
+++ b/etc/profile-a-l/arduino.profile
@@ -6,9 +6,9 @@ include arduino.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.arduino15 9nodeny ${HOME}/.arduino15
10noblacklist ${HOME}/Arduino 10nodeny ${HOME}/Arduino
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13# Allow java (blacklisted by disable-devel.inc) 13# Allow java (blacklisted by disable-devel.inc)
14include allow-java.inc 14include allow-java.inc
diff --git a/etc/profile-a-l/aria2c.profile b/etc/profile-a-l/aria2c.profile
index 22b8ecd65..be56011f0 100644
--- a/etc/profile-a-l/aria2c.profile
+++ b/etc/profile-a-l/aria2c.profile
@@ -6,12 +6,12 @@ include aria2c.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.aria2 9nodeny ${HOME}/.aria2
10noblacklist ${HOME}/.config/aria2 10nodeny ${HOME}/.config/aria2
11noblacklist ${HOME}/.netrc 11nodeny ${HOME}/.netrc
12 12
13blacklist /tmp/.X11-unix 13deny /tmp/.X11-unix
14blacklist ${RUNUSER}/wayland-* 14deny ${RUNUSER}/wayland-*
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/ark.profile b/etc/profile-a-l/ark.profile
index a63dd8f5f..031c57080 100644
--- a/etc/profile-a-l/ark.profile
+++ b/etc/profile-a-l/ark.profile
@@ -6,8 +6,8 @@ include ark.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/arkrc 9nodeny ${HOME}/.config/arkrc
10noblacklist ${HOME}/.local/share/kxmlgui5/ark 10nodeny ${HOME}/.local/share/kxmlgui5/ark
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-interpreters.inc
16include disable-passwdmgr.inc 16include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18 18
19whitelist /usr/share/ark 19allow /usr/share/ark
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
22 22
diff --git a/etc/profile-a-l/arm.profile b/etc/profile-a-l/arm.profile
index 2c8b630ce..9ed8076be 100644
--- a/etc/profile-a-l/arm.profile
+++ b/etc/profile-a-l/arm.profile
@@ -6,7 +6,7 @@ include arm.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.arm 9nodeny ${HOME}/.arm
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -20,7 +20,7 @@ include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22mkdir ${HOME}/.arm 22mkdir ${HOME}/.arm
23whitelist ${HOME}/.arm 23allow ${HOME}/.arm
24include whitelist-common.inc 24include whitelist-common.inc
25 25
26caps.drop all 26caps.drop all
diff --git a/etc/profile-a-l/artha.profile b/etc/profile-a-l/artha.profile
index fab72b7d3..7cfac4915 100644
--- a/etc/profile-a-l/artha.profile
+++ b/etc/profile-a-l/artha.profile
@@ -6,12 +6,12 @@ include artha.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/artha.conf 9nodeny ${HOME}/.config/artha.conf
10noblacklist ${HOME}/.config/artha.log 10nodeny ${HOME}/.config/artha.log
11noblacklist ${HOME}/.config/enchant 11nodeny ${HOME}/.config/enchant
12 12
13blacklist /tmp/.X11-unix 13deny /tmp/.X11-unix
14blacklist ${RUNUSER}/wayland-* 14deny ${RUNUSER}/wayland-*
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -28,8 +28,8 @@ include disable-xdg.inc
28#whitelist ${HOME}/.config/artha.conf 28#whitelist ${HOME}/.config/artha.conf
29#whitelist ${HOME}/.config/artha.log 29#whitelist ${HOME}/.config/artha.log
30#whitelist ${HOME}/.config/enchant 30#whitelist ${HOME}/.config/enchant
31whitelist /usr/share/artha 31allow /usr/share/artha
32whitelist /usr/share/wordnet 32allow /usr/share/wordnet
33#include whitelist-common.inc 33#include whitelist-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
diff --git a/etc/profile-a-l/assogiate.profile b/etc/profile-a-l/assogiate.profile
index 977fe30a4..f2251c210 100644
--- a/etc/profile-a-l/assogiate.profile
+++ b/etc/profile-a-l/assogiate.profile
@@ -6,7 +6,7 @@ include assogiate.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist ${PICTURES} 20allow ${PICTURES}
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
diff --git a/etc/profile-a-l/asunder.profile b/etc/profile-a-l/asunder.profile
index c97fd691a..e65072266 100644
--- a/etc/profile-a-l/asunder.profile
+++ b/etc/profile-a-l/asunder.profile
@@ -6,11 +6,11 @@ include asunder.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/asunder 9nodeny ${HOME}/.config/asunder
10noblacklist ${HOME}/.asunder_album_genre 10nodeny ${HOME}/.asunder_album_genre
11noblacklist ${HOME}/.asunder_album_title 11nodeny ${HOME}/.asunder_album_title
12noblacklist ${HOME}/.asunder_album_artist 12nodeny ${HOME}/.asunder_album_artist
13noblacklist ${MUSIC} 13nodeny ${MUSIC}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/atom.profile b/etc/profile-a-l/atom.profile
index 5f237ac59..ea3038537 100644
--- a/etc/profile-a-l/atom.profile
+++ b/etc/profile-a-l/atom.profile
@@ -18,8 +18,8 @@ ignore include whitelist-var-common.inc
18ignore apparmor 18ignore apparmor
19ignore disable-mnt 19ignore disable-mnt
20 20
21noblacklist ${HOME}/.atom 21nodeny ${HOME}/.atom
22noblacklist ${HOME}/.config/Atom 22nodeny ${HOME}/.config/Atom
23 23
24# Allows files commonly used by IDEs 24# Allows files commonly used by IDEs
25include allow-common-devel.inc 25include allow-common-devel.inc
diff --git a/etc/profile-a-l/atril.profile b/etc/profile-a-l/atril.profile
index 1c3ed66ff..8ae8617cf 100644
--- a/etc/profile-a-l/atril.profile
+++ b/etc/profile-a-l/atril.profile
@@ -6,9 +6,9 @@ include atril.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/atril 9nodeny ${HOME}/.cache/atril
10noblacklist ${HOME}/.config/atril 10nodeny ${HOME}/.config/atril
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13#noblacklist ${HOME}/.local/share 13#noblacklist ${HOME}/.local/share
14# it seems to use only ${HOME}/.local/share/webkitgtk 14# it seems to use only ${HOME}/.local/share/webkitgtk
diff --git a/etc/profile-a-l/audacious.profile b/etc/profile-a-l/audacious.profile
index f9f209786..53baf0a2a 100644
--- a/etc/profile-a-l/audacious.profile
+++ b/etc/profile-a-l/audacious.profile
@@ -6,9 +6,9 @@ include audacious.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Audaciousrc 9nodeny ${HOME}/.config/Audaciousrc
10noblacklist ${HOME}/.config/audacious 10nodeny ${HOME}/.config/audacious
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/audacity.profile b/etc/profile-a-l/audacity.profile
index a2de8436a..c244846e1 100644
--- a/etc/profile-a-l/audacity.profile
+++ b/etc/profile-a-l/audacity.profile
@@ -6,9 +6,9 @@ include audacity.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.audacity-data 9nodeny ${HOME}/.audacity-data
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/audio-recorder.profile b/etc/profile-a-l/audio-recorder.profile
index 2c7fdc812..534792cc6 100644
--- a/etc/profile-a-l/audio-recorder.profile
+++ b/etc/profile-a-l/audio-recorder.profile
@@ -7,7 +7,7 @@ include audio-recorder.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -17,10 +17,10 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist ${MUSIC} 20allow ${MUSIC}
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22whitelist /usr/share/audio-recorder 22allow /usr/share/audio-recorder
23whitelist /usr/share/gstreamer-1.0 23allow /usr/share/gstreamer-1.0
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-a-l/authenticator-rs.profile b/etc/profile-a-l/authenticator-rs.profile
index 2ebe35dd5..0d6eb6a21 100644
--- a/etc/profile-a-l/authenticator-rs.profile
+++ b/etc/profile-a-l/authenticator-rs.profile
@@ -6,7 +6,7 @@ include authenticator-rs.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/authenticator-rs 9nodeny ${HOME}/.local/share/authenticator-rs
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,9 +18,9 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.local/share/authenticator-rs 20mkdir ${HOME}/.local/share/authenticator-rs
21whitelist ${HOME}/.local/share/authenticator-rs 21allow ${HOME}/.local/share/authenticator-rs
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist /usr/share/uk.co.grumlimited.authenticator-rs 23allow /usr/share/uk.co.grumlimited.authenticator-rs
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/authenticator.profile b/etc/profile-a-l/authenticator.profile
index 42d9cd56a..55d967e3e 100644
--- a/etc/profile-a-l/authenticator.profile
+++ b/etc/profile-a-l/authenticator.profile
@@ -6,8 +6,8 @@ include authenticator.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Authenticator 9nodeny ${HOME}/.cache/Authenticator
10noblacklist ${HOME}/.config/Authenticator 10nodeny ${HOME}/.config/Authenticator
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13#include allow-python2.inc 13#include allow-python2.inc
diff --git a/etc/profile-a-l/autokey-common.profile b/etc/profile-a-l/autokey-common.profile
index 891928e5a..a5b3b22f6 100644
--- a/etc/profile-a-l/autokey-common.profile
+++ b/etc/profile-a-l/autokey-common.profile
@@ -7,8 +7,8 @@ include autokey-common.local
7# added by caller profile 7# added by caller profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.config/autokey 10nodeny ${HOME}/.config/autokey
11noblacklist ${HOME}/.local/share/autokey 11nodeny ${HOME}/.local/share/autokey
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
diff --git a/etc/profile-a-l/avidemux.profile b/etc/profile-a-l/avidemux.profile
index 1ecc03da1..0feb05d75 100644
--- a/etc/profile-a-l/avidemux.profile
+++ b/etc/profile-a-l/avidemux.profile
@@ -5,9 +5,9 @@ include avidemux.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.avidemux6 8nodeny ${HOME}/.avidemux6
9noblacklist ${HOME}/.config/avidemux3_qt5rc 9nodeny ${HOME}/.config/avidemux3_qt5rc
10noblacklist ${VIDEOS} 10nodeny ${VIDEOS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-xdg.inc
20 20
21mkdir ${HOME}/.avidemux6 21mkdir ${HOME}/.avidemux6
22mkdir ${HOME}/.config/avidemux3_qt5rc 22mkdir ${HOME}/.config/avidemux3_qt5rc
23whitelist ${HOME}/.avidemux6 23allow ${HOME}/.avidemux6
24whitelist ${HOME}/.config/avidemux3_qt5rc 24allow ${HOME}/.config/avidemux3_qt5rc
25whitelist ${VIDEOS} 25allow ${VIDEOS}
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/aweather.profile b/etc/profile-a-l/aweather.profile
index a57ad4014..abe9fdb24 100644
--- a/etc/profile-a-l/aweather.profile
+++ b/etc/profile-a-l/aweather.profile
@@ -6,7 +6,7 @@ include aweather.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/aweather 9nodeny ${HOME}/.config/aweather
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-programs.inc
16include disable-shell.inc 16include disable-shell.inc
17 17
18mkdir ${HOME}/.config/aweather 18mkdir ${HOME}/.config/aweather
19whitelist ${HOME}/.config/aweather 19allow ${HOME}/.config/aweather
20include whitelist-common.inc 20include whitelist-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
22 22
diff --git a/etc/profile-a-l/awesome.profile b/etc/profile-a-l/awesome.profile
index 5d1bf5071..58f4f5e96 100644
--- a/etc/profile-a-l/awesome.profile
+++ b/etc/profile-a-l/awesome.profile
@@ -7,7 +7,7 @@ include awesome.local
7include globals.local 7include globals.local
8 8
9# all applications started in awesome will run in this profile 9# all applications started in awesome will run in this profile
10noblacklist ${HOME}/.config/awesome 10nodeny ${HOME}/.config/awesome
11include disable-common.inc 11include disable-common.inc
12 12
13caps.drop all 13caps.drop all
diff --git a/etc/profile-a-l/ballbuster.profile b/etc/profile-a-l/ballbuster.profile
index 3952921a3..46bb0b44e 100644
--- a/etc/profile-a-l/ballbuster.profile
+++ b/etc/profile-a-l/ballbuster.profile
@@ -6,7 +6,7 @@ include ballbuster.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.ballbuster.hs 9nodeny ${HOME}/.ballbuster.hs
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkfile ${HOME}/.ballbuster.hs 20mkfile ${HOME}/.ballbuster.hs
21whitelist ${HOME}/.ballbuster.hs 21allow ${HOME}/.ballbuster.hs
22whitelist /usr/share/ballbuster 22allow /usr/share/ballbuster
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/baloo_file.profile b/etc/profile-a-l/baloo_file.profile
index fe86d9b80..2b10883f7 100644
--- a/etc/profile-a-l/baloo_file.profile
+++ b/etc/profile-a-l/baloo_file.profile
@@ -12,12 +12,12 @@ include globals.local
12# read-write ${HOME}/.local/share/baloo 12# read-write ${HOME}/.local/share/baloo
13# ignore read-write 13# ignore read-write
14 14
15noblacklist ${HOME}/.config/baloofilerc 15nodeny ${HOME}/.config/baloofilerc
16noblacklist ${HOME}/.kde/share/config/baloofilerc 16nodeny ${HOME}/.kde/share/config/baloofilerc
17noblacklist ${HOME}/.kde/share/config/baloorc 17nodeny ${HOME}/.kde/share/config/baloorc
18noblacklist ${HOME}/.kde4/share/config/baloofilerc 18nodeny ${HOME}/.kde4/share/config/baloofilerc
19noblacklist ${HOME}/.kde4/share/config/baloorc 19nodeny ${HOME}/.kde4/share/config/baloorc
20noblacklist ${HOME}/.local/share/baloo 20nodeny ${HOME}/.local/share/baloo
21 21
22include disable-common.inc 22include disable-common.inc
23include disable-devel.inc 23include disable-devel.inc
diff --git a/etc/profile-a-l/balsa.profile b/etc/profile-a-l/balsa.profile
index 8c69652c5..1e74443aa 100644
--- a/etc/profile-a-l/balsa.profile
+++ b/etc/profile-a-l/balsa.profile
@@ -6,13 +6,13 @@ include balsa.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.balsa 9nodeny ${HOME}/.balsa
10noblacklist ${HOME}/.gnupg 10nodeny ${HOME}/.gnupg
11noblacklist ${HOME}/.mozilla 11nodeny ${HOME}/.mozilla
12noblacklist ${HOME}/.signature 12nodeny ${HOME}/.signature
13noblacklist ${HOME}/mail 13nodeny ${HOME}/mail
14noblacklist /var/mail 14nodeny /var/mail
15noblacklist /var/spool/mail 15nodeny /var/spool/mail
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
@@ -27,17 +27,17 @@ mkdir ${HOME}/.balsa
27mkdir ${HOME}/.gnupg 27mkdir ${HOME}/.gnupg
28mkfile ${HOME}/.signature 28mkfile ${HOME}/.signature
29mkdir ${HOME}/mail 29mkdir ${HOME}/mail
30whitelist ${HOME}/.balsa 30allow ${HOME}/.balsa
31whitelist ${HOME}/.gnupg 31allow ${HOME}/.gnupg
32whitelist ${HOME}/.mozilla/firefox/profiles.ini 32allow ${HOME}/.mozilla/firefox/profiles.ini
33whitelist ${HOME}/.signature 33allow ${HOME}/.signature
34whitelist ${HOME}/mail 34allow ${HOME}/mail
35whitelist ${RUNUSER}/gnupg 35allow ${RUNUSER}/gnupg
36whitelist /usr/share/balsa 36allow /usr/share/balsa
37whitelist /usr/share/gnupg 37allow /usr/share/gnupg
38whitelist /usr/share/gnupg2 38allow /usr/share/gnupg2
39whitelist /var/mail 39allow /var/mail
40whitelist /var/spool/mail 40allow /var/spool/mail
41include whitelist-common.inc 41include whitelist-common.inc
42include whitelist-runuser-common.inc 42include whitelist-runuser-common.inc
43include whitelist-usr-share-common.inc 43include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/barrier.profile b/etc/profile-a-l/barrier.profile
index 7b50e9199..fcea9b3ba 100644
--- a/etc/profile-a-l/barrier.profile
+++ b/etc/profile-a-l/barrier.profile
@@ -6,9 +6,9 @@ include barrier.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Debauchee/Barrier.conf 9nodeny ${HOME}/.config/Debauchee/Barrier.conf
10noblacklist ${HOME}/.local/share/barrier 10nodeny ${HOME}/.local/share/barrier
11noblacklist ${PATH}/openssl 11nodeny ${PATH}/openssl
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/basilisk.profile b/etc/profile-a-l/basilisk.profile
index 8dc3847a0..547c67fc8 100644
--- a/etc/profile-a-l/basilisk.profile
+++ b/etc/profile-a-l/basilisk.profile
@@ -5,13 +5,13 @@ include basilisk.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/moonchild productions/basilisk 8nodeny ${HOME}/.cache/moonchild productions/basilisk
9noblacklist ${HOME}/.moonchild productions/basilisk 9nodeny ${HOME}/.moonchild productions/basilisk
10 10
11mkdir ${HOME}/.cache/moonchild productions/basilisk 11mkdir ${HOME}/.cache/moonchild productions/basilisk
12mkdir ${HOME}/.moonchild productions 12mkdir ${HOME}/.moonchild productions
13whitelist ${HOME}/.cache/moonchild productions/basilisk 13allow ${HOME}/.cache/moonchild productions/basilisk
14whitelist ${HOME}/.moonchild productions 14allow ${HOME}/.moonchild productions
15 15
16# Basilisk can use the full firejail seccomp filter (unlike firefox >= 60) 16# Basilisk can use the full firejail seccomp filter (unlike firefox >= 60)
17seccomp 17seccomp
diff --git a/etc/profile-a-l/bcompare.profile b/etc/profile-a-l/bcompare.profile
index 3ecaea7fe..a1d2b1e73 100644
--- a/etc/profile-a-l/bcompare.profile
+++ b/etc/profile-a-l/bcompare.profile
@@ -7,10 +7,10 @@ include bcompare.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.config/bcompare 10nodeny ${HOME}/.config/bcompare
11# In case the user decides to include disable-programs.inc, still allow 11# In case the user decides to include disable-programs.inc, still allow
12# KDE's Gwenview to view images via right click -> Open With -> Associated Application 12# KDE's Gwenview to view images via right click -> Open With -> Associated Application
13noblacklist ${HOME}/.config/gwenviewrc 13nodeny ${HOME}/.config/gwenviewrc
14 14
15# Add the next line to your bcompare.local if you don't need to compare files in disable-common.inc. 15# Add the next line to your bcompare.local if you don't need to compare files in disable-common.inc.
16#include disable-common.inc 16#include disable-common.inc
diff --git a/etc/profile-a-l/beaker.profile b/etc/profile-a-l/beaker.profile
index f3a9568bd..588f460a8 100644
--- a/etc/profile-a-l/beaker.profile
+++ b/etc/profile-a-l/beaker.profile
@@ -19,10 +19,10 @@ ignore private-cache
19ignore private-dev 19ignore private-dev
20ignore private-tmp 20ignore private-tmp
21 21
22noblacklist ${HOME}/.config/Beaker Browser 22nodeny ${HOME}/.config/Beaker Browser
23 23
24mkdir ${HOME}/.config/Beaker Browser 24mkdir ${HOME}/.config/Beaker Browser
25whitelist ${HOME}/.config/Beaker Browser 25allow ${HOME}/.config/Beaker Browser
26 26
27# Redirect 27# Redirect
28include electron.profile 28include electron.profile
diff --git a/etc/profile-a-l/bibletime.profile b/etc/profile-a-l/bibletime.profile
index c7a82afbd..717d7258d 100644
--- a/etc/profile-a-l/bibletime.profile
+++ b/etc/profile-a-l/bibletime.profile
@@ -6,11 +6,11 @@ include bibletime.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.bibletime 9nodeny ${HOME}/.bibletime
10noblacklist ${HOME}/.sword 10nodeny ${HOME}/.sword
11noblacklist ${HOME}/.local/share/bibletime 11nodeny ${HOME}/.local/share/bibletime
12 12
13blacklist ${HOME}/.bashrc 13deny ${HOME}/.bashrc
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -22,12 +22,12 @@ include disable-programs.inc
22mkdir ${HOME}/.bibletime 22mkdir ${HOME}/.bibletime
23mkdir ${HOME}/.sword 23mkdir ${HOME}/.sword
24mkdir ${HOME}/.local/share/bibletime 24mkdir ${HOME}/.local/share/bibletime
25whitelist ${HOME}/.bibletime 25allow ${HOME}/.bibletime
26whitelist ${HOME}/.sword 26allow ${HOME}/.sword
27whitelist ${HOME}/.local/share/bibletime 27allow ${HOME}/.local/share/bibletime
28whitelist /usr/share/bibletime 28allow /usr/share/bibletime
29whitelist /usr/share/doc/bibletime 29allow /usr/share/doc/bibletime
30whitelist /usr/share/sword 30allow /usr/share/sword
31include whitelist-common.inc 31include whitelist-common.inc
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
33include whitelist-var-common.inc 33include whitelist-var-common.inc
diff --git a/etc/profile-a-l/bijiben.profile b/etc/profile-a-l/bijiben.profile
index 721a6c082..b02fcc3e0 100644
--- a/etc/profile-a-l/bijiben.profile
+++ b/etc/profile-a-l/bijiben.profile
@@ -6,7 +6,7 @@ include bijiben.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/bijiben 9nodeny ${HOME}/.local/share/bijiben
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,11 +18,12 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.local/share/bijiben 20mkdir ${HOME}/.local/share/bijiben
21whitelist ${HOME}/.local/share/bijiben 21allow ${HOME}/.local/share/bijiben
22whitelist ${HOME}/.cache/tracker 22allow ${HOME}/.cache/tracker
23whitelist /usr/share/bijiben 23allow /usr/libexec/webkit2gtk-4.0
24whitelist /usr/share/tracker 24allow /usr/share/bijiben
25whitelist /usr/share/tracker3 25allow /usr/share/tracker
26allow /usr/share/tracker3
26include whitelist-common.inc 27include whitelist-common.inc
27include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/bitcoin-qt.profile b/etc/profile-a-l/bitcoin-qt.profile
index 932db9b73..c4ec0f820 100644
--- a/etc/profile-a-l/bitcoin-qt.profile
+++ b/etc/profile-a-l/bitcoin-qt.profile
@@ -6,8 +6,8 @@ include bitcoin-qt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.bitcoin 9nodeny ${HOME}/.bitcoin
10noblacklist ${HOME}/.config/Bitcoin 10nodeny ${HOME}/.config/Bitcoin
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-shell.inc
19 19
20mkdir ${HOME}/.bitcoin 20mkdir ${HOME}/.bitcoin
21mkdir ${HOME}/.config/Bitcoin 21mkdir ${HOME}/.config/Bitcoin
22whitelist ${HOME}/.bitcoin 22allow ${HOME}/.bitcoin
23whitelist ${HOME}/.config/Bitcoin 23allow ${HOME}/.config/Bitcoin
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-a-l/bitlbee.profile b/etc/profile-a-l/bitlbee.profile
index dd7651979..0f000b26b 100644
--- a/etc/profile-a-l/bitlbee.profile
+++ b/etc/profile-a-l/bitlbee.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist /sbin 11nodeny /sbin
12noblacklist /usr/sbin 12nodeny /usr/sbin
13# noblacklist /var/log 13# noblacklist /var/log
14 14
15include disable-common.inc 15include disable-common.inc
diff --git a/etc/profile-a-l/bitwarden.profile b/etc/profile-a-l/bitwarden.profile
index bef25276d..4b292d72a 100644
--- a/etc/profile-a-l/bitwarden.profile
+++ b/etc/profile-a-l/bitwarden.profile
@@ -6,54 +6,25 @@ include bitwarden.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9# Disabled until someone reported positive feedback
10ignore include whitelist-usr-share-common.inc
11
9ignore noexec /tmp 12ignore noexec /tmp
10 13
11noblacklist ${HOME}/.config/Bitwarden 14nodeny ${HOME}/.config/Bitwarden
12 15
13include disable-common.inc
14include disable-devel.inc
15include disable-exec.inc
16include disable-interpreters.inc
17include disable-passwdmgr.inc
18include disable-programs.inc
19include disable-shell.inc 16include disable-shell.inc
20include disable-xdg.inc
21 17
22mkdir ${HOME}/.config/Bitwarden 18mkdir ${HOME}/.config/Bitwarden
23whitelist ${HOME}/.config/Bitwarden 19allow ${HOME}/.config/Bitwarden
24whitelist ${DOWNLOADS}
25include whitelist-common.inc
26include whitelist-var-common.inc
27 20
28apparmor
29caps.drop all
30machine-id 21machine-id
31netfilter
32no3d 22no3d
33nodvd
34nogroups
35noinput
36nonewprivs
37noroot
38nosound 23nosound
39notv 24
40nou2f
41novideo
42protocol unix,inet,inet6,netlink
43seccomp !chroot
44shell none
45#tracelog - breaks on Arch
46
47private-bin bitwarden
48private-cache
49?HAS_APPIMAGE: ignore private-dev 25?HAS_APPIMAGE: ignore private-dev
50private-dev
51private-etc alternatives,ca-certificates,crypto-policies,fonts,hosts,nsswitch.conf,pki,resolv.conf,ssl 26private-etc alternatives,ca-certificates,crypto-policies,fonts,hosts,nsswitch.conf,pki,resolv.conf,ssl
52private-opt Bitwarden 27private-opt Bitwarden
53private-tmp
54
55# breaks appindicator (tray) functionality
56# dbus-user none
57# dbus-system none
58 28
59#memory-deny-write-execute - breaks on Arch (see issue #1803) 29# Redirect
30include electron.profile
diff --git a/etc/profile-a-l/blackbox.profile b/etc/profile-a-l/blackbox.profile
index 233f9a96f..616ad6801 100644
--- a/etc/profile-a-l/blackbox.profile
+++ b/etc/profile-a-l/blackbox.profile
@@ -7,7 +7,7 @@ include blackbox.local
7include globals.local 7include globals.local
8 8
9# all applications started in blackbox will run in this profile 9# all applications started in blackbox will run in this profile
10noblacklist ${HOME}/.blackbox 10nodeny ${HOME}/.blackbox
11include disable-common.inc 11include disable-common.inc
12 12
13caps.drop all 13caps.drop all
diff --git a/etc/profile-a-l/blender.profile b/etc/profile-a-l/blender.profile
index 701ae431e..8d0b5616f 100644
--- a/etc/profile-a-l/blender.profile
+++ b/etc/profile-a-l/blender.profile
@@ -6,7 +6,7 @@ include blender.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/blender 9nodeny ${HOME}/.config/blender
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -20,8 +20,8 @@ include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22# Allow usage of AMD GPU by OpenCL 22# Allow usage of AMD GPU by OpenCL
23noblacklist /sys/module 23nodeny /sys/module
24whitelist /sys/module/amdgpu 24allow /sys/module/amdgpu
25read-only /sys/module/amdgpu 25read-only /sys/module/amdgpu
26 26
27caps.drop all 27caps.drop all
diff --git a/etc/profile-a-l/bless.profile b/etc/profile-a-l/bless.profile
index 80dc750f7..ca5f96eee 100644
--- a/etc/profile-a-l/bless.profile
+++ b/etc/profile-a-l/bless.profile
@@ -6,7 +6,7 @@ include bless.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/bless 9nodeny ${HOME}/.config/bless
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/blobby.profile b/etc/profile-a-l/blobby.profile
new file mode 100644
index 000000000..ee2a73b54
--- /dev/null
+++ b/etc/profile-a-l/blobby.profile
@@ -0,0 +1,52 @@
1# Firejail profile for blobby
2# Persistent local customizations
3include blobby.local
4# Persistent global definitions
5include globals.local
6
7nodeny ${HOME}/.blobby
8
9include disable-common.inc
10include disable-devel.inc
11include disable-exec.inc
12include disable-interpreters.inc
13include disable-passwdmgr.inc
14include disable-programs.inc
15include disable-shell.inc
16include disable-xdg.inc
17
18mkdir ${HOME}/.blobby
19allow ${HOME}/.blobby
20include whitelist-common.inc
21allow /usr/share/blobby
22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc
24
25apparmor
26caps.drop all
27ipc-namespace
28netfilter
29nodvd
30nogroups
31noinput
32nonewprivs
33noroot
34notv
35nou2f
36novideo
37protocol unix,inet,inet6,netlink
38seccomp
39shell none
40tracelog
41
42disable-mnt
43private-bin blobby
44private-dev
45private-etc alsa,alternatives,asound.conf,drirc,group,hosts,login.defs,machine-id,passwd,pulse
46private-lib
47private-tmp
48
49dbus-user none
50dbus-system none
51
52memory-deny-write-execute
diff --git a/etc/profile-a-l/blobwars.profile b/etc/profile-a-l/blobwars.profile
index 904710cb5..e0be5261e 100644
--- a/etc/profile-a-l/blobwars.profile
+++ b/etc/profile-a-l/blobwars.profile
@@ -6,7 +6,7 @@ include blobwars.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.parallelrealities/blobwars 9nodeny ${HOME}/.parallelrealities/blobwars
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.parallelrealities/blobwars 20mkdir ${HOME}/.parallelrealities/blobwars
21whitelist ${HOME}/.parallelrealities/blobwars 21allow ${HOME}/.parallelrealities/blobwars
22whitelist /usr/share/blobwars 22allow /usr/share/blobwars
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-a-l/bnox.profile b/etc/profile-a-l/bnox.profile
index 6e8f0d7d1..dcfd5d8d2 100644
--- a/etc/profile-a-l/bnox.profile
+++ b/etc/profile-a-l/bnox.profile
@@ -10,13 +10,13 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/bnox 13nodeny ${HOME}/.cache/bnox
14noblacklist ${HOME}/.config/bnox 14nodeny ${HOME}/.config/bnox
15 15
16mkdir ${HOME}/.cache/bnox 16mkdir ${HOME}/.cache/bnox
17mkdir ${HOME}/.config/bnox 17mkdir ${HOME}/.config/bnox
18whitelist ${HOME}/.cache/bnox 18allow ${HOME}/.cache/bnox
19whitelist ${HOME}/.config/bnox 19allow ${HOME}/.config/bnox
20 20
21# Redirect 21# Redirect
22include chromium-common.profile 22include chromium-common.profile
diff --git a/etc/profile-a-l/brackets.profile b/etc/profile-a-l/brackets.profile
index 0cbac049a..a14bb8fef 100644
--- a/etc/profile-a-l/brackets.profile
+++ b/etc/profile-a-l/brackets.profile
@@ -5,7 +5,7 @@ include brackets.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/Brackets 8nodeny ${HOME}/.config/Brackets
9#noblacklist /opt/brackets 9#noblacklist /opt/brackets
10#noblacklist /opt/google 10#noblacklist /opt/google
11 11
diff --git a/etc/profile-a-l/brasero.profile b/etc/profile-a-l/brasero.profile
index 417a6b3e0..a78882409 100644
--- a/etc/profile-a-l/brasero.profile
+++ b/etc/profile-a-l/brasero.profile
@@ -6,7 +6,7 @@ include brasero.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/brasero 9nodeny ${HOME}/.config/brasero
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/brave.profile b/etc/profile-a-l/brave.profile
index 09548c761..bc2d7a6a1 100644
--- a/etc/profile-a-l/brave.profile
+++ b/etc/profile-a-l/brave.profile
@@ -14,24 +14,24 @@ ignore noexec /tmp
14# Alternatively you can add 'ignore apparmor' to your brave.local. 14# Alternatively you can add 'ignore apparmor' to your brave.local.
15ignore noexec ${HOME} 15ignore noexec ${HOME}
16 16
17noblacklist ${HOME}/.cache/BraveSoftware 17nodeny ${HOME}/.cache/BraveSoftware
18noblacklist ${HOME}/.config/BraveSoftware 18nodeny ${HOME}/.config/BraveSoftware
19noblacklist ${HOME}/.config/brave 19nodeny ${HOME}/.config/brave
20noblacklist ${HOME}/.config/brave-flags.conf 20nodeny ${HOME}/.config/brave-flags.conf
21# brave uses gpg for built-in password manager 21# brave uses gpg for built-in password manager
22noblacklist ${HOME}/.gnupg 22nodeny ${HOME}/.gnupg
23 23
24mkdir ${HOME}/.cache/BraveSoftware 24mkdir ${HOME}/.cache/BraveSoftware
25mkdir ${HOME}/.config/BraveSoftware 25mkdir ${HOME}/.config/BraveSoftware
26mkdir ${HOME}/.config/brave 26mkdir ${HOME}/.config/brave
27whitelist ${HOME}/.cache/BraveSoftware 27allow ${HOME}/.cache/BraveSoftware
28whitelist ${HOME}/.config/BraveSoftware 28allow ${HOME}/.config/BraveSoftware
29whitelist ${HOME}/.config/brave 29allow ${HOME}/.config/brave
30whitelist ${HOME}/.config/brave-flags.conf 30allow ${HOME}/.config/brave-flags.conf
31whitelist ${HOME}/.gnupg 31allow ${HOME}/.gnupg
32 32
33# Brave sandbox needs read access to /proc/config.gz 33# Brave sandbox needs read access to /proc/config.gz
34noblacklist /proc/config.gz 34nodeny /proc/config.gz
35 35
36# Redirect 36# Redirect
37include chromium-common.profile 37include chromium-common.profile
diff --git a/etc/profile-a-l/bzflag.profile b/etc/profile-a-l/bzflag.profile
index bda96bbb3..62ca041c2 100644
--- a/etc/profile-a-l/bzflag.profile
+++ b/etc/profile-a-l/bzflag.profile
@@ -6,7 +6,7 @@ include bzflag.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.bzf 9nodeny ${HOME}/.bzf
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.bzf 20mkdir ${HOME}/.bzf
21whitelist ${HOME}/.bzf 21allow ${HOME}/.bzf
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-a-l/calibre.profile b/etc/profile-a-l/calibre.profile
index 83571397b..99706620c 100644
--- a/etc/profile-a-l/calibre.profile
+++ b/etc/profile-a-l/calibre.profile
@@ -6,9 +6,9 @@ include calibre.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/calibre 9nodeny ${HOME}/.cache/calibre
10noblacklist ${HOME}/.config/calibre 10nodeny ${HOME}/.config/calibre
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/calligra.profile b/etc/profile-a-l/calligra.profile
index fcff47662..36ecc06a0 100644
--- a/etc/profile-a-l/calligra.profile
+++ b/etc/profile-a-l/calligra.profile
@@ -6,7 +6,7 @@ include calligra.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/calligra 9nodeny ${HOME}/.local/share/kxmlgui5/calligra
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/calligragemini.profile b/etc/profile-a-l/calligragemini.profile
index 006c307ab..76123c96a 100644
--- a/etc/profile-a-l/calligragemini.profile
+++ b/etc/profile-a-l/calligragemini.profile
@@ -6,7 +6,7 @@ include calligragemini.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/calligragemini 9nodeny ${HOME}/.local/share/calligragemini
10 10
11# Redirect 11# Redirect
12include calligra.profile 12include calligra.profile
diff --git a/etc/profile-a-l/calligraplan.profile b/etc/profile-a-l/calligraplan.profile
index 81dbd4dcd..5fb1e16da 100644
--- a/etc/profile-a-l/calligraplan.profile
+++ b/etc/profile-a-l/calligraplan.profile
@@ -6,7 +6,7 @@ include calligraplan.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/calligraplan 9nodeny ${HOME}/.local/share/kxmlgui5/calligraplan
10 10
11# Redirect 11# Redirect
12include calligra.profile 12include calligra.profile
diff --git a/etc/profile-a-l/calligraplanwork.profile b/etc/profile-a-l/calligraplanwork.profile
index bba91b66b..c176bfea1 100644
--- a/etc/profile-a-l/calligraplanwork.profile
+++ b/etc/profile-a-l/calligraplanwork.profile
@@ -6,7 +6,7 @@ include calligraplanwork.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/calligraplanwork 9nodeny ${HOME}/.local/share/kxmlgui5/calligraplanwork
10 10
11# Redirect 11# Redirect
12include calligra.profile 12include calligra.profile
diff --git a/etc/profile-a-l/calligrasheets.profile b/etc/profile-a-l/calligrasheets.profile
index 7bc296047..b7ac68945 100644
--- a/etc/profile-a-l/calligrasheets.profile
+++ b/etc/profile-a-l/calligrasheets.profile
@@ -6,7 +6,7 @@ include calligrasheets.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/calligrasheets 9nodeny ${HOME}/.local/share/kxmlgui5/calligrasheets
10 10
11# Redirect 11# Redirect
12include calligra.profile 12include calligra.profile
diff --git a/etc/profile-a-l/calligrastage.profile b/etc/profile-a-l/calligrastage.profile
index 7694abbe4..1258fec56 100644
--- a/etc/profile-a-l/calligrastage.profile
+++ b/etc/profile-a-l/calligrastage.profile
@@ -6,7 +6,7 @@ include calligrastage.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/calligrastage 9nodeny ${HOME}/.local/share/kxmlgui5/calligrastage
10 10
11# Redirect 11# Redirect
12include calligra.profile 12include calligra.profile
diff --git a/etc/profile-a-l/calligrawords.profile b/etc/profile-a-l/calligrawords.profile
index d69d56a95..c2b6c8041 100644
--- a/etc/profile-a-l/calligrawords.profile
+++ b/etc/profile-a-l/calligrawords.profile
@@ -6,7 +6,7 @@ include calligrawords.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/calligrawords 9nodeny ${HOME}/.local/share/kxmlgui5/calligrawords
10 10
11# Redirect 11# Redirect
12include calligra.profile 12include calligra.profile
diff --git a/etc/profile-a-l/cameramonitor.profile b/etc/profile-a-l/cameramonitor.profile
index 74c7cc34b..390ae383c 100644
--- a/etc/profile-a-l/cameramonitor.profile
+++ b/etc/profile-a-l/cameramonitor.profile
@@ -20,7 +20,7 @@ include disable-programs.inc
20include disable-shell.inc 20include disable-shell.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23whitelist /usr/share/cameramonitor 23allow /usr/share/cameramonitor
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-a-l/cantata.profile b/etc/profile-a-l/cantata.profile
index 96f88a7c4..77bdc09e0 100644
--- a/etc/profile-a-l/cantata.profile
+++ b/etc/profile-a-l/cantata.profile
@@ -6,10 +6,10 @@ include cantata.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/cantata 9nodeny ${HOME}/.cache/cantata
10noblacklist ${HOME}/.config/cantata 10nodeny ${HOME}/.config/cantata
11noblacklist ${HOME}/.local/share/cantata 11nodeny ${HOME}/.local/share/cantata
12noblacklist ${MUSIC} 12nodeny ${MUSIC}
13 13
14# Allow perl (blacklisted by disable-interpreters.inc) 14# Allow perl (blacklisted by disable-interpreters.inc)
15include allow-perl.inc 15include allow-perl.inc
diff --git a/etc/profile-a-l/cargo.profile b/etc/profile-a-l/cargo.profile
index 043fd6718..9c53af84f 100644
--- a/etc/profile-a-l/cargo.profile
+++ b/etc/profile-a-l/cargo.profile
@@ -10,11 +10,11 @@ include globals.local
10ignore noexec ${HOME} 10ignore noexec ${HOME}
11ignore noexec /tmp 11ignore noexec /tmp
12 12
13blacklist /tmp/.X11-unix 13deny /tmp/.X11-unix
14blacklist ${RUNUSER} 14deny ${RUNUSER}
15 15
16noblacklist ${HOME}/.cargo/credentials 16nodeny ${HOME}/.cargo/credentials
17noblacklist ${HOME}/.cargo/credentials.toml 17nodeny ${HOME}/.cargo/credentials.toml
18 18
19# Allows files commonly used by IDEs 19# Allows files commonly used by IDEs
20include allow-common-devel.inc 20include allow-common-devel.inc
@@ -34,6 +34,7 @@ include disable-xdg.inc
34#whitelist ${HOME}/.cargo 34#whitelist ${HOME}/.cargo
35#whitelist ${HOME}/.rustup 35#whitelist ${HOME}/.rustup
36#include whitelist-common.inc 36#include whitelist-common.inc
37allow /usr/share/pkgconfig
37include whitelist-runuser-common.inc 38include whitelist-runuser-common.inc
38include whitelist-usr-share-common.inc 39include whitelist-usr-share-common.inc
39include whitelist-var-common.inc 40include whitelist-var-common.inc
diff --git a/etc/profile-a-l/catfish.profile b/etc/profile-a-l/catfish.profile
index 009d3a049..4ea53ea6b 100644
--- a/etc/profile-a-l/catfish.profile
+++ b/etc/profile-a-l/catfish.profile
@@ -9,7 +9,7 @@ include globals.local
9# We can't blacklist much since catfish 9# We can't blacklist much since catfish
10# is for finding files/content 10# is for finding files/content
11 11
12noblacklist ${HOME}/.config/catfish 12nodeny ${HOME}/.config/catfish
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python2.inc 15include allow-python2.inc
@@ -21,7 +21,7 @@ include disable-interpreters.inc
21include disable-passwdmgr.inc 21include disable-passwdmgr.inc
22# include disable-programs.inc 22# include disable-programs.inc
23 23
24whitelist /var/lib/mlocate 24allow /var/lib/mlocate
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
27apparmor 27apparmor
diff --git a/etc/profile-a-l/cawbird.profile b/etc/profile-a-l/cawbird.profile
index 6e137010c..d7aee1902 100644
--- a/etc/profile-a-l/cawbird.profile
+++ b/etc/profile-a-l/cawbird.profile
@@ -6,7 +6,7 @@ include cawbird.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/cawbird 9nodeny ${HOME}/.config/cawbird
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/celluloid.profile b/etc/profile-a-l/celluloid.profile
index f02161b9b..d6f4306ba 100644
--- a/etc/profile-a-l/celluloid.profile
+++ b/etc/profile-a-l/celluloid.profile
@@ -6,9 +6,9 @@ include celluloid.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/celluloid 9nodeny ${HOME}/.config/celluloid
10noblacklist ${HOME}/.config/gnome-mpv 10nodeny ${HOME}/.config/gnome-mpv
11noblacklist ${HOME}/.config/youtube-dl 11nodeny ${HOME}/.config/youtube-dl
12 12
13# Allow lua (blacklisted by disable-interpreters.inc) 13# Allow lua (blacklisted by disable-interpreters.inc)
14include allow-lua.inc 14include allow-lua.inc
@@ -17,6 +17,8 @@ include allow-lua.inc
17include allow-python2.inc 17include allow-python2.inc
18include allow-python3.inc 18include allow-python3.inc
19 19
20deny /usr/libexec
21
20include disable-common.inc 22include disable-common.inc
21include disable-devel.inc 23include disable-devel.inc
22include disable-exec.inc 24include disable-exec.inc
@@ -28,9 +30,9 @@ read-only ${DESKTOP}
28mkdir ${HOME}/.config/celluloid 30mkdir ${HOME}/.config/celluloid
29mkdir ${HOME}/.config/gnome-mpv 31mkdir ${HOME}/.config/gnome-mpv
30mkdir ${HOME}/.config/youtube-dl 32mkdir ${HOME}/.config/youtube-dl
31whitelist ${HOME}/.config/celluloid 33allow ${HOME}/.config/celluloid
32whitelist ${HOME}/.config/gnome-mpv 34allow ${HOME}/.config/gnome-mpv
33whitelist ${HOME}/.config/youtube-dl 35allow ${HOME}/.config/youtube-dl
34include whitelist-common.inc 36include whitelist-common.inc
35include whitelist-player-common.inc 37include whitelist-player-common.inc
36include whitelist-runuser-common.inc 38include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/checkbashisms.profile b/etc/profile-a-l/checkbashisms.profile
index 24939fc70..0f61084e0 100644
--- a/etc/profile-a-l/checkbashisms.profile
+++ b/etc/profile-a-l/checkbashisms.profile
@@ -7,9 +7,9 @@ include checkbashisms.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14# Allow perl (blacklisted by disable-interpreters.inc) 14# Allow perl (blacklisted by disable-interpreters.inc)
15include allow-perl.inc 15include allow-perl.inc
diff --git a/etc/profile-a-l/cheese.profile b/etc/profile-a-l/cheese.profile
index aca1f5876..bde3e1311 100644
--- a/etc/profile-a-l/cheese.profile
+++ b/etc/profile-a-l/cheese.profile
@@ -6,8 +6,8 @@ include cheese.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${VIDEOS} 9nodeny ${VIDEOS}
10noblacklist ${PICTURES} 10nodeny ${PICTURES}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -17,9 +17,9 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist ${VIDEOS} 20allow ${VIDEOS}
21whitelist ${PICTURES} 21allow ${PICTURES}
22whitelist /usr/share/gnome-video-effects 22allow /usr/share/gnome-video-effects
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/cherrytree.profile b/etc/profile-a-l/cherrytree.profile
index 7621b3c8c..d5dedd81d 100644
--- a/etc/profile-a-l/cherrytree.profile
+++ b/etc/profile-a-l/cherrytree.profile
@@ -6,8 +6,8 @@ include cherrytree.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/cherrytree 9nodeny ${HOME}/.config/cherrytree
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/chromium-browser-privacy.profile b/etc/profile-a-l/chromium-browser-privacy.profile
index 0283a6934..64c45772a 100644
--- a/etc/profile-a-l/chromium-browser-privacy.profile
+++ b/etc/profile-a-l/chromium-browser-privacy.profile
@@ -3,13 +3,15 @@
3# Persistent local customizations 3# Persistent local customizations
4include chromium-browser-privacy.local 4include chromium-browser-privacy.local
5 5
6noblacklist ${HOME}/.cache/ungoogled-chromium 6nodeny ${HOME}/.cache/ungoogled-chromium
7noblacklist ${HOME}/.config/ungoogled-chromium 7nodeny ${HOME}/.config/ungoogled-chromium
8
9deny /usr/libexec
8 10
9mkdir ${HOME}/.cache/ungoogled-chromium 11mkdir ${HOME}/.cache/ungoogled-chromium
10mkdir ${HOME}/.config/ungoogled-chromium 12mkdir ${HOME}/.config/ungoogled-chromium
11whitelist ${HOME}/.cache/ungoogled-chromium 13allow ${HOME}/.cache/ungoogled-chromium
12whitelist ${HOME}/.config/ungoogled-chromium 14allow ${HOME}/.config/ungoogled-chromium
13 15
14# private-bin basename,bash,cat,chromium-browser-privacy,dirname,mkdir,readlink,sed,touch,which,xdg-settings 16# private-bin basename,bash,cat,chromium-browser-privacy,dirname,mkdir,readlink,sed,touch,which,xdg-settings
15 17
diff --git a/etc/profile-a-l/chromium-common.profile b/etc/profile-a-l/chromium-common.profile
index f7493aa82..dbeb715d4 100644
--- a/etc/profile-a-l/chromium-common.profile
+++ b/etc/profile-a-l/chromium-common.profile
@@ -9,8 +9,8 @@ include chromium-common.local
9# noexec ${HOME} breaks DRM binaries. 9# noexec ${HOME} breaks DRM binaries.
10?BROWSER_ALLOW_DRM: ignore noexec ${HOME} 10?BROWSER_ALLOW_DRM: ignore noexec ${HOME}
11 11
12noblacklist ${HOME}/.pki 12nodeny ${HOME}/.pki
13noblacklist ${HOME}/.local/share/pki 13nodeny ${HOME}/.local/share/pki
14 14
15# Add the next line to your chromium-common.local if you want Google Chrome/Chromium browser 15# Add the next line to your chromium-common.local if you want Google Chrome/Chromium browser
16# to have access to Gnome extensions (extensions.gnome.org) via browser connector 16# to have access to Gnome extensions (extensions.gnome.org) via browser connector
@@ -26,9 +26,9 @@ include disable-xdg.inc
26 26
27mkdir ${HOME}/.pki 27mkdir ${HOME}/.pki
28mkdir ${HOME}/.local/share/pki 28mkdir ${HOME}/.local/share/pki
29whitelist ${DOWNLOADS} 29allow ${DOWNLOADS}
30whitelist ${HOME}/.pki 30allow ${HOME}/.pki
31whitelist ${HOME}/.local/share/pki 31allow ${HOME}/.local/share/pki
32include whitelist-common.inc 32include whitelist-common.inc
33include whitelist-runuser-common.inc 33include whitelist-runuser-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
@@ -37,8 +37,9 @@ include whitelist-var-common.inc
37# Add the next line to your chromium-common.local if your kernel allows unprivileged userns clone. 37# Add the next line to your chromium-common.local if your kernel allows unprivileged userns clone.
38#include chromium-common-hardened.inc.profile 38#include chromium-common-hardened.inc.profile
39 39
40# Add the next line to your chromium-common.local to allow screen sharing under wayland. 40# Add the next two lines to your chromium-common.local to allow screen sharing under wayland.
41#whitelist ${RUNUSER}/pipewire-0 41#whitelist ${RUNUSER}/pipewire-0
42#whitelist /usr/share/pipewire/client.conf
42 43
43apparmor 44apparmor
44caps.keep sys_admin,sys_chroot 45caps.keep sys_admin,sys_chroot
diff --git a/etc/profile-a-l/chromium.profile b/etc/profile-a-l/chromium.profile
index 9ac33aa1c..ea92e90a8 100644
--- a/etc/profile-a-l/chromium.profile
+++ b/etc/profile-a-l/chromium.profile
@@ -6,17 +6,17 @@ include chromium.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/chromium 9nodeny ${HOME}/.cache/chromium
10noblacklist ${HOME}/.config/chromium 10nodeny ${HOME}/.config/chromium
11noblacklist ${HOME}/.config/chromium-flags.conf 11nodeny ${HOME}/.config/chromium-flags.conf
12 12
13mkdir ${HOME}/.cache/chromium 13mkdir ${HOME}/.cache/chromium
14mkdir ${HOME}/.config/chromium 14mkdir ${HOME}/.config/chromium
15whitelist ${HOME}/.cache/chromium 15allow ${HOME}/.cache/chromium
16whitelist ${HOME}/.config/chromium 16allow ${HOME}/.config/chromium
17whitelist ${HOME}/.config/chromium-flags.conf 17allow ${HOME}/.config/chromium-flags.conf
18whitelist /usr/share/chromium 18allow /usr/share/chromium
19whitelist /usr/share/mozilla/extensions 19allow /usr/share/mozilla/extensions
20 20
21# private-bin chromium,chromium-browser,chromedriver 21# private-bin chromium,chromium-browser,chromedriver
22 22
diff --git a/etc/profile-a-l/cin.profile b/etc/profile-a-l/cin.profile
index e1f9523c4..c967e1c96 100644
--- a/etc/profile-a-l/cin.profile
+++ b/etc/profile-a-l/cin.profile
@@ -5,7 +5,7 @@ include cin.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.bcast5 8nodeny ${HOME}/.bcast5
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-a-l/clamav.profile b/etc/profile-a-l/clamav.profile
index e403c2c41..0efbcd4f2 100644
--- a/etc/profile-a-l/clamav.profile
+++ b/etc/profile-a-l/clamav.profile
@@ -7,7 +7,7 @@ include clamav.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12include disable-exec.inc 12include disable-exec.inc
13 13
diff --git a/etc/profile-a-l/claws-mail.profile b/etc/profile-a-l/claws-mail.profile
index 691657fa0..3e4e1f2a1 100644
--- a/etc/profile-a-l/claws-mail.profile
+++ b/etc/profile-a-l/claws-mail.profile
@@ -6,17 +6,17 @@ include claws-mail.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.claws-mail 9nodeny ${HOME}/.claws-mail
10 10
11mkdir ${HOME}/.claws-mail 11mkdir ${HOME}/.claws-mail
12whitelist ${HOME}/.claws-mail 12allow ${HOME}/.claws-mail
13 13
14# Add the below lines to your claws-mail.local if you use python-based plugins. 14# Add the below lines to your claws-mail.local if you use python-based plugins.
15# Allow python (blacklisted by disable-interpreters.inc) 15# Allow python (blacklisted by disable-interpreters.inc)
16#include allow-python2.inc 16#include allow-python2.inc
17#include allow-python3.inc 17#include allow-python3.inc
18 18
19whitelist /usr/share/doc/claws-mail 19allow /usr/share/doc/claws-mail
20 20
21# private-bin claws-mail,curl,gpg,gpg2,gpg-agent,gpgsm,gpgme-config,pinentry,pinentry-gtk-2 21# private-bin claws-mail,curl,gpg,gpg2,gpg-agent,gpgsm,gpgme-config,pinentry,pinentry-gtk-2
22 22
diff --git a/etc/profile-a-l/clawsker.profile b/etc/profile-a-l/clawsker.profile
index 9b62a1f73..ee64391d9 100644
--- a/etc/profile-a-l/clawsker.profile
+++ b/etc/profile-a-l/clawsker.profile
@@ -6,7 +6,7 @@ include clawsker.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.claws-mail 9nodeny ${HOME}/.claws-mail
10 10
11# Allow perl (blacklisted by disable-interpreters.inc) 11# Allow perl (blacklisted by disable-interpreters.inc)
12include allow-perl.inc 12include allow-perl.inc
@@ -19,7 +19,7 @@ include disable-passwdmgr.inc
19include disable-programs.inc 19include disable-programs.inc
20 20
21mkdir ${HOME}/.claws-mail 21mkdir ${HOME}/.claws-mail
22whitelist ${HOME}/.claws-mail 22allow ${HOME}/.claws-mail
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-a-l/clementine.profile b/etc/profile-a-l/clementine.profile
index fa33795c1..f9c0006f9 100644
--- a/etc/profile-a-l/clementine.profile
+++ b/etc/profile-a-l/clementine.profile
@@ -6,9 +6,9 @@ include clementine.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Clementine 9nodeny ${HOME}/.cache/Clementine
10noblacklist ${HOME}/.config/Clementine 10nodeny ${HOME}/.config/Clementine
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/clion-eap.profile b/etc/profile-a-l/clion-eap.profile
new file mode 100644
index 000000000..3602c3e7b
--- /dev/null
+++ b/etc/profile-a-l/clion-eap.profile
@@ -0,0 +1,10 @@
1# Firejail profile for CLion EAP
2# This file is overwritten after every install/update
3# Persistent local customizations
4include clion-eap.local
5# Persistent global definitions
6# added by included profile
7#include globals.local
8
9# Redirect
10include clion.profile
diff --git a/etc/profile-a-l/clion.profile b/etc/profile-a-l/clion.profile
index 22cecff09..5c5399069 100644
--- a/etc/profile-a-l/clion.profile
+++ b/etc/profile-a-l/clion.profile
@@ -5,13 +5,16 @@ include clion.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.CLion* 8nodeny ${HOME}/.config/JetBrains/CLion*
9noblacklist ${HOME}/.config/git 9nodeny ${HOME}/.cache/JetBrains/CLion*
10noblacklist ${HOME}/.gitconfig 10nodeny ${HOME}/.clion*
11noblacklist ${HOME}/.git-credentials 11nodeny ${HOME}/.CLion*
12noblacklist ${HOME}/.java 12nodeny ${HOME}/.config/git
13noblacklist ${HOME}/.local/share/JetBrains 13nodeny ${HOME}/.gitconfig
14noblacklist ${HOME}/.tooling 14nodeny ${HOME}/.git-credentials
15nodeny ${HOME}/.java
16nodeny ${HOME}/.local/share/JetBrains
17nodeny ${HOME}/.tooling
15 18
16# Allow ssh (blacklisted by disable-common.inc) 19# Allow ssh (blacklisted by disable-common.inc)
17include allow-ssh.inc 20include allow-ssh.inc
diff --git a/etc/profile-a-l/clipgrab.profile b/etc/profile-a-l/clipgrab.profile
index c8258da07..89f8d96f0 100644
--- a/etc/profile-a-l/clipgrab.profile
+++ b/etc/profile-a-l/clipgrab.profile
@@ -6,9 +6,9 @@ include clipgrab.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Philipp Schmieder 9nodeny ${HOME}/.config/Philipp Schmieder
10noblacklist ${HOME}/.pki 10nodeny ${HOME}/.pki
11noblacklist ${VIDEOS} 11nodeny ${VIDEOS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/clipit.profile b/etc/profile-a-l/clipit.profile
index d421903a3..4a2a5171b 100644
--- a/etc/profile-a-l/clipit.profile
+++ b/etc/profile-a-l/clipit.profile
@@ -6,8 +6,8 @@ include clipit.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/clipit 9nodeny ${HOME}/.config/clipit
10noblacklist ${HOME}/.local/share/clipit 10nodeny ${HOME}/.local/share/clipit
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/clipit 20mkdir ${HOME}/.config/clipit
21mkdir ${HOME}/.local/share/clipit 21mkdir ${HOME}/.local/share/clipit
22whitelist ${HOME}/.config/clipit 22allow ${HOME}/.config/clipit
23whitelist ${HOME}/.local/share/clipit 23allow ${HOME}/.local/share/clipit
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-a-l/cliqz.profile b/etc/profile-a-l/cliqz.profile
index d0b8cc0ef..22c6ef882 100644
--- a/etc/profile-a-l/cliqz.profile
+++ b/etc/profile-a-l/cliqz.profile
@@ -5,16 +5,16 @@ include cliqz.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/cliqz 8nodeny ${HOME}/.cache/cliqz
9noblacklist ${HOME}/.cliqz 9nodeny ${HOME}/.cliqz
10noblacklist ${HOME}/.config/cliqz 10nodeny ${HOME}/.config/cliqz
11 11
12mkdir ${HOME}/.cache/cliqz 12mkdir ${HOME}/.cache/cliqz
13mkdir ${HOME}/.cliqz 13mkdir ${HOME}/.cliqz
14mkdir ${HOME}/.config/cliqz 14mkdir ${HOME}/.config/cliqz
15whitelist ${HOME}/.cache/cliqz 15allow ${HOME}/.cache/cliqz
16whitelist ${HOME}/.cliqz 16allow ${HOME}/.cliqz
17whitelist ${HOME}/.config/cliqz 17allow ${HOME}/.config/cliqz
18 18
19# private-etc must first be enabled in firefox-common.profile 19# private-etc must first be enabled in firefox-common.profile
20#private-etc cliqz 20#private-etc cliqz
diff --git a/etc/profile-a-l/cmus.profile b/etc/profile-a-l/cmus.profile
index bcd557787..51e53209f 100644
--- a/etc/profile-a-l/cmus.profile
+++ b/etc/profile-a-l/cmus.profile
@@ -6,8 +6,8 @@ include cmus.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/cmus 9nodeny ${HOME}/.config/cmus
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/code.profile b/etc/profile-a-l/code.profile
index e19b78908..1933c66fa 100644
--- a/etc/profile-a-l/code.profile
+++ b/etc/profile-a-l/code.profile
@@ -5,10 +5,10 @@ include code.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/Code 8nodeny ${HOME}/.config/Code
9noblacklist ${HOME}/.config/Code - OSS 9nodeny ${HOME}/.config/Code - OSS
10noblacklist ${HOME}/.vscode 10nodeny ${HOME}/.vscode
11noblacklist ${HOME}/.vscode-oss 11nodeny ${HOME}/.vscode-oss
12 12
13# Allows files commonly used by IDEs 13# Allows files commonly used by IDEs
14include allow-common-devel.inc 14include allow-common-devel.inc
diff --git a/etc/profile-a-l/colorful.profile b/etc/profile-a-l/colorful.profile
index bd6d8f5b0..efa7f516c 100644
--- a/etc/profile-a-l/colorful.profile
+++ b/etc/profile-a-l/colorful.profile
@@ -6,7 +6,7 @@ include colorful.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.suve/colorful 9nodeny ${HOME}/.suve/colorful
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.suve/colorful 20mkdir ${HOME}/.suve/colorful
21whitelist ${HOME}/.suve/colorful 21allow ${HOME}/.suve/colorful
22whitelist /usr/share/suve 22allow /usr/share/suve
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/com.github.bleakgrey.tootle.profile b/etc/profile-a-l/com.github.bleakgrey.tootle.profile
index c8bdfec23..34b662959 100644
--- a/etc/profile-a-l/com.github.bleakgrey.tootle.profile
+++ b/etc/profile-a-l/com.github.bleakgrey.tootle.profile
@@ -6,7 +6,7 @@ include com.github.bleakgrey.tootle.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/com.github.bleakgrey.tootle 9nodeny ${HOME}/.config/com.github.bleakgrey.tootle
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/com.github.bleakgrey.tootle 20mkdir ${HOME}/.config/com.github.bleakgrey.tootle
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22whitelist ${HOME}/.config/com.github.bleakgrey.tootle 22allow ${HOME}/.config/com.github.bleakgrey.tootle
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/com.github.dahenson.agenda.profile b/etc/profile-a-l/com.github.dahenson.agenda.profile
index b467a0f7a..4e26e4925 100644
--- a/etc/profile-a-l/com.github.dahenson.agenda.profile
+++ b/etc/profile-a-l/com.github.dahenson.agenda.profile
@@ -6,9 +6,9 @@ include com.github.dahenson.agenda.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/agenda 9nodeny ${HOME}/.cache/agenda
10noblacklist ${HOME}/.config/agenda 10nodeny ${HOME}/.config/agenda
11noblacklist ${HOME}/.local/share/agenda 11nodeny ${HOME}/.local/share/agenda
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -22,9 +22,9 @@ include disable-xdg.inc
22mkdir ${HOME}/.cache/agenda 22mkdir ${HOME}/.cache/agenda
23mkdir ${HOME}/.config/agenda 23mkdir ${HOME}/.config/agenda
24mkdir ${HOME}/.local/share/agenda 24mkdir ${HOME}/.local/share/agenda
25whitelist ${HOME}/.cache/agenda 25allow ${HOME}/.cache/agenda
26whitelist ${HOME}/.config/agenda 26allow ${HOME}/.config/agenda
27whitelist ${HOME}/.local/share/agenda 27allow ${HOME}/.local/share/agenda
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/com.github.johnfactotum.Foliate.profile b/etc/profile-a-l/com.github.johnfactotum.Foliate.profile
index c13f9618b..bbfc1fe41 100644
--- a/etc/profile-a-l/com.github.johnfactotum.Foliate.profile
+++ b/etc/profile-a-l/com.github.johnfactotum.Foliate.profile
@@ -6,9 +6,9 @@ include foliate.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${HOME}/.cache/com.github.johnfactotum.Foliate 10nodeny ${HOME}/.cache/com.github.johnfactotum.Foliate
11noblacklist ${HOME}/.local/share/com.github.johnfactotum.Foliate 11nodeny ${HOME}/.local/share/com.github.johnfactotum.Foliate
12 12
13# Allow gjs (blacklisted by disable-interpreters.inc) 13# Allow gjs (blacklisted by disable-interpreters.inc)
14include allow-gjs.inc 14include allow-gjs.inc
@@ -24,12 +24,12 @@ include disable-xdg.inc
24 24
25mkdir ${HOME}/.cache/com.github.johnfactotum.Foliate 25mkdir ${HOME}/.cache/com.github.johnfactotum.Foliate
26mkdir ${HOME}/.local/share/com.github.johnfactotum.Foliate 26mkdir ${HOME}/.local/share/com.github.johnfactotum.Foliate
27whitelist ${HOME}/.cache/com.github.johnfactotum.Foliate 27allow ${HOME}/.cache/com.github.johnfactotum.Foliate
28whitelist ${HOME}/.local/share/com.github.johnfactotum.Foliate 28allow ${HOME}/.local/share/com.github.johnfactotum.Foliate
29whitelist ${DOCUMENTS} 29allow ${DOCUMENTS}
30whitelist ${DOWNLOADS} 30allow ${DOWNLOADS}
31whitelist /usr/share/com.github.johnfactotum.Foliate 31allow /usr/share/com.github.johnfactotum.Foliate
32whitelist /usr/share/hyphen 32allow /usr/share/hyphen
33include whitelist-common.inc 33include whitelist-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
diff --git a/etc/profile-a-l/com.github.phase1geo.minder.profile b/etc/profile-a-l/com.github.phase1geo.minder.profile
index d0402d188..3e9acc6c8 100644
--- a/etc/profile-a-l/com.github.phase1geo.minder.profile
+++ b/etc/profile-a-l/com.github.phase1geo.minder.profile
@@ -6,9 +6,9 @@ include com.github.phase1geo.minder.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/minder 9nodeny ${HOME}/.local/share/minder
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -20,10 +20,10 @@ include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.local/share/minder 22mkdir ${HOME}/.local/share/minder
23whitelist ${HOME}/.local/share/minder 23allow ${HOME}/.local/share/minder
24whitelist ${DOCUMENTS} 24allow ${DOCUMENTS}
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26whitelist ${PICTURES} 26allow ${PICTURES}
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/conkeror.profile b/etc/profile-a-l/conkeror.profile
index 38edf0d21..6cc9ec551 100644
--- a/etc/profile-a-l/conkeror.profile
+++ b/etc/profile-a-l/conkeror.profile
@@ -5,23 +5,23 @@ include conkeror.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.conkeror.mozdev.org 8nodeny ${HOME}/.conkeror.mozdev.org
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-programs.inc 11include disable-programs.inc
12 12
13mkdir ${HOME}/.conkeror.mozdev.org 13mkdir ${HOME}/.conkeror.mozdev.org
14mkfile ${HOME}/.conkerorrc 14mkfile ${HOME}/.conkerorrc
15whitelist ${HOME}/.conkeror.mozdev.org 15allow ${HOME}/.conkeror.mozdev.org
16whitelist ${HOME}/.conkerorrc 16allow ${HOME}/.conkerorrc
17whitelist ${HOME}/.lastpass 17allow ${HOME}/.lastpass
18whitelist ${HOME}/.pentadactyl 18allow ${HOME}/.pentadactyl
19whitelist ${HOME}/.pentadactylrc 19allow ${HOME}/.pentadactylrc
20whitelist ${HOME}/.vimperator 20allow ${HOME}/.vimperator
21whitelist ${HOME}/.vimperatorrc 21allow ${HOME}/.vimperatorrc
22whitelist ${HOME}/.zotero 22allow ${HOME}/.zotero
23whitelist ${HOME}/dwhelper 23allow ${HOME}/dwhelper
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25include whitelist-common.inc 25include whitelist-common.inc
26 26
27caps.drop all 27caps.drop all
diff --git a/etc/profile-a-l/conky.profile b/etc/profile-a-l/conky.profile
index eaa18739d..1b3fe6651 100644
--- a/etc/profile-a-l/conky.profile
+++ b/etc/profile-a-l/conky.profile
@@ -6,7 +6,7 @@ include conky.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10 10
11# Allow lua (blacklisted by disable-interpreters.inc) 11# Allow lua (blacklisted by disable-interpreters.inc)
12include allow-lua.inc 12include allow-lua.inc
diff --git a/etc/profile-a-l/corebird.profile b/etc/profile-a-l/corebird.profile
index 2fb446e2a..266c404ee 100644
--- a/etc/profile-a-l/corebird.profile
+++ b/etc/profile-a-l/corebird.profile
@@ -6,7 +6,7 @@ include corebird.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/corebird 9nodeny ${HOME}/.config/corebird
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/cower.profile b/etc/profile-a-l/cower.profile
index 1635995dc..0a1353e40 100644
--- a/etc/profile-a-l/cower.profile
+++ b/etc/profile-a-l/cower.profile
@@ -7,8 +7,8 @@ include cower.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.config/cower 10nodeny ${HOME}/.config/cower
11noblacklist /var/lib/pacman 11nodeny /var/lib/pacman
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/coyim.profile b/etc/profile-a-l/coyim.profile
index 7ece35c2b..5e48c8022 100644
--- a/etc/profile-a-l/coyim.profile
+++ b/etc/profile-a-l/coyim.profile
@@ -6,7 +6,7 @@ include coyim.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/coyim 9nodeny ${HOME}/.config/coyim
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/coyim 20mkdir ${HOME}/.config/coyim
21whitelist ${HOME}/.config/coyim 21allow ${HOME}/.config/coyim
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/cpio.profile b/etc/profile-a-l/cpio.profile
index bdc4f21a6..dec8c086b 100644
--- a/etc/profile-a-l/cpio.profile
+++ b/etc/profile-a-l/cpio.profile
@@ -7,8 +7,8 @@ include cpio.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist /sbin 10nodeny /sbin
11noblacklist /usr/sbin 11nodeny /usr/sbin
12 12
13# Redirect 13# Redirect
14include archiver-common.profile 14include archiver-common.profile
diff --git a/etc/profile-a-l/crawl.profile b/etc/profile-a-l/crawl.profile
index b10216895..81292c01c 100644
--- a/etc/profile-a-l/crawl.profile
+++ b/etc/profile-a-l/crawl.profile
@@ -6,7 +6,7 @@ include crawl-tiles.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.crawl 9nodeny ${HOME}/.crawl
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.crawl 19mkdir ${HOME}/.crawl
20whitelist ${HOME}/.crawl 20allow ${HOME}/.crawl
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-a-l/crow.profile b/etc/profile-a-l/crow.profile
index 02b15ecc2..36bd93778 100644
--- a/etc/profile-a-l/crow.profile
+++ b/etc/profile-a-l/crow.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9mkdir ${HOME}/.config/crow 9mkdir ${HOME}/.config/crow
10mkdir ${HOME}/.cache/gstreamer-1.0 10mkdir ${HOME}/.cache/gstreamer-1.0
11whitelist ${HOME}/.config/crow 11allow ${HOME}/.config/crow
12whitelist ${HOME}/.cache/gstreamer-1.0 12allow ${HOME}/.cache/gstreamer-1.0
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-a-l/curl.profile b/etc/profile-a-l/curl.profile
index c9867c5d7..4950b7a4c 100644
--- a/etc/profile-a-l/curl.profile
+++ b/etc/profile-a-l/curl.profile
@@ -12,11 +12,11 @@ include globals.local
12# Technically this file can be anywhere but let's assume users have it in ${HOME}/.curl-hsts. 12# Technically this file can be anywhere but let's assume users have it in ${HOME}/.curl-hsts.
13# If your setup diverts, add 'blacklist /path/to/curl/hsts/file' to your disable-programs.local 13# If your setup diverts, add 'blacklist /path/to/curl/hsts/file' to your disable-programs.local
14# and 'noblacklist /path/to/curl/hsts/file' to curl.local to keep the sandbox logic intact. 14# and 'noblacklist /path/to/curl/hsts/file' to curl.local to keep the sandbox logic intact.
15noblacklist ${HOME}/.curl-hsts 15nodeny ${HOME}/.curl-hsts
16noblacklist ${HOME}/.curlrc 16nodeny ${HOME}/.curlrc
17 17
18blacklist /tmp/.X11-unix 18deny /tmp/.X11-unix
19blacklist ${RUNUSER} 19deny ${RUNUSER}
20 20
21include disable-common.inc 21include disable-common.inc
22include disable-exec.inc 22include disable-exec.inc
diff --git a/etc/profile-a-l/cyberfox.profile b/etc/profile-a-l/cyberfox.profile
index d1fff0004..49f972e4a 100644
--- a/etc/profile-a-l/cyberfox.profile
+++ b/etc/profile-a-l/cyberfox.profile
@@ -5,13 +5,13 @@ include cyberfox.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.8pecxstudios 8nodeny ${HOME}/.8pecxstudios
9noblacklist ${HOME}/.cache/8pecxstudios 9nodeny ${HOME}/.cache/8pecxstudios
10 10
11mkdir ${HOME}/.8pecxstudios 11mkdir ${HOME}/.8pecxstudios
12mkdir ${HOME}/.cache/8pecxstudios 12mkdir ${HOME}/.cache/8pecxstudios
13whitelist ${HOME}/.8pecxstudios 13allow ${HOME}/.8pecxstudios
14whitelist ${HOME}/.cache/8pecxstudios 14allow ${HOME}/.cache/8pecxstudios
15 15
16# private-bin cyberfox,dbus-launch,dbus-send,env,sh,which 16# private-bin cyberfox,dbus-launch,dbus-send,env,sh,which
17# private-etc must first be enabled in firefox-common.profile 17# private-etc must first be enabled in firefox-common.profile
diff --git a/etc/profile-a-l/d-feet.profile b/etc/profile-a-l/d-feet.profile
index ba1e7adad..c7ce1730a 100644
--- a/etc/profile-a-l/d-feet.profile
+++ b/etc/profile-a-l/d-feet.profile
@@ -6,7 +6,7 @@ include d-feet.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/d-feet 9nodeny ${HOME}/.config/d-feet
10 10
11# Allow python (disabled by disable-interpreters.inc) 11# Allow python (disabled by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -22,8 +22,8 @@ include disable-shell.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.config/d-feet 24mkdir ${HOME}/.config/d-feet
25whitelist ${HOME}/.config/d-feet 25allow ${HOME}/.config/d-feet
26whitelist /usr/share/d-feet 26allow /usr/share/d-feet
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/darktable.profile b/etc/profile-a-l/darktable.profile
index 61fa52928..4d51c255e 100644
--- a/etc/profile-a-l/darktable.profile
+++ b/etc/profile-a-l/darktable.profile
@@ -6,9 +6,9 @@ include darktable.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/darktable 9nodeny ${HOME}/.cache/darktable
10noblacklist ${HOME}/.config/darktable 10nodeny ${HOME}/.config/darktable
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/dbus-send.profile b/etc/profile-a-l/dbus-send.profile
index 67a61bb60..745042d6f 100644
--- a/etc/profile-a-l/dbus-send.profile
+++ b/etc/profile-a-l/dbus-send.profile
@@ -7,8 +7,8 @@ include dbus-send.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER}/wayland-* 11deny ${RUNUSER}/wayland-*
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/dconf-editor.profile b/etc/profile-a-l/dconf-editor.profile
index 0c221850a..c1231c6cf 100644
--- a/etc/profile-a-l/dconf-editor.profile
+++ b/etc/profile-a-l/dconf-editor.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist ${HOME}/.local/share/glib-2.0 18allow ${HOME}/.local/share/glib-2.0
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-runuser-common.inc 20include whitelist-runuser-common.inc
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/dconf.profile b/etc/profile-a-l/dconf.profile
index be7514cbf..b9d385adf 100644
--- a/etc/profile-a-l/dconf.profile
+++ b/etc/profile-a-l/dconf.profile
@@ -6,7 +6,7 @@ include dconf.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19whitelist ${HOME}/.local/share/glib-2.0 19allow ${HOME}/.local/share/glib-2.0
20# dconf paths are whitelisted by the following 20# dconf paths are whitelisted by the following
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/ddgr.profile b/etc/profile-a-l/ddgr.profile
new file mode 100644
index 000000000..b1d41ddf7
--- /dev/null
+++ b/etc/profile-a-l/ddgr.profile
@@ -0,0 +1,13 @@
1# Firejail profile for ddgr
2# Description: Search DuckDuckGo from your terminal
3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations
6include ddgr.local
7# Persistent global definitions
8include globals.local
9
10private-bin ddgr
11
12# Redirect
13include googler-common.profile
diff --git a/etc/profile-a-l/ddgtk.profile b/etc/profile-a-l/ddgtk.profile
index 5b95b74be..09fa7a07a 100644
--- a/etc/profile-a-l/ddgtk.profile
+++ b/etc/profile-a-l/ddgtk.profile
@@ -18,8 +18,8 @@ include disable-passwdmgr.inc
18include disable-programs.inc 18include disable-programs.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22whitelist /usr/share/ddgtk 22allow /usr/share/ddgtk
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-a-l/deadbeef.profile b/etc/profile-a-l/deadbeef.profile
index a221ebbd7..25fa944a1 100644
--- a/etc/profile-a-l/deadbeef.profile
+++ b/etc/profile-a-l/deadbeef.profile
@@ -6,8 +6,8 @@ include deadbeef.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/deadbeef 9nodeny ${HOME}/.config/deadbeef
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/deluge.profile b/etc/profile-a-l/deluge.profile
index ad7aa6ed5..d41a4a023 100644
--- a/etc/profile-a-l/deluge.profile
+++ b/etc/profile-a-l/deluge.profile
@@ -6,7 +6,7 @@ include deluge.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/deluge 9nodeny ${HOME}/.config/deluge
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -20,8 +20,8 @@ include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22mkdir ${HOME}/.config/deluge 22mkdir ${HOME}/.config/deluge
23whitelist ${DOWNLOADS} 23allow ${DOWNLOADS}
24whitelist ${HOME}/.config/deluge 24allow ${HOME}/.config/deluge
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-a-l/desktopeditors.profile b/etc/profile-a-l/desktopeditors.profile
index 212cdab60..aed4355d5 100644
--- a/etc/profile-a-l/desktopeditors.profile
+++ b/etc/profile-a-l/desktopeditors.profile
@@ -6,9 +6,9 @@ include desktopeditors.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/onlyoffice 9nodeny ${HOME}/.config/onlyoffice
10noblacklist ${HOME}/.local/share/onlyoffice 10nodeny ${HOME}/.local/share/onlyoffice
11noblacklist ${HOME}/.pki 11nodeny ${HOME}/.pki
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/devhelp.profile b/etc/profile-a-l/devhelp.profile
index 5007f8e74..dc0f290fb 100644
--- a/etc/profile-a-l/devhelp.profile
+++ b/etc/profile-a-l/devhelp.profile
@@ -16,9 +16,9 @@ include disable-programs.inc
16include disable-shell.inc 16include disable-shell.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19whitelist /usr/share/devhelp 19allow /usr/share/devhelp
20whitelist /usr/share/doc 20allow /usr/share/doc
21whitelist /usr/share/gtk-doc/html 21allow /usr/share/gtk-doc/html
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24 24
diff --git a/etc/profile-a-l/devilspie.profile b/etc/profile-a-l/devilspie.profile
index 6267b5709..631f15f93 100644
--- a/etc/profile-a-l/devilspie.profile
+++ b/etc/profile-a-l/devilspie.profile
@@ -6,9 +6,9 @@ include devilspie.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11noblacklist ${HOME}/.devilspie 11nodeny ${HOME}/.devilspie
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-programs.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21mkdir ${HOME}/.devilspie 21mkdir ${HOME}/.devilspie
22whitelist ${HOME}/.devilspie 22allow ${HOME}/.devilspie
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-a-l/devilspie2.profile b/etc/profile-a-l/devilspie2.profile
index 9eab3f536..140c9da0f 100644
--- a/etc/profile-a-l/devilspie2.profile
+++ b/etc/profile-a-l/devilspie2.profile
@@ -6,17 +6,17 @@ include devilspie2.local
6# Persistent global definitions 6# Persistent global definitions
7#include globals.local 7#include globals.local
8 8
9blacklist ${HOME}/.devilspie 9deny ${HOME}/.devilspie
10 10
11blacklist ${RUNUSER}/wayland-* 11deny ${RUNUSER}/wayland-*
12 12
13noblacklist ${HOME}/.config/devilspie2 13nodeny ${HOME}/.config/devilspie2
14 14
15# Allow lua (blacklisted by disable-interpreters.inc) 15# Allow lua (blacklisted by disable-interpreters.inc)
16include allow-lua.inc 16include allow-lua.inc
17 17
18mkdir ${HOME}/.config/devilspie2 18mkdir ${HOME}/.config/devilspie2
19whitelist ${HOME}/.config/devilspie2 19allow ${HOME}/.config/devilspie2
20 20
21private-bin devilspie2 21private-bin devilspie2
22 22
diff --git a/etc/profile-a-l/dia.profile b/etc/profile-a-l/dia.profile
index 531734b7d..2a808238b 100644
--- a/etc/profile-a-l/dia.profile
+++ b/etc/profile-a-l/dia.profile
@@ -6,8 +6,8 @@ include dia.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.dia 9nodeny ${HOME}/.dia
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
@@ -25,7 +25,7 @@ include disable-xdg.inc
25#whitelist ${HOME}/.dia 25#whitelist ${HOME}/.dia
26#whitelist ${DOCUMENTS} 26#whitelist ${DOCUMENTS}
27#include whitelist-common.inc 27#include whitelist-common.inc
28whitelist /usr/share/dia 28allow /usr/share/dia
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/dig.profile b/etc/profile-a-l/dig.profile
index 247159a8a..2d683b811 100644
--- a/etc/profile-a-l/dig.profile
+++ b/etc/profile-a-l/dig.profile
@@ -7,11 +7,11 @@ include dig.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.digrc 10nodeny ${HOME}/.digrc
11noblacklist ${PATH}/dig 11nodeny ${PATH}/dig
12 12
13blacklist /tmp/.X11-unix 13deny /tmp/.X11-unix
14blacklist ${RUNUSER} 14deny ${RUNUSER}
15 15
16include disable-common.inc 16include disable-common.inc
17# include disable-devel.inc 17# include disable-devel.inc
@@ -22,7 +22,7 @@ include disable-programs.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24#mkfile ${HOME}/.digrc - see #903 24#mkfile ${HOME}/.digrc - see #903
25whitelist ${HOME}/.digrc 25allow ${HOME}/.digrc
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
diff --git a/etc/profile-a-l/digikam.profile b/etc/profile-a-l/digikam.profile
index 2ca7bd400..124b50952 100644
--- a/etc/profile-a-l/digikam.profile
+++ b/etc/profile-a-l/digikam.profile
@@ -6,12 +6,12 @@ include digikam.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/digikam 9nodeny ${HOME}/.config/digikam
10noblacklist ${HOME}/.config/digikamrc 10nodeny ${HOME}/.config/digikamrc
11noblacklist ${HOME}/.kde/share/apps/digikam 11nodeny ${HOME}/.kde/share/apps/digikam
12noblacklist ${HOME}/.kde4/share/apps/digikam 12nodeny ${HOME}/.kde4/share/apps/digikam
13noblacklist ${HOME}/.local/share/kxmlgui5/digikam 13nodeny ${HOME}/.local/share/kxmlgui5/digikam
14noblacklist ${PICTURES} 14nodeny ${PICTURES}
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/dillo.profile b/etc/profile-a-l/dillo.profile
index 9871a6095..883466f4d 100644
--- a/etc/profile-a-l/dillo.profile
+++ b/etc/profile-a-l/dillo.profile
@@ -6,7 +6,7 @@ include dillo.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.dillo 9nodeny ${HOME}/.dillo
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,9 +16,9 @@ include disable-programs.inc
16 16
17mkdir ${HOME}/.dillo 17mkdir ${HOME}/.dillo
18mkdir ${HOME}/.fltk 18mkdir ${HOME}/.fltk
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.dillo 20allow ${HOME}/.dillo
21whitelist ${HOME}/.fltk 21allow ${HOME}/.fltk
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-a-l/dino.profile b/etc/profile-a-l/dino.profile
index c3174b35f..3078bef71 100644
--- a/etc/profile-a-l/dino.profile
+++ b/etc/profile-a-l/dino.profile
@@ -6,7 +6,7 @@ include dino.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/dino 9nodeny ${HOME}/.local/share/dino
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19mkdir ${HOME}/.local/share/dino 19mkdir ${HOME}/.local/share/dino
20whitelist ${HOME}/.local/share/dino 20allow ${HOME}/.local/share/dino
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-runuser-common.inc 23include whitelist-runuser-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/discord-canary.profile b/etc/profile-a-l/discord-canary.profile
index 43db95b8a..1c53cd211 100644
--- a/etc/profile-a-l/discord-canary.profile
+++ b/etc/profile-a-l/discord-canary.profile
@@ -5,10 +5,10 @@ include discord-canary.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/discordcanary 8nodeny ${HOME}/.config/discordcanary
9 9
10mkdir ${HOME}/.config/discordcanary 10mkdir ${HOME}/.config/discordcanary
11whitelist ${HOME}/.config/discordcanary 11allow ${HOME}/.config/discordcanary
12 12
13private-bin discord-canary,electron,electron[0-9],electron[0-9][0-9] 13private-bin discord-canary,electron,electron[0-9],electron[0-9][0-9]
14private-opt discord-canary 14private-opt discord-canary
diff --git a/etc/profile-a-l/discord-common.profile b/etc/profile-a-l/discord-common.profile
index 19e7bd9ab..6bee1901c 100644
--- a/etc/profile-a-l/discord-common.profile
+++ b/etc/profile-a-l/discord-common.profile
@@ -20,8 +20,8 @@ ignore dbus-system none
20ignore noexec ${HOME} 20ignore noexec ${HOME}
21ignore novideo 21ignore novideo
22 22
23whitelist ${HOME}/.config/BetterDiscord 23allow ${HOME}/.config/BetterDiscord
24whitelist ${HOME}/.local/share/betterdiscordctl 24allow ${HOME}/.local/share/betterdiscordctl
25 25
26private-bin bash,cut,echo,egrep,fish,grep,head,sed,sh,tclsh,tr,xdg-mime,xdg-open,zsh 26private-bin bash,cut,echo,egrep,fish,grep,head,sed,sh,tclsh,tr,xdg-mime,xdg-open,zsh
27private-etc alternatives,ca-certificates,crypto-policies,fonts,group,ld.so.cache,localtime,login.defs,machine-id,password,pki,pulse,resolv.conf,ssl 27private-etc alternatives,ca-certificates,crypto-policies,fonts,group,ld.so.cache,localtime,login.defs,machine-id,password,pki,pulse,resolv.conf,ssl
diff --git a/etc/profile-a-l/discord.profile b/etc/profile-a-l/discord.profile
index 8ef02a30f..658d3fc83 100644
--- a/etc/profile-a-l/discord.profile
+++ b/etc/profile-a-l/discord.profile
@@ -5,10 +5,10 @@ include discord.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/discord 8nodeny ${HOME}/.config/discord
9 9
10mkdir ${HOME}/.config/discord 10mkdir ${HOME}/.config/discord
11whitelist ${HOME}/.config/discord 11allow ${HOME}/.config/discord
12 12
13private-bin discord 13private-bin discord
14private-opt discord 14private-opt discord
diff --git a/etc/profile-a-l/display.profile b/etc/profile-a-l/display.profile
index 11f3fd36e..4474b97d2 100644
--- a/etc/profile-a-l/display.profile
+++ b/etc/profile-a-l/display.profile
@@ -5,7 +5,7 @@ include display.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${PICTURES} 8nodeny ${PICTURES}
9 9
10# Allow python (blacklisted by disable-interpreters.inc) 10# Allow python (blacklisted by disable-interpreters.inc)
11include allow-python2.inc 11include allow-python2.inc
diff --git a/etc/profile-a-l/dnox.profile b/etc/profile-a-l/dnox.profile
index 51ba6f8b7..8c3d6211b 100644
--- a/etc/profile-a-l/dnox.profile
+++ b/etc/profile-a-l/dnox.profile
@@ -10,13 +10,13 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/dnox 13nodeny ${HOME}/.cache/dnox
14noblacklist ${HOME}/.config/dnox 14nodeny ${HOME}/.config/dnox
15 15
16mkdir ${HOME}/.cache/dnox 16mkdir ${HOME}/.cache/dnox
17mkdir ${HOME}/.config/dnox 17mkdir ${HOME}/.config/dnox
18whitelist ${HOME}/.cache/dnox 18allow ${HOME}/.cache/dnox
19whitelist ${HOME}/.config/dnox 19allow ${HOME}/.config/dnox
20 20
21# Redirect 21# Redirect
22include chromium-common.profile 22include chromium-common.profile
diff --git a/etc/profile-a-l/dnscrypt-proxy.profile b/etc/profile-a-l/dnscrypt-proxy.profile
index f8fb1a331..dbcef36f8 100644
--- a/etc/profile-a-l/dnscrypt-proxy.profile
+++ b/etc/profile-a-l/dnscrypt-proxy.profile
@@ -7,11 +7,11 @@ include dnscrypt-proxy.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER}/wayland-* 11deny ${RUNUSER}/wayland-*
12 12
13noblacklist /sbin 13nodeny /sbin
14noblacklist /usr/sbin 14nodeny /usr/sbin
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -21,7 +21,7 @@ include disable-passwdmgr.inc
21include disable-programs.inc 21include disable-programs.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24whitelist /usr/share/dnscrypt-proxy 24allow /usr/share/dnscrypt-proxy
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-a-l/dnsmasq.profile b/etc/profile-a-l/dnsmasq.profile
index 01398c2b2..b1acbf392 100644
--- a/etc/profile-a-l/dnsmasq.profile
+++ b/etc/profile-a-l/dnsmasq.profile
@@ -7,11 +7,11 @@ include dnsmasq.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist /sbin 10nodeny /sbin
11noblacklist /usr/sbin 11nodeny /usr/sbin
12 12
13blacklist /tmp/.X11-unix 13deny /tmp/.X11-unix
14blacklist ${RUNUSER}/wayland-* 14deny ${RUNUSER}/wayland-*
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/dolphin-emu.profile b/etc/profile-a-l/dolphin-emu.profile
index 49feec32e..15b312ecb 100644
--- a/etc/profile-a-l/dolphin-emu.profile
+++ b/etc/profile-a-l/dolphin-emu.profile
@@ -8,9 +8,9 @@ include globals.local
8 8
9# Note: you must whitelist your games folder in your dolphin-emu.local. 9# Note: you must whitelist your games folder in your dolphin-emu.local.
10 10
11noblacklist ${HOME}/.cache/dolphin-emu 11nodeny ${HOME}/.cache/dolphin-emu
12noblacklist ${HOME}/.config/dolphin-emu 12nodeny ${HOME}/.config/dolphin-emu
13noblacklist ${HOME}/.local/share/dolphin-emu 13nodeny ${HOME}/.local/share/dolphin-emu
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -24,10 +24,10 @@ include disable-xdg.inc
24mkdir ${HOME}/.cache/dolphin-emu 24mkdir ${HOME}/.cache/dolphin-emu
25mkdir ${HOME}/.config/dolphin-emu 25mkdir ${HOME}/.config/dolphin-emu
26mkdir ${HOME}/.local/share/dolphin-emu 26mkdir ${HOME}/.local/share/dolphin-emu
27whitelist ${HOME}/.cache/dolphin-emu 27allow ${HOME}/.cache/dolphin-emu
28whitelist ${HOME}/.config/dolphin-emu 28allow ${HOME}/.config/dolphin-emu
29whitelist ${HOME}/.local/share/dolphin-emu 29allow ${HOME}/.local/share/dolphin-emu
30whitelist /usr/share/dolphin-emu 30allow /usr/share/dolphin-emu
31include whitelist-common.inc 31include whitelist-common.inc
32include whitelist-runuser-common.inc 32include whitelist-runuser-common.inc
33include whitelist-usr-share-common.inc 33include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/dooble.profile b/etc/profile-a-l/dooble.profile
index 37a4113cb..3b0adcc36 100644
--- a/etc/profile-a-l/dooble.profile
+++ b/etc/profile-a-l/dooble.profile
@@ -7,7 +7,7 @@ include dooble-qt4.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.dooble 10nodeny ${HOME}/.dooble
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18 18
19mkdir ${HOME}/.dooble 19mkdir ${HOME}/.dooble
20whitelist ${DOWNLOADS} 20allow ${DOWNLOADS}
21whitelist ${HOME}/.dooble 21allow ${HOME}/.dooble
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-a-l/dosbox.profile b/etc/profile-a-l/dosbox.profile
index 988f66f28..29e506764 100644
--- a/etc/profile-a-l/dosbox.profile
+++ b/etc/profile-a-l/dosbox.profile
@@ -6,8 +6,8 @@ include dosbox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.dosbox 9nodeny ${HOME}/.dosbox
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/dragon.profile b/etc/profile-a-l/dragon.profile
index 8fa01d504..90ca11774 100644
--- a/etc/profile-a-l/dragon.profile
+++ b/etc/profile-a-l/dragon.profile
@@ -6,9 +6,9 @@ include dragon.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/dragonplayerrc 9nodeny ${HOME}/.config/dragonplayerrc
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11noblacklist ${VIDEOS} 11nodeny ${VIDEOS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-programs.inc
19include disable-shell.inc 19include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22whitelist /usr/share/dragonplayer 22allow /usr/share/dragonplayer
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-var-common.inc 24include whitelist-var-common.inc
25 25
diff --git a/etc/profile-a-l/drawio.profile b/etc/profile-a-l/drawio.profile
index 82d96e405..84a77ce34 100644
--- a/etc/profile-a-l/drawio.profile
+++ b/etc/profile-a-l/drawio.profile
@@ -6,7 +6,7 @@ include drawio.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/draw.io 9nodeny ${HOME}/.config/draw.io
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/draw.io 20mkdir ${HOME}/.config/draw.io
21whitelist ${HOME}/.config/draw.io 21allow ${HOME}/.config/draw.io
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-a-l/drill.profile b/etc/profile-a-l/drill.profile
index 068bd88d8..e177fd60e 100644
--- a/etc/profile-a-l/drill.profile
+++ b/etc/profile-a-l/drill.profile
@@ -7,10 +7,10 @@ include drill.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${PATH}/drill 10nodeny ${PATH}/drill
11 11
12blacklist /tmp/.X11-unix 12deny /tmp/.X11-unix
13blacklist ${RUNUSER} 13deny ${RUNUSER}
14 14
15include disable-common.inc 15include disable-common.inc
16# include disable-devel.inc 16# include disable-devel.inc
diff --git a/etc/profile-a-l/dropbox.profile b/etc/profile-a-l/dropbox.profile
index b3b2aaf40..274cdd478 100644
--- a/etc/profile-a-l/dropbox.profile
+++ b/etc/profile-a-l/dropbox.profile
@@ -5,9 +5,9 @@ include dropbox.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/autostart 8nodeny ${HOME}/.config/autostart
9noblacklist ${HOME}/.dropbox 9nodeny ${HOME}/.dropbox
10noblacklist ${HOME}/.dropbox-dist 10nodeny ${HOME}/.dropbox-dist
11 11
12# Allow python3 (blacklisted by disable-interpreters.inc) 12# Allow python3 (blacklisted by disable-interpreters.inc)
13include allow-python3.inc 13include allow-python3.inc
@@ -22,10 +22,10 @@ mkdir ${HOME}/.dropbox
22mkdir ${HOME}/.dropbox-dist 22mkdir ${HOME}/.dropbox-dist
23mkdir ${HOME}/Dropbox 23mkdir ${HOME}/Dropbox
24mkfile ${HOME}/.config/autostart/dropbox.desktop 24mkfile ${HOME}/.config/autostart/dropbox.desktop
25whitelist ${HOME}/.config/autostart/dropbox.desktop 25allow ${HOME}/.config/autostart/dropbox.desktop
26whitelist ${HOME}/.dropbox 26allow ${HOME}/.dropbox
27whitelist ${HOME}/.dropbox-dist 27allow ${HOME}/.dropbox-dist
28whitelist ${HOME}/Dropbox 28allow ${HOME}/Dropbox
29include whitelist-common.inc 29include whitelist-common.inc
30 30
31caps.drop all 31caps.drop all
diff --git a/etc/profile-a-l/easystroke.profile b/etc/profile-a-l/easystroke.profile
index 38e4b16f7..da54fec34 100644
--- a/etc/profile-a-l/easystroke.profile
+++ b/etc/profile-a-l/easystroke.profile
@@ -6,7 +6,7 @@ include easystroke.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.easystroke 9nodeny ${HOME}/.easystroke
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.easystroke 19mkdir ${HOME}/.easystroke
20whitelist ${HOME}/.easystroke 20allow ${HOME}/.easystroke
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
diff --git a/etc/profile-a-l/electron-mail.profile b/etc/profile-a-l/electron-mail.profile
index 278dd6cbd..10e57371e 100644
--- a/etc/profile-a-l/electron-mail.profile
+++ b/etc/profile-a-l/electron-mail.profile
@@ -6,7 +6,7 @@ include electron-mail.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/electron-mail 9nodeny ${HOME}/.config/electron-mail
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/electron-mail 20mkdir ${HOME}/.config/electron-mail
21whitelist ${HOME}/.config/electron-mail 21allow ${HOME}/.config/electron-mail
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23 23
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/electron.profile b/etc/profile-a-l/electron.profile
index 493af79d4..e8d8d35c4 100644
--- a/etc/profile-a-l/electron.profile
+++ b/etc/profile-a-l/electron.profile
@@ -12,7 +12,7 @@ include disable-passwdmgr.inc
12include disable-programs.inc 12include disable-programs.inc
13include disable-xdg.inc 13include disable-xdg.inc
14 14
15whitelist ${DOWNLOADS} 15allow ${DOWNLOADS}
16include whitelist-common.inc 16include whitelist-common.inc
17include whitelist-runuser-common.inc 17include whitelist-runuser-common.inc
18include whitelist-usr-share-common.inc 18include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/electrum.profile b/etc/profile-a-l/electrum.profile
index ad636d71a..f6691017c 100644
--- a/etc/profile-a-l/electrum.profile
+++ b/etc/profile-a-l/electrum.profile
@@ -6,7 +6,7 @@ include electrum.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.electrum 9nodeny ${HOME}/.electrum
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -22,7 +22,7 @@ include disable-shell.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.electrum 24mkdir ${HOME}/.electrum
25whitelist ${HOME}/.electrum 25allow ${HOME}/.electrum
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
28 28
diff --git a/etc/profile-a-l/element-desktop.profile b/etc/profile-a-l/element-desktop.profile
index 48a826f2e..ec28866b8 100644
--- a/etc/profile-a-l/element-desktop.profile
+++ b/etc/profile-a-l/element-desktop.profile
@@ -9,11 +9,11 @@ include element-desktop.local
9 9
10ignore dbus-user none 10ignore dbus-user none
11 11
12noblacklist ${HOME}/.config/Element 12nodeny ${HOME}/.config/Element
13 13
14mkdir ${HOME}/.config/Element 14mkdir ${HOME}/.config/Element
15whitelist ${HOME}/.config/Element 15allow ${HOME}/.config/Element
16whitelist /opt/Element 16allow /opt/Element
17 17
18private-opt Element 18private-opt Element
19 19
diff --git a/etc/profile-a-l/elinks.profile b/etc/profile-a-l/elinks.profile
index 8120725d2..30dca05cb 100644
--- a/etc/profile-a-l/elinks.profile
+++ b/etc/profile-a-l/elinks.profile
@@ -1,44 +1,18 @@
1# Firejail profile for elinks 1# Firejail profile for elinks
2# Description: Advanced text-mode WWW browser 2# Description: Advanced text-mode WWW browser
3# This file is overwritten after every install/update 3# This file is overwritten after every install/update
4quiet
4# Persistent local customizations 5# Persistent local customizations
5include elinks.local 6include elinks.local
6# Persistent global definitions 7# Persistent global definitions
7include globals.local 8include globals.local
8 9
9noblacklist ${HOME}/.elinks 10nodeny ${HOME}/.elinks
10 11
11blacklist /tmp/.X11-unix 12mkdir ${HOME}/.elinks
12blacklist ${RUNUSER}/wayland-* 13allow ${HOME}/.elinks
13 14
14include disable-common.inc 15private-bin elinks
15include disable-devel.inc
16include disable-interpreters.inc
17include disable-passwdmgr.inc
18include disable-programs.inc
19include disable-xdg.inc
20 16
21include whitelist-runuser-common.inc 17# Redirect
22 18include links-common.profile
23caps.drop all
24netfilter
25no3d
26nodvd
27nogroups
28noinput
29nonewprivs
30noroot
31nosound
32notv
33nou2f
34novideo
35protocol unix,inet,inet6
36seccomp
37shell none
38tracelog
39
40# private-bin elinks
41private-cache
42private-dev
43# private-etc alternatives,ca-certificates,crypto-policies,pki,ssl
44private-tmp
diff --git a/etc/profile-a-l/emacs.profile b/etc/profile-a-l/emacs.profile
index 55bf743ef..f0e0e2830 100644
--- a/etc/profile-a-l/emacs.profile
+++ b/etc/profile-a-l/emacs.profile
@@ -6,8 +6,8 @@ include emacs.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.emacs 9nodeny ${HOME}/.emacs
10noblacklist ${HOME}/.emacs.d 10nodeny ${HOME}/.emacs.d
11# Add the next line to your emacs.local if you need gpg support. 11# Add the next line to your emacs.local if you need gpg support.
12#noblacklist ${HOME}/.gnupg 12#noblacklist ${HOME}/.gnupg
13 13
diff --git a/etc/profile-a-l/email-common.profile b/etc/profile-a-l/email-common.profile
index 6c9a8a6ea..5fc72d340 100644
--- a/etc/profile-a-l/email-common.profile
+++ b/etc/profile-a-l/email-common.profile
@@ -7,14 +7,14 @@ include email-common.local
7# added by caller profile 7# added by caller profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.gnupg 10nodeny ${HOME}/.gnupg
11noblacklist ${HOME}/.mozilla 11nodeny ${HOME}/.mozilla
12noblacklist ${HOME}/.signature 12nodeny ${HOME}/.signature
13# when storing mail outside the default ${HOME}/Mail path, 'noblacklist' the custom path in your email-common.local 13# when storing mail outside the default ${HOME}/Mail path, 'noblacklist' the custom path in your email-common.local
14# and 'blacklist' it in your disable-common.local too so it is kept hidden from other applications 14# and 'blacklist' it in your disable-common.local too so it is kept hidden from other applications
15noblacklist ${HOME}/Mail 15nodeny ${HOME}/Mail
16 16
17noblacklist ${DOCUMENTS} 17nodeny ${DOCUMENTS}
18 18
19include disable-common.inc 19include disable-common.inc
20include disable-devel.inc 20include disable-devel.inc
@@ -27,17 +27,17 @@ include disable-xdg.inc
27mkdir ${HOME}/.gnupg 27mkdir ${HOME}/.gnupg
28mkfile ${HOME}/.config/mimeapps.list 28mkfile ${HOME}/.config/mimeapps.list
29mkfile ${HOME}/.signature 29mkfile ${HOME}/.signature
30whitelist ${HOME}/.config/mimeapps.list 30allow ${HOME}/.config/mimeapps.list
31whitelist ${HOME}/.mozilla/firefox/profiles.ini 31allow ${HOME}/.mozilla/firefox/profiles.ini
32whitelist ${HOME}/.gnupg 32allow ${HOME}/.gnupg
33whitelist ${HOME}/.signature 33allow ${HOME}/.signature
34whitelist ${DOCUMENTS} 34allow ${DOCUMENTS}
35whitelist ${DOWNLOADS} 35allow ${DOWNLOADS}
36# when storing mail outside the default ${HOME}/Mail path, 'whitelist' the custom path in your email-common.local 36# when storing mail outside the default ${HOME}/Mail path, 'whitelist' the custom path in your email-common.local
37whitelist ${HOME}/Mail 37allow ${HOME}/Mail
38whitelist ${RUNUSER}/gnupg 38allow ${RUNUSER}/gnupg
39whitelist /usr/share/gnupg 39allow /usr/share/gnupg
40whitelist /usr/share/gnupg2 40allow /usr/share/gnupg2
41include whitelist-common.inc 41include whitelist-common.inc
42include whitelist-runuser-common.inc 42include whitelist-runuser-common.inc
43include whitelist-usr-share-common.inc 43include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/enchant.profile b/etc/profile-a-l/enchant.profile
index ac17b1726..36015b702 100644
--- a/etc/profile-a-l/enchant.profile
+++ b/etc/profile-a-l/enchant.profile
@@ -6,9 +6,9 @@ include enchant.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11noblacklist ${HOME}/.config/enchant 11nodeny ${HOME}/.config/enchant
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-programs.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21mkdir ${HOME}/.config/enchant 21mkdir ${HOME}/.config/enchant
22whitelist ${HOME}/.config/enchant 22allow ${HOME}/.config/enchant
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/enox.profile b/etc/profile-a-l/enox.profile
index d982433e2..9a1d89bba 100644
--- a/etc/profile-a-l/enox.profile
+++ b/etc/profile-a-l/enox.profile
@@ -10,15 +10,15 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/Enox 13nodeny ${HOME}/.cache/Enox
14noblacklist ${HOME}/.config/Enox 14nodeny ${HOME}/.config/Enox
15 15
16#mkdir ${HOME}/.cache/dnox 16#mkdir ${HOME}/.cache/dnox
17#mkdir ${HOME}/.config/dnox 17#mkdir ${HOME}/.config/dnox
18mkdir ${HOME}/.cache/Enox 18mkdir ${HOME}/.cache/Enox
19mkdir ${HOME}/.config/Enox 19mkdir ${HOME}/.config/Enox
20whitelist ${HOME}/.cache/Enox 20allow ${HOME}/.cache/Enox
21whitelist ${HOME}/.config/Enox 21allow ${HOME}/.config/Enox
22 22
23# Redirect 23# Redirect
24include chromium-common.profile 24include chromium-common.profile
diff --git a/etc/profile-a-l/enpass.profile b/etc/profile-a-l/enpass.profile
index c4123b4c2..5d8f8a0b9 100644
--- a/etc/profile-a-l/enpass.profile
+++ b/etc/profile-a-l/enpass.profile
@@ -6,11 +6,11 @@ include enpass.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Enpass 9nodeny ${HOME}/.cache/Enpass
10noblacklist ${HOME}/.config/sinew.in 10nodeny ${HOME}/.config/sinew.in
11noblacklist ${HOME}/.config/Sinew Software Systems 11nodeny ${HOME}/.config/Sinew Software Systems
12noblacklist ${HOME}/.local/share/Enpass 12nodeny ${HOME}/.local/share/Enpass
13noblacklist ${DOCUMENTS} 13nodeny ${DOCUMENTS}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -24,11 +24,11 @@ mkdir ${HOME}/.cache/Enpass
24mkfile ${HOME}/.config/sinew.in 24mkfile ${HOME}/.config/sinew.in
25mkdir ${HOME}/.config/Sinew Software Systems 25mkdir ${HOME}/.config/Sinew Software Systems
26mkdir ${HOME}/.local/share/Enpass 26mkdir ${HOME}/.local/share/Enpass
27whitelist ${HOME}/.cache/Enpass 27allow ${HOME}/.cache/Enpass
28whitelist ${HOME}/.config/sinew.in 28allow ${HOME}/.config/sinew.in
29whitelist ${HOME}/.config/Sinew Software Systems 29allow ${HOME}/.config/Sinew Software Systems
30whitelist ${HOME}/.local/share/Enpass 30allow ${HOME}/.local/share/Enpass
31whitelist ${DOCUMENTS} 31allow ${DOCUMENTS}
32include whitelist-common.inc 32include whitelist-common.inc
33include whitelist-var-common.inc 33include whitelist-var-common.inc
34 34
diff --git a/etc/profile-a-l/eo-common.profile b/etc/profile-a-l/eo-common.profile
index 8e8047b00..ff7040e5c 100644
--- a/etc/profile-a-l/eo-common.profile
+++ b/etc/profile-a-l/eo-common.profile
@@ -7,9 +7,11 @@ include eo-common.local
7# added by caller profile 7# added by caller profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.local/share/Trash 10nodeny ${HOME}/.local/share/Trash
11noblacklist ${HOME}/.Steam 11nodeny ${HOME}/.Steam
12noblacklist ${HOME}/.steam 12nodeny ${HOME}/.steam
13
14deny /usr/libexec
13 15
14include disable-common.inc 16include disable-common.inc
15include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/eog.profile b/etc/profile-a-l/eog.profile
index 5892374bd..e8592c7df 100644
--- a/etc/profile-a-l/eog.profile
+++ b/etc/profile-a-l/eog.profile
@@ -6,9 +6,9 @@ include eog.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/eog 9nodeny ${HOME}/.config/eog
10 10
11whitelist /usr/share/eog 11allow /usr/share/eog
12 12
13# private-bin, private-etc and private-lib break 'Open With' / 'Open in file manager'. 13# private-bin, private-etc and private-lib break 'Open With' / 'Open in file manager'.
14# Add the next lines to your eog.local if you need that functionality. 14# Add the next lines to your eog.local if you need that functionality.
diff --git a/etc/profile-a-l/eom.profile b/etc/profile-a-l/eom.profile
index 7143a8e03..323f5ade2 100644
--- a/etc/profile-a-l/eom.profile
+++ b/etc/profile-a-l/eom.profile
@@ -6,9 +6,9 @@ include eom.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mate/eom 9nodeny ${HOME}/.config/mate/eom
10 10
11whitelist /usr/share/eom 11allow /usr/share/eom
12 12
13# private-bin, private-etc and private-lib break 'Open With' / 'Open in file manager'. 13# private-bin, private-etc and private-lib break 'Open With' / 'Open in file manager'.
14# Add the next lines to your eom.local if you need that functionality. 14# Add the next lines to your eom.local if you need that functionality.
diff --git a/etc/profile-a-l/ephemeral.profile b/etc/profile-a-l/ephemeral.profile
index 131d68951..3657742b9 100644
--- a/etc/profile-a-l/ephemeral.profile
+++ b/etc/profile-a-l/ephemeral.profile
@@ -9,8 +9,8 @@ include globals.local
9# enforce private-cache 9# enforce private-cache
10#noblacklist ${HOME}/.cache/ephemeral 10#noblacklist ${HOME}/.cache/ephemeral
11 11
12noblacklist ${HOME}/.pki 12nodeny ${HOME}/.pki
13noblacklist ${HOME}/.local/share/pki 13nodeny ${HOME}/.local/share/pki
14 14
15# noexec ${HOME} breaks DRM binaries. 15# noexec ${HOME} breaks DRM binaries.
16?BROWSER_ALLOW_DRM: ignore noexec ${HOME} 16?BROWSER_ALLOW_DRM: ignore noexec ${HOME}
@@ -27,9 +27,9 @@ mkdir ${HOME}/.pki
27mkdir ${HOME}/.local/share/pki 27mkdir ${HOME}/.local/share/pki
28# enforce private-cache 28# enforce private-cache
29#whitelist ${HOME}/.cache/ephemeral 29#whitelist ${HOME}/.cache/ephemeral
30whitelist ${HOME}/.pki 30allow ${HOME}/.pki
31whitelist ${HOME}/.local/share/pki 31allow ${HOME}/.local/share/pki
32whitelist ${DOWNLOADS} 32allow ${DOWNLOADS}
33include whitelist-common.inc 33include whitelist-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
diff --git a/etc/profile-a-l/epiphany.profile b/etc/profile-a-l/epiphany.profile
index 225811226..daedb2193 100644
--- a/etc/profile-a-l/epiphany.profile
+++ b/etc/profile-a-l/epiphany.profile
@@ -9,9 +9,9 @@ include globals.local
9# Note: Epiphany use bwrap since 3.34 and can not be firejailed any more. 9# Note: Epiphany use bwrap since 3.34 and can not be firejailed any more.
10# See https://github.com/netblue30/firejail/issues/2995 10# See https://github.com/netblue30/firejail/issues/2995
11 11
12noblacklist ${HOME}/.cache/epiphany 12nodeny ${HOME}/.cache/epiphany
13noblacklist ${HOME}/.config/epiphany 13nodeny ${HOME}/.config/epiphany
14noblacklist ${HOME}/.local/share/epiphany 14nodeny ${HOME}/.local/share/epiphany
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -21,10 +21,10 @@ include disable-programs.inc
21mkdir ${HOME}/.cache/epiphany 21mkdir ${HOME}/.cache/epiphany
22mkdir ${HOME}/.config/epiphany 22mkdir ${HOME}/.config/epiphany
23mkdir ${HOME}/.local/share/epiphany 23mkdir ${HOME}/.local/share/epiphany
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25whitelist ${HOME}/.cache/epiphany 25allow ${HOME}/.cache/epiphany
26whitelist ${HOME}/.config/epiphany 26allow ${HOME}/.config/epiphany
27whitelist ${HOME}/.local/share/epiphany 27allow ${HOME}/.local/share/epiphany
28include whitelist-common.inc 28include whitelist-common.inc
29 29
30caps.drop all 30caps.drop all
diff --git a/etc/profile-a-l/equalx.profile b/etc/profile-a-l/equalx.profile
index 964d3b7ca..ac957870c 100644
--- a/etc/profile-a-l/equalx.profile
+++ b/etc/profile-a-l/equalx.profile
@@ -6,8 +6,8 @@ include equalx.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/equalx 9nodeny ${HOME}/.config/equalx
10noblacklist ${HOME}/.equalx 10nodeny ${HOME}/.equalx
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,13 +20,13 @@ include disable-xdg.inc
20 20
21mkdir ${HOME}/.config/equalx 21mkdir ${HOME}/.config/equalx
22mkdir ${HOME}/.equalx 22mkdir ${HOME}/.equalx
23whitelist ${HOME}/.config/equalx 23allow ${HOME}/.config/equalx
24whitelist ${HOME}/.equalx 24allow ${HOME}/.equalx
25whitelist /usr/share/poppler 25allow /usr/share/poppler
26whitelist /usr/share/ghostscript 26allow /usr/share/ghostscript
27whitelist /usr/share/texlive 27allow /usr/share/texlive
28whitelist /usr/share/equalx 28allow /usr/share/equalx
29whitelist /var/lib/texmf 29allow /var/lib/texmf
30include whitelist-common.inc 30include whitelist-common.inc
31include whitelist-runuser-common.inc 31include whitelist-runuser-common.inc
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/etr.profile b/etc/profile-a-l/etr.profile
index b970b0dfd..a2f46b757 100644
--- a/etc/profile-a-l/etr.profile
+++ b/etc/profile-a-l/etr.profile
@@ -6,7 +6,9 @@ include etr.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.etr 9nodeny ${HOME}/.etr
10
11deny /usr/libexec
10 12
11include disable-common.inc 13include disable-common.inc
12include disable-devel.inc 14include disable-devel.inc
@@ -18,8 +20,10 @@ include disable-shell.inc
18include disable-xdg.inc 20include disable-xdg.inc
19 21
20mkdir ${HOME}/.etr 22mkdir ${HOME}/.etr
21whitelist ${HOME}/.etr 23allow ${HOME}/.etr
22whitelist /usr/share/etr 24allow /usr/share/etr
25# Debian version
26allow /usr/share/games/etr
23include whitelist-common.inc 27include whitelist-common.inc
24include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/evince.profile b/etc/profile-a-l/evince.profile
index adcb29063..ce2617ad6 100644
--- a/etc/profile-a-l/evince.profile
+++ b/etc/profile-a-l/evince.profile
@@ -10,8 +10,10 @@ include globals.local
10# Add the next line to your evince.local if you need bookmarks support. This also needs additional dbus-user filtering (see below). 10# Add the next line to your evince.local if you need bookmarks support. This also needs additional dbus-user filtering (see below).
11#noblacklist ${HOME}/.local/share/gvfs-metadata 11#noblacklist ${HOME}/.local/share/gvfs-metadata
12 12
13noblacklist ${HOME}/.config/evince 13nodeny ${HOME}/.config/evince
14noblacklist ${DOCUMENTS} 14nodeny ${DOCUMENTS}
15
16deny /usr/libexec
15 17
16include disable-common.inc 18include disable-common.inc
17include disable-devel.inc 19include disable-devel.inc
@@ -22,10 +24,10 @@ include disable-programs.inc
22include disable-shell.inc 24include disable-shell.inc
23include disable-xdg.inc 25include disable-xdg.inc
24 26
25whitelist /usr/share/doc 27allow /usr/share/doc
26whitelist /usr/share/evince 28allow /usr/share/evince
27whitelist /usr/share/poppler 29allow /usr/share/poppler
28whitelist /usr/share/tracker 30allow /usr/share/tracker
29include whitelist-runuser-common.inc 31include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 33include whitelist-var-common.inc
diff --git a/etc/profile-a-l/evolution.profile b/etc/profile-a-l/evolution.profile
index 7222493ac..142498a28 100644
--- a/etc/profile-a-l/evolution.profile
+++ b/etc/profile-a-l/evolution.profile
@@ -6,15 +6,15 @@ include evolution.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /var/mail 9nodeny /var/mail
10noblacklist /var/spool/mail 10nodeny /var/spool/mail
11noblacklist ${HOME}/.bogofilter 11nodeny ${HOME}/.bogofilter
12noblacklist ${HOME}/.cache/evolution 12nodeny ${HOME}/.cache/evolution
13noblacklist ${HOME}/.config/evolution 13nodeny ${HOME}/.config/evolution
14noblacklist ${HOME}/.gnupg 14nodeny ${HOME}/.gnupg
15noblacklist ${HOME}/.local/share/evolution 15nodeny ${HOME}/.local/share/evolution
16noblacklist ${HOME}/.pki 16nodeny ${HOME}/.pki
17noblacklist ${HOME}/.local/share/pki 17nodeny ${HOME}/.local/share/pki
18 18
19include disable-common.inc 19include disable-common.inc
20include disable-devel.inc 20include disable-devel.inc
diff --git a/etc/profile-a-l/exiftool.profile b/etc/profile-a-l/exiftool.profile
index 7b09a2c64..216814989 100644
--- a/etc/profile-a-l/exiftool.profile
+++ b/etc/profile-a-l/exiftool.profile
@@ -6,7 +6,7 @@ include exiftool.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11# Allow perl (blacklisted by disable-interpreters.inc) 11# Allow perl (blacklisted by disable-interpreters.inc)
12include allow-perl.inc 12include allow-perl.inc
@@ -18,7 +18,7 @@ include disable-interpreters.inc
18include disable-passwdmgr.inc 18include disable-passwdmgr.inc
19include disable-programs.inc 19include disable-programs.inc
20 20
21whitelist /usr/share/perl-image-exiftool 21allow /usr/share/perl-image-exiftool
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-a-l/falkon.profile b/etc/profile-a-l/falkon.profile
index b2061db79..9bb42945b 100644
--- a/etc/profile-a-l/falkon.profile
+++ b/etc/profile-a-l/falkon.profile
@@ -6,8 +6,8 @@ include falkon.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/falkon 9nodeny ${HOME}/.cache/falkon
10noblacklist ${HOME}/.config/falkon 10nodeny ${HOME}/.config/falkon
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,10 +19,10 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.cache/falkon 20mkdir ${HOME}/.cache/falkon
21mkdir ${HOME}/.config/falkon 21mkdir ${HOME}/.config/falkon
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist ${HOME}/.cache/falkon 23allow ${HOME}/.cache/falkon
24whitelist ${HOME}/.config/falkon 24allow ${HOME}/.config/falkon
25whitelist /usr/share/falkon 25allow /usr/share/falkon
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/fbreader.profile b/etc/profile-a-l/fbreader.profile
index 8e81000fd..d141c6ed5 100644
--- a/etc/profile-a-l/fbreader.profile
+++ b/etc/profile-a-l/fbreader.profile
@@ -6,8 +6,8 @@ include fbreader.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.FBReader 9nodeny ${HOME}/.FBReader
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/fdns.profile b/etc/profile-a-l/fdns.profile
index 31cb1776c..17a365053 100644
--- a/etc/profile-a-l/fdns.profile
+++ b/etc/profile-a-l/fdns.profile
@@ -5,11 +5,11 @@ include fdns.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist /sbin 8nodeny /sbin
9noblacklist /usr/sbin 9nodeny /usr/sbin
10 10
11blacklist /tmp/.X11-unix 11deny /tmp/.X11-unix
12blacklist ${RUNUSER}/wayland-* 12deny ${RUNUSER}/wayland-*
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-a-l/feedreader.profile b/etc/profile-a-l/feedreader.profile
index 664ec2da6..359be083e 100644
--- a/etc/profile-a-l/feedreader.profile
+++ b/etc/profile-a-l/feedreader.profile
@@ -6,8 +6,8 @@ include feedreader.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/feedreader 9nodeny ${HOME}/.cache/feedreader
10noblacklist ${HOME}/.local/share/feedreader 10nodeny ${HOME}/.local/share/feedreader
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-xdg.inc
20 20
21mkdir ${HOME}/.cache/feedreader 21mkdir ${HOME}/.cache/feedreader
22mkdir ${HOME}/.local/share/feedreader 22mkdir ${HOME}/.local/share/feedreader
23whitelist ${HOME}/.cache/feedreader 23allow ${HOME}/.cache/feedreader
24whitelist ${HOME}/.local/share/feedreader 24allow ${HOME}/.local/share/feedreader
25whitelist /usr/share/feedreader 25allow /usr/share/feedreader
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/ferdi.profile b/etc/profile-a-l/ferdi.profile
index a2372ec8a..f60055f37 100644
--- a/etc/profile-a-l/ferdi.profile
+++ b/etc/profile-a-l/ferdi.profile
@@ -7,10 +7,10 @@ include globals.local
7 7
8ignore noexec /tmp 8ignore noexec /tmp
9 9
10noblacklist ${HOME}/.cache/Ferdi 10nodeny ${HOME}/.cache/Ferdi
11noblacklist ${HOME}/.config/Ferdi 11nodeny ${HOME}/.config/Ferdi
12noblacklist ${HOME}/.pki 12nodeny ${HOME}/.pki
13noblacklist ${HOME}/.local/share/pki 13nodeny ${HOME}/.local/share/pki
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -22,11 +22,11 @@ mkdir ${HOME}/.cache/Ferdi
22mkdir ${HOME}/.config/Ferdi 22mkdir ${HOME}/.config/Ferdi
23mkdir ${HOME}/.pki 23mkdir ${HOME}/.pki
24mkdir ${HOME}/.local/share/pki 24mkdir ${HOME}/.local/share/pki
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26whitelist ${HOME}/.cache/Ferdi 26allow ${HOME}/.cache/Ferdi
27whitelist ${HOME}/.config/Ferdi 27allow ${HOME}/.config/Ferdi
28whitelist ${HOME}/.pki 28allow ${HOME}/.pki
29whitelist ${HOME}/.local/share/pki 29allow ${HOME}/.local/share/pki
30include whitelist-common.inc 30include whitelist-common.inc
31 31
32caps.drop all 32caps.drop all
diff --git a/etc/profile-a-l/fetchmail.profile b/etc/profile-a-l/fetchmail.profile
index 7358ed5c7..1e06ec29a 100644
--- a/etc/profile-a-l/fetchmail.profile
+++ b/etc/profile-a-l/fetchmail.profile
@@ -6,8 +6,8 @@ include fetchmail.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.fetchmailrc 9nodeny ${HOME}/.fetchmailrc
10noblacklist ${HOME}/.netrc 10nodeny ${HOME}/.netrc
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/ffmpeg.profile b/etc/profile-a-l/ffmpeg.profile
index 13ef1beb9..1a64183ab 100644
--- a/etc/profile-a-l/ffmpeg.profile
+++ b/etc/profile-a-l/ffmpeg.profile
@@ -7,8 +7,8 @@ include ffmpeg.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11noblacklist ${VIDEOS} 11nodeny ${VIDEOS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,9 +19,9 @@ include disable-programs.inc
19include disable-shell.inc 19include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22whitelist /usr/share/devedeng 22allow /usr/share/devedeng
23whitelist /usr/share/ffmpeg 23allow /usr/share/ffmpeg
24whitelist /usr/share/qtchooser 24allow /usr/share/qtchooser
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-a-l/file-roller.profile b/etc/profile-a-l/file-roller.profile
index 0b8a8cd6c..f7a938f24 100644
--- a/etc/profile-a-l/file-roller.profile
+++ b/etc/profile-a-l/file-roller.profile
@@ -13,7 +13,9 @@ include disable-interpreters.inc
13include disable-passwdmgr.inc 13include disable-passwdmgr.inc
14include disable-programs.inc 14include disable-programs.inc
15 15
16whitelist /usr/share/file-roller 16allow /usr/libexec/file-roller
17allow /usr/libexec/p7zip
18allow /usr/share/file-roller
17include whitelist-runuser-common.inc 19include whitelist-runuser-common.inc
18include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
19include whitelist-var-common.inc 21include whitelist-var-common.inc
diff --git a/etc/profile-a-l/file.profile b/etc/profile-a-l/file.profile
index 5c7583605..426d1e72d 100644
--- a/etc/profile-a-l/file.profile
+++ b/etc/profile-a-l/file.profile
@@ -7,7 +7,7 @@ include file.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-exec.inc 13include disable-exec.inc
diff --git a/etc/profile-a-l/filezilla.profile b/etc/profile-a-l/filezilla.profile
index dc5def54f..d9e0e9da0 100644
--- a/etc/profile-a-l/filezilla.profile
+++ b/etc/profile-a-l/filezilla.profile
@@ -6,8 +6,8 @@ include filezilla.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/filezilla 9nodeny ${HOME}/.config/filezilla
10noblacklist ${HOME}/.filezilla 10nodeny ${HOME}/.filezilla
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/firedragon.profile b/etc/profile-a-l/firedragon.profile
index 77487161e..e22424794 100644
--- a/etc/profile-a-l/firedragon.profile
+++ b/etc/profile-a-l/firedragon.profile
@@ -6,13 +6,13 @@ include firedragon.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/firedragon 9nodeny ${HOME}/.cache/firedragon
10noblacklist ${HOME}/.firedragon 10nodeny ${HOME}/.firedragon
11 11
12mkdir ${HOME}/.cache/firedragon 12mkdir ${HOME}/.cache/firedragon
13mkdir ${HOME}/.firedragon 13mkdir ${HOME}/.firedragon
14whitelist ${HOME}/.cache/firedragon 14allow ${HOME}/.cache/firedragon
15whitelist ${HOME}/.firedragon 15allow ${HOME}/.firedragon
16 16
17# Add the next lines to your firedragon.local if you want to use the migration wizard. 17# Add the next lines to your firedragon.local if you want to use the migration wizard.
18#noblacklist ${HOME}/.mozilla 18#noblacklist ${HOME}/.mozilla
diff --git a/etc/profile-a-l/firefox-common-addons.profile b/etc/profile-a-l/firefox-common-addons.profile
index d282f9a60..7e2e8760d 100644
--- a/etc/profile-a-l/firefox-common-addons.profile
+++ b/etc/profile-a-l/firefox-common-addons.profile
@@ -5,74 +5,74 @@ include firefox-common-addons.local
5ignore include whitelist-runuser-common.inc 5ignore include whitelist-runuser-common.inc
6ignore private-cache 6ignore private-cache
7 7
8noblacklist ${HOME}/.cache/youtube-dl 8nodeny ${HOME}/.cache/youtube-dl
9noblacklist ${HOME}/.config/kgetrc 9nodeny ${HOME}/.config/kgetrc
10noblacklist ${HOME}/.config/mpv 10nodeny ${HOME}/.config/mpv
11noblacklist ${HOME}/.config/okularpartrc 11nodeny ${HOME}/.config/okularpartrc
12noblacklist ${HOME}/.config/okularrc 12nodeny ${HOME}/.config/okularrc
13noblacklist ${HOME}/.config/qpdfview 13nodeny ${HOME}/.config/qpdfview
14noblacklist ${HOME}/.config/youtube-dl 14nodeny ${HOME}/.config/youtube-dl
15noblacklist ${HOME}/.kde/share/apps/kget 15nodeny ${HOME}/.kde/share/apps/kget
16noblacklist ${HOME}/.kde/share/apps/okular 16nodeny ${HOME}/.kde/share/apps/okular
17noblacklist ${HOME}/.kde/share/config/kgetrc 17nodeny ${HOME}/.kde/share/config/kgetrc
18noblacklist ${HOME}/.kde/share/config/okularpartrc 18nodeny ${HOME}/.kde/share/config/okularpartrc
19noblacklist ${HOME}/.kde/share/config/okularrc 19nodeny ${HOME}/.kde/share/config/okularrc
20noblacklist ${HOME}/.kde4/share/apps/kget 20nodeny ${HOME}/.kde4/share/apps/kget
21noblacklist ${HOME}/.kde4/share/apps/okular 21nodeny ${HOME}/.kde4/share/apps/okular
22noblacklist ${HOME}/.kde4/share/config/kgetrc 22nodeny ${HOME}/.kde4/share/config/kgetrc
23noblacklist ${HOME}/.kde4/share/config/okularpartrc 23nodeny ${HOME}/.kde4/share/config/okularpartrc
24noblacklist ${HOME}/.kde4/share/config/okularrc 24nodeny ${HOME}/.kde4/share/config/okularrc
25noblacklist ${HOME}/.local/share/kget 25nodeny ${HOME}/.local/share/kget
26noblacklist ${HOME}/.local/share/kxmlgui5/okular 26nodeny ${HOME}/.local/share/kxmlgui5/okular
27noblacklist ${HOME}/.local/share/okular 27nodeny ${HOME}/.local/share/okular
28noblacklist ${HOME}/.local/share/qpdfview 28nodeny ${HOME}/.local/share/qpdfview
29noblacklist ${HOME}/.netrc 29nodeny ${HOME}/.netrc
30 30
31whitelist ${HOME}/.cache/gnome-mplayer/plugin 31allow ${HOME}/.cache/gnome-mplayer/plugin
32whitelist ${HOME}/.cache/youtube-dl/youtube-sigfuncs 32allow ${HOME}/.cache/youtube-dl/youtube-sigfuncs
33whitelist ${HOME}/.config/gnome-mplayer 33allow ${HOME}/.config/gnome-mplayer
34whitelist ${HOME}/.config/kgetrc 34allow ${HOME}/.config/kgetrc
35whitelist ${HOME}/.config/mpv 35allow ${HOME}/.config/mpv
36whitelist ${HOME}/.config/okularpartrc 36allow ${HOME}/.config/okularpartrc
37whitelist ${HOME}/.config/okularrc 37allow ${HOME}/.config/okularrc
38whitelist ${HOME}/.config/pipelight-silverlight5.1 38allow ${HOME}/.config/pipelight-silverlight5.1
39whitelist ${HOME}/.config/pipelight-widevine 39allow ${HOME}/.config/pipelight-widevine
40whitelist ${HOME}/.config/qpdfview 40allow ${HOME}/.config/qpdfview
41whitelist ${HOME}/.config/youtube-dl 41allow ${HOME}/.config/youtube-dl
42whitelist ${HOME}/.kde/share/apps/kget 42allow ${HOME}/.kde/share/apps/kget
43whitelist ${HOME}/.kde/share/apps/okular 43allow ${HOME}/.kde/share/apps/okular
44whitelist ${HOME}/.kde/share/config/kgetrc 44allow ${HOME}/.kde/share/config/kgetrc
45whitelist ${HOME}/.kde/share/config/okularpartrc 45allow ${HOME}/.kde/share/config/okularpartrc
46whitelist ${HOME}/.kde/share/config/okularrc 46allow ${HOME}/.kde/share/config/okularrc
47whitelist ${HOME}/.kde4/share/apps/kget 47allow ${HOME}/.kde4/share/apps/kget
48whitelist ${HOME}/.kde4/share/apps/okular 48allow ${HOME}/.kde4/share/apps/okular
49whitelist ${HOME}/.kde4/share/config/kgetrc 49allow ${HOME}/.kde4/share/config/kgetrc
50whitelist ${HOME}/.kde4/share/config/okularpartrc 50allow ${HOME}/.kde4/share/config/okularpartrc
51whitelist ${HOME}/.kde4/share/config/okularrc 51allow ${HOME}/.kde4/share/config/okularrc
52whitelist ${HOME}/.keysnail.js 52allow ${HOME}/.keysnail.js
53whitelist ${HOME}/.lastpass 53allow ${HOME}/.lastpass
54whitelist ${HOME}/.local/share/kget 54allow ${HOME}/.local/share/kget
55whitelist ${HOME}/.local/share/kxmlgui5/okular 55allow ${HOME}/.local/share/kxmlgui5/okular
56whitelist ${HOME}/.local/share/okular 56allow ${HOME}/.local/share/okular
57whitelist ${HOME}/.local/share/qpdfview 57allow ${HOME}/.local/share/qpdfview
58whitelist ${HOME}/.local/share/tridactyl 58allow ${HOME}/.local/share/tridactyl
59whitelist ${HOME}/.netrc 59allow ${HOME}/.netrc
60whitelist ${HOME}/.pentadactyl 60allow ${HOME}/.pentadactyl
61whitelist ${HOME}/.pentadactylrc 61allow ${HOME}/.pentadactylrc
62whitelist ${HOME}/.tridactylrc 62allow ${HOME}/.tridactylrc
63whitelist ${HOME}/.vimperator 63allow ${HOME}/.vimperator
64whitelist ${HOME}/.vimperatorrc 64allow ${HOME}/.vimperatorrc
65whitelist ${HOME}/.wine-pipelight 65allow ${HOME}/.wine-pipelight
66whitelist ${HOME}/.wine-pipelight64 66allow ${HOME}/.wine-pipelight64
67whitelist ${HOME}/.zotero 67allow ${HOME}/.zotero
68whitelist ${HOME}/dwhelper 68allow ${HOME}/dwhelper
69whitelist /usr/share/lua 69allow /usr/share/lua
70whitelist /usr/share/lua* 70allow /usr/share/lua*
71whitelist /usr/share/vulkan 71allow /usr/share/vulkan
72 72
73# GNOME Shell integration (chrome-gnome-shell) needs dbus and python 73# GNOME Shell integration (chrome-gnome-shell) needs dbus and python
74noblacklist ${HOME}/.local/share/gnome-shell 74nodeny ${HOME}/.local/share/gnome-shell
75whitelist ${HOME}/.local/share/gnome-shell 75allow ${HOME}/.local/share/gnome-shell
76dbus-user.talk ca.desrt.dconf 76dbus-user.talk ca.desrt.dconf
77dbus-user.talk org.gnome.ChromeGnomeShell 77dbus-user.talk org.gnome.ChromeGnomeShell
78dbus-user.talk org.gnome.Shell 78dbus-user.talk org.gnome.Shell
diff --git a/etc/profile-a-l/firefox-common.profile b/etc/profile-a-l/firefox-common.profile
index 8b74ed979..cb0fae5dc 100644
--- a/etc/profile-a-l/firefox-common.profile
+++ b/etc/profile-a-l/firefox-common.profile
@@ -12,8 +12,8 @@ include firefox-common.local
12# Add the next line to your firefox-common.local to allow access to common programs/addons/plugins. 12# Add the next line to your firefox-common.local to allow access to common programs/addons/plugins.
13#include firefox-common-addons.profile 13#include firefox-common-addons.profile
14 14
15noblacklist ${HOME}/.pki 15nodeny ${HOME}/.pki
16noblacklist ${HOME}/.local/share/pki 16nodeny ${HOME}/.local/share/pki
17 17
18include disable-common.inc 18include disable-common.inc
19include disable-devel.inc 19include disable-devel.inc
@@ -23,9 +23,9 @@ include disable-programs.inc
23 23
24mkdir ${HOME}/.pki 24mkdir ${HOME}/.pki
25mkdir ${HOME}/.local/share/pki 25mkdir ${HOME}/.local/share/pki
26whitelist ${DOWNLOADS} 26allow ${DOWNLOADS}
27whitelist ${HOME}/.pki 27allow ${HOME}/.pki
28whitelist ${HOME}/.local/share/pki 28allow ${HOME}/.local/share/pki
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/firefox-esr.profile b/etc/profile-a-l/firefox-esr.profile
index 5e69fdb51..4fd315fdf 100644
--- a/etc/profile-a-l/firefox-esr.profile
+++ b/etc/profile-a-l/firefox-esr.profile
@@ -6,7 +6,7 @@ include firefox-esr.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9whitelist /usr/share/firefox-esr 9allow /usr/share/firefox-esr
10 10
11# Redirect 11# Redirect
12include firefox.profile 12include firefox.profile
diff --git a/etc/profile-a-l/firefox.profile b/etc/profile-a-l/firefox.profile
index b22a78458..8acfe7c2a 100644
--- a/etc/profile-a-l/firefox.profile
+++ b/etc/profile-a-l/firefox.profile
@@ -14,25 +14,27 @@ include globals.local
14# https://github.com/netblue30/firejail/wiki/Frequently-Asked-Questions#how-do-i-run-two-instances-of-firefox 14# https://github.com/netblue30/firejail/wiki/Frequently-Asked-Questions#how-do-i-run-two-instances-of-firefox
15# https://github.com/netblue30/firejail/issues/4206#issuecomment-824806968 15# https://github.com/netblue30/firejail/issues/4206#issuecomment-824806968
16 16
17noblacklist ${HOME}/.cache/mozilla 17nodeny ${HOME}/.cache/mozilla
18noblacklist ${HOME}/.mozilla 18nodeny ${HOME}/.mozilla
19
20deny /usr/libexec
19 21
20mkdir ${HOME}/.cache/mozilla/firefox 22mkdir ${HOME}/.cache/mozilla/firefox
21mkdir ${HOME}/.mozilla 23mkdir ${HOME}/.mozilla
22whitelist ${HOME}/.cache/mozilla/firefox 24allow ${HOME}/.cache/mozilla/firefox
23whitelist ${HOME}/.mozilla 25allow ${HOME}/.mozilla
24 26
25# Add one of the following whitelist options to your firefox.local to enable KeePassXC Plugin support. 27# Add one of the following whitelist options to your firefox.local to enable KeePassXC Plugin support.
26# NOTE: start KeePassXC before Firefox and keep it open to allow communication between them. 28# NOTE: start KeePassXC before Firefox and keep it open to allow communication between them.
27#whitelist ${RUNUSER}/kpxc_server 29#whitelist ${RUNUSER}/kpxc_server
28#whitelist ${RUNUSER}/org.keepassxc.KeePassXC.BrowserServer 30#whitelist ${RUNUSER}/org.keepassxc.KeePassXC.BrowserServer
29 31
30whitelist /usr/share/doc 32allow /usr/share/doc
31whitelist /usr/share/firefox 33allow /usr/share/firefox
32whitelist /usr/share/gnome-shell/search-providers/firefox-search-provider.ini 34allow /usr/share/gnome-shell/search-providers/firefox-search-provider.ini
33whitelist /usr/share/gtk-doc/html 35allow /usr/share/gtk-doc/html
34whitelist /usr/share/mozilla 36allow /usr/share/mozilla
35whitelist /usr/share/webext 37allow /usr/share/webext
36include whitelist-usr-share-common.inc 38include whitelist-usr-share-common.inc
37 39
38# firefox requires a shell to launch on Arch - add the next line to your firefox.local to enable private-bin. 40# firefox requires a shell to launch on Arch - add the next line to your firefox.local to enable private-bin.
@@ -54,8 +56,9 @@ dbus-user.own org.mpris.MediaPlayer2.firefox.*
54#dbus-user.own org.mpris.MediaPlayer2.plasma-browser-integration 56#dbus-user.own org.mpris.MediaPlayer2.plasma-browser-integration
55#dbus-user.talk org.kde.JobViewServer 57#dbus-user.talk org.kde.JobViewServer
56#dbus-user.talk org.kde.kuiserver 58#dbus-user.talk org.kde.kuiserver
57# Add the next two lines to your firefox.local to allow screen sharing under wayland. 59# Add the next three lines to your firefox.local to allow screen sharing under wayland.
58#whitelist ${RUNUSER}/pipewire-0 60#whitelist ${RUNUSER}/pipewire-0
61#whitelist /usr/share/pipewire/client.conf
59#dbus-user.talk org.freedesktop.portal.* 62#dbus-user.talk org.freedesktop.portal.*
60# Add the next line to your firefox.local if screen sharing sharing still does not work 63# Add the next line to your firefox.local if screen sharing sharing still does not work
61# with the above lines (might depend on the portal implementation). 64# with the above lines (might depend on the portal implementation).
diff --git a/etc/profile-a-l/five-or-more.profile b/etc/profile-a-l/five-or-more.profile
index 2c86d3ac7..bd1becaf0 100644
--- a/etc/profile-a-l/five-or-more.profile
+++ b/etc/profile-a-l/five-or-more.profile
@@ -6,12 +6,12 @@ include five-or-more.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/five-or-more 9nodeny ${HOME}/.local/share/five-or-more
10 10
11mkdir ${HOME}/.local/share/five-or-more 11mkdir ${HOME}/.local/share/five-or-more
12whitelist ${HOME}/.local/share/five-or-more 12allow ${HOME}/.local/share/five-or-more
13 13
14whitelist /usr/share/five-or-more 14allow /usr/share/five-or-more
15 15
16private-bin five-or-more 16private-bin five-or-more
17 17
diff --git a/etc/profile-a-l/flameshot.profile b/etc/profile-a-l/flameshot.profile
index 55af96c84..f16a65536 100644
--- a/etc/profile-a-l/flameshot.profile
+++ b/etc/profile-a-l/flameshot.profile
@@ -7,9 +7,9 @@ include flameshot.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${PICTURES} 10nodeny ${PICTURES}
11noblacklist ${HOME}/.config/Dharkael 11nodeny ${HOME}/.config/Dharkael
12noblacklist ${HOME}/.config/flameshot 12nodeny ${HOME}/.config/flameshot
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -25,7 +25,7 @@ include disable-xdg.inc
25#whitelist ${PICTURES} 25#whitelist ${PICTURES}
26#whitelist ${HOME}/.config/Dharkael 26#whitelist ${HOME}/.config/Dharkael
27#whitelist ${HOME}/.config/flameshot 27#whitelist ${HOME}/.config/flameshot
28whitelist /usr/share/flameshot 28allow /usr/share/flameshot
29#include whitelist-common.inc 29#include whitelist-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/flashpeak-slimjet.profile b/etc/profile-a-l/flashpeak-slimjet.profile
index 310fb378f..af114e129 100644
--- a/etc/profile-a-l/flashpeak-slimjet.profile
+++ b/etc/profile-a-l/flashpeak-slimjet.profile
@@ -10,13 +10,13 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/slimjet 13nodeny ${HOME}/.cache/slimjet
14noblacklist ${HOME}/.config/slimjet 14nodeny ${HOME}/.config/slimjet
15 15
16mkdir ${HOME}/.cache/slimjet 16mkdir ${HOME}/.cache/slimjet
17mkdir ${HOME}/.config/slimjet 17mkdir ${HOME}/.config/slimjet
18whitelist ${HOME}/.cache/slimjet 18allow ${HOME}/.cache/slimjet
19whitelist ${HOME}/.config/slimjet 19allow ${HOME}/.config/slimjet
20 20
21# Redirect 21# Redirect
22include chromium-common.profile 22include chromium-common.profile
diff --git a/etc/profile-a-l/flowblade.profile b/etc/profile-a-l/flowblade.profile
index a4421e3ce..505763fb9 100644
--- a/etc/profile-a-l/flowblade.profile
+++ b/etc/profile-a-l/flowblade.profile
@@ -6,8 +6,8 @@ include flowblade.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/flowblade 9nodeny ${HOME}/.config/flowblade
10noblacklist ${HOME}/.flowblade 10nodeny ${HOME}/.flowblade
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/fluxbox.profile b/etc/profile-a-l/fluxbox.profile
index 1210f365c..a22c0e103 100644
--- a/etc/profile-a-l/fluxbox.profile
+++ b/etc/profile-a-l/fluxbox.profile
@@ -7,7 +7,7 @@ include fluxbox.local
7include globals.local 7include globals.local
8 8
9# all applications started in fluxbox will run in this profile 9# all applications started in fluxbox will run in this profile
10noblacklist ${HOME}/.fluxbox 10nodeny ${HOME}/.fluxbox
11include disable-common.inc 11include disable-common.inc
12 12
13caps.drop all 13caps.drop all
diff --git a/etc/profile-a-l/font-manager.profile b/etc/profile-a-l/font-manager.profile
index cd0129436..ff9167c1a 100644
--- a/etc/profile-a-l/font-manager.profile
+++ b/etc/profile-a-l/font-manager.profile
@@ -6,8 +6,8 @@ include font-manager.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/font-manager 9nodeny ${HOME}/.cache/font-manager
10noblacklist ${HOME}/.config/font-manager 10nodeny ${HOME}/.config/font-manager
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
@@ -24,9 +24,9 @@ include disable-xdg.inc
24 24
25mkdir ${HOME}/.cache/font-manager 25mkdir ${HOME}/.cache/font-manager
26mkdir ${HOME}/.config/font-manager 26mkdir ${HOME}/.config/font-manager
27whitelist ${HOME}/.cache/font-manager 27allow ${HOME}/.cache/font-manager
28whitelist ${HOME}/.config/font-manager 28allow ${HOME}/.config/font-manager
29whitelist /usr/share/font-manager 29allow /usr/share/font-manager
30include whitelist-common.inc 30include whitelist-common.inc
31include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
32include whitelist-var-common.inc 32include whitelist-var-common.inc
diff --git a/etc/profile-a-l/fontforge.profile b/etc/profile-a-l/fontforge.profile
index bd1495877..64c7655e2 100644
--- a/etc/profile-a-l/fontforge.profile
+++ b/etc/profile-a-l/fontforge.profile
@@ -6,8 +6,8 @@ include fontforge.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.FontForge 9nodeny ${HOME}/.FontForge
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/fossamail.profile b/etc/profile-a-l/fossamail.profile
index 2d700d336..5e5a12794 100644
--- a/etc/profile-a-l/fossamail.profile
+++ b/etc/profile-a-l/fossamail.profile
@@ -6,16 +6,16 @@ include fossamail.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/fossamail 9nodeny ${HOME}/.cache/fossamail
10noblacklist ${HOME}/.fossamail 10nodeny ${HOME}/.fossamail
11noblacklist ${HOME}/.gnupg 11nodeny ${HOME}/.gnupg
12 12
13mkdir ${HOME}/.cache/fossamail 13mkdir ${HOME}/.cache/fossamail
14mkdir ${HOME}/.fossamail 14mkdir ${HOME}/.fossamail
15mkdir ${HOME}/.gnupg 15mkdir ${HOME}/.gnupg
16whitelist ${HOME}/.cache/fossamail 16allow ${HOME}/.cache/fossamail
17whitelist ${HOME}/.fossamail 17allow ${HOME}/.fossamail
18whitelist ${HOME}/.gnupg 18allow ${HOME}/.gnupg
19include whitelist-common.inc 19include whitelist-common.inc
20 20
21# allow browsers 21# allow browsers
diff --git a/etc/profile-a-l/four-in-a-row.profile b/etc/profile-a-l/four-in-a-row.profile
index eb0c43ca5..97fd4a626 100644
--- a/etc/profile-a-l/four-in-a-row.profile
+++ b/etc/profile-a-l/four-in-a-row.profile
@@ -9,7 +9,7 @@ include globals.local
9ignore machine-id 9ignore machine-id
10ignore nosound 10ignore nosound
11 11
12whitelist /usr/share/four-in-a-row 12allow /usr/share/four-in-a-row
13 13
14private-bin four-in-a-row 14private-bin four-in-a-row
15 15
diff --git a/etc/profile-a-l/fractal.profile b/etc/profile-a-l/fractal.profile
index 1b1d031b4..8edc9b02d 100644
--- a/etc/profile-a-l/fractal.profile
+++ b/etc/profile-a-l/fractal.profile
@@ -6,7 +6,7 @@ include fractal.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/fractal 9nodeny ${HOME}/.cache/fractal
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -22,8 +22,8 @@ include disable-shell.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.cache/fractal 24mkdir ${HOME}/.cache/fractal
25whitelist ${HOME}/.cache/fractal 25allow ${HOME}/.cache/fractal
26whitelist ${DOWNLOADS} 26allow ${DOWNLOADS}
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/franz.profile b/etc/profile-a-l/franz.profile
index 9b780a572..1a8ec8f99 100644
--- a/etc/profile-a-l/franz.profile
+++ b/etc/profile-a-l/franz.profile
@@ -7,10 +7,10 @@ include globals.local
7 7
8ignore noexec /tmp 8ignore noexec /tmp
9 9
10noblacklist ${HOME}/.cache/Franz 10nodeny ${HOME}/.cache/Franz
11noblacklist ${HOME}/.config/Franz 11nodeny ${HOME}/.config/Franz
12noblacklist ${HOME}/.pki 12nodeny ${HOME}/.pki
13noblacklist ${HOME}/.local/share/pki 13nodeny ${HOME}/.local/share/pki
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -22,11 +22,11 @@ mkdir ${HOME}/.cache/Franz
22mkdir ${HOME}/.config/Franz 22mkdir ${HOME}/.config/Franz
23mkdir ${HOME}/.pki 23mkdir ${HOME}/.pki
24mkdir ${HOME}/.local/share/pki 24mkdir ${HOME}/.local/share/pki
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26whitelist ${HOME}/.cache/Franz 26allow ${HOME}/.cache/Franz
27whitelist ${HOME}/.config/Franz 27allow ${HOME}/.config/Franz
28whitelist ${HOME}/.pki 28allow ${HOME}/.pki
29whitelist ${HOME}/.local/share/pki 29allow ${HOME}/.local/share/pki
30include whitelist-common.inc 30include whitelist-common.inc
31 31
32caps.drop all 32caps.drop all
diff --git a/etc/profile-a-l/freecad.profile b/etc/profile-a-l/freecad.profile
index 8043d0530..a45ad4c7a 100644
--- a/etc/profile-a-l/freecad.profile
+++ b/etc/profile-a-l/freecad.profile
@@ -6,8 +6,8 @@ include freecad.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/FreeCAD 9nodeny ${HOME}/.config/FreeCAD
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/freeciv.profile b/etc/profile-a-l/freeciv.profile
index 23c19682c..20abd4056 100644
--- a/etc/profile-a-l/freeciv.profile
+++ b/etc/profile-a-l/freeciv.profile
@@ -6,7 +6,7 @@ include freeciv.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.freeciv 9nodeny ${HOME}/.freeciv
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.freeciv 19mkdir ${HOME}/.freeciv
20whitelist ${HOME}/.freeciv 20allow ${HOME}/.freeciv
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-a-l/freecol.profile b/etc/profile-a-l/freecol.profile
index 93fa7da03..79ccf4101 100644
--- a/etc/profile-a-l/freecol.profile
+++ b/etc/profile-a-l/freecol.profile
@@ -6,10 +6,10 @@ include freecol.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.freecol 9nodeny ${HOME}/.freecol
10noblacklist ${HOME}/.cache/freecol 10nodeny ${HOME}/.cache/freecol
11noblacklist ${HOME}/.config/freecol 11nodeny ${HOME}/.config/freecol
12noblacklist ${HOME}/.local/share/freecol 12nodeny ${HOME}/.local/share/freecol
13 13
14# Allow java (blacklisted by disable-devel.inc) 14# Allow java (blacklisted by disable-devel.inc)
15include allow-java.inc 15include allow-java.inc
@@ -26,11 +26,11 @@ mkdir ${HOME}/.java
26mkdir ${HOME}/.cache/freecol 26mkdir ${HOME}/.cache/freecol
27mkdir ${HOME}/.config/freecol 27mkdir ${HOME}/.config/freecol
28mkdir ${HOME}/.local/share/freecol 28mkdir ${HOME}/.local/share/freecol
29whitelist ${HOME}/.freecol 29allow ${HOME}/.freecol
30whitelist ${HOME}/.java 30allow ${HOME}/.java
31whitelist ${HOME}/.cache/freecol 31allow ${HOME}/.cache/freecol
32whitelist ${HOME}/.config/freecol 32allow ${HOME}/.config/freecol
33whitelist ${HOME}/.local/share/freecol 33allow ${HOME}/.local/share/freecol
34include whitelist-common.inc 34include whitelist-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
36 36
diff --git a/etc/profile-a-l/freemind.profile b/etc/profile-a-l/freemind.profile
index 699177039..ba52dd208 100644
--- a/etc/profile-a-l/freemind.profile
+++ b/etc/profile-a-l/freemind.profile
@@ -6,8 +6,8 @@ include freemind.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${HOME}/.freemind 10nodeny ${HOME}/.freemind
11 11
12# Allow java (blacklisted by disable-devel.inc) 12# Allow java (blacklisted by disable-devel.inc)
13include allow-java.inc 13include allow-java.inc
diff --git a/etc/profile-a-l/freetube.profile b/etc/profile-a-l/freetube.profile
index e6aff533d..4c321322c 100644
--- a/etc/profile-a-l/freetube.profile
+++ b/etc/profile-a-l/freetube.profile
@@ -6,12 +6,12 @@ include freetube.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/FreeTube 9nodeny ${HOME}/.config/FreeTube
10 10
11include disable-shell.inc 11include disable-shell.inc
12 12
13mkdir ${HOME}/.config/FreeTube 13mkdir ${HOME}/.config/FreeTube
14whitelist ${HOME}/.config/FreeTube 14allow ${HOME}/.config/FreeTube
15 15
16private-bin freetube 16private-bin freetube
17private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,pki,pulse,resolv.conf,ssl,X11,xdg 17private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,pki,pulse,resolv.conf,ssl,X11,xdg
diff --git a/etc/profile-a-l/frogatto.profile b/etc/profile-a-l/frogatto.profile
index fa56d2b2d..3a6dfcfd6 100644
--- a/etc/profile-a-l/frogatto.profile
+++ b/etc/profile-a-l/frogatto.profile
@@ -6,7 +6,7 @@ include frogatto.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.frogatto 9nodeny ${HOME}/.frogatto
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,9 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.frogatto 19mkdir ${HOME}/.frogatto
20whitelist ${HOME}/.frogatto 20allow ${HOME}/.frogatto
21whitelist /usr/share/frogatto 21allow /usr/libexec/frogatto
22allow /usr/share/frogatto
22include whitelist-common.inc 23include whitelist-common.inc
23include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
24include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/frozen-bubble.profile b/etc/profile-a-l/frozen-bubble.profile
index 76352e41e..12eca8eb0 100644
--- a/etc/profile-a-l/frozen-bubble.profile
+++ b/etc/profile-a-l/frozen-bubble.profile
@@ -6,7 +6,7 @@ include frozen-bubble.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.frozen-bubble 9nodeny ${HOME}/.frozen-bubble
10 10
11# Allow perl (blacklisted by disable-interpreters.inc) 11# Allow perl (blacklisted by disable-interpreters.inc)
12include allow-perl.inc 12include allow-perl.inc
@@ -20,7 +20,7 @@ include disable-programs.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.frozen-bubble 22mkdir ${HOME}/.frozen-bubble
23whitelist ${HOME}/.frozen-bubble 23allow ${HOME}/.frozen-bubble
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/funnyboat.profile b/etc/profile-a-l/funnyboat.profile
new file mode 100644
index 000000000..07030df4b
--- /dev/null
+++ b/etc/profile-a-l/funnyboat.profile
@@ -0,0 +1,57 @@
1# Firejail profile for funnyboat
2# This file is overwritten after every install/update
3# Persistent local customizations
4include funnyboat.local
5# Persistent global definitions
6include globals.local
7
8nodeny ${HOME}/.funnyboat
9
10ignore noexec /dev/shm
11include allow-python2.inc
12include allow-python3.inc
13
14include disable-common.inc
15include disable-devel.inc
16include disable-exec.inc
17include disable-interpreters.inc
18include disable-passwdmgr.inc
19include disable-programs.inc
20# include disable-shell.inc
21include disable-xdg.inc
22
23mkdir ${HOME}/.funnyboat
24allow ${HOME}/.funnyboat
25include whitelist-common.inc
26include whitelist-runuser-common.inc
27allow /usr/share/funnyboat
28# Debian:
29allow /usr/share/games/funnyboat
30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc
32
33apparmor
34caps.drop all
35ipc-namespace
36netfilter
37nodvd
38nogroups
39noinput
40nonewprivs
41noroot
42notv
43novideo
44protocol unix,inet,inet6
45seccomp
46shell none
47# tracelog
48
49disable-mnt
50private-cache
51private-dev
52private-tmp
53
54dbus-user none
55dbus-system none
56
57memory-deny-write-execute
diff --git a/etc/profile-a-l/gajim.profile b/etc/profile-a-l/gajim.profile
index ed3f0357d..4cd2cb1e6 100644
--- a/etc/profile-a-l/gajim.profile
+++ b/etc/profile-a-l/gajim.profile
@@ -6,10 +6,10 @@ include gajim.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.gnupg 9nodeny ${HOME}/.gnupg
10noblacklist ${HOME}/.cache/gajim 10nodeny ${HOME}/.cache/gajim
11noblacklist ${HOME}/.config/gajim 11nodeny ${HOME}/.config/gajim
12noblacklist ${HOME}/.local/share/gajim 12nodeny ${HOME}/.local/share/gajim
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15#include allow-python2.inc 15#include allow-python2.inc
@@ -28,14 +28,14 @@ mkdir ${HOME}/.gnupg
28mkdir ${HOME}/.cache/gajim 28mkdir ${HOME}/.cache/gajim
29mkdir ${HOME}/.config/gajim 29mkdir ${HOME}/.config/gajim
30mkdir ${HOME}/.local/share/gajim 30mkdir ${HOME}/.local/share/gajim
31whitelist ${HOME}/.gnupg 31allow ${HOME}/.gnupg
32whitelist ${HOME}/.cache/gajim 32allow ${HOME}/.cache/gajim
33whitelist ${HOME}/.config/gajim 33allow ${HOME}/.config/gajim
34whitelist ${HOME}/.local/share/gajim 34allow ${HOME}/.local/share/gajim
35whitelist ${DOWNLOADS} 35allow ${DOWNLOADS}
36whitelist ${RUNUSER}/gnupg 36allow ${RUNUSER}/gnupg
37whitelist /usr/share/gnupg 37allow /usr/share/gnupg
38whitelist /usr/share/gnupg2 38allow /usr/share/gnupg2
39include whitelist-common.inc 39include whitelist-common.inc
40include whitelist-runuser-common.inc 40include whitelist-runuser-common.inc
41include whitelist-usr-share-common.inc 41include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/galculator.profile b/etc/profile-a-l/galculator.profile
index 550b3808b..0b1b595a6 100644
--- a/etc/profile-a-l/galculator.profile
+++ b/etc/profile-a-l/galculator.profile
@@ -6,7 +6,7 @@ include galculator.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/galculator 9nodeny ${HOME}/.config/galculator
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/galculator 20mkdir ${HOME}/.config/galculator
21whitelist ${HOME}/.config/galculator 21allow ${HOME}/.config/galculator
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-a-l/gapplication.profile b/etc/profile-a-l/gapplication.profile
index f2da60c87..00b830234 100644
--- a/etc/profile-a-l/gapplication.profile
+++ b/etc/profile-a-l/gapplication.profile
@@ -6,7 +6,8 @@ include gapplication.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10deny /usr/libexec
10 11
11include disable-common.inc 12include disable-common.inc
12include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/gcloud.profile b/etc/profile-a-l/gcloud.profile
index 388f4c0df..896a100fc 100644
--- a/etc/profile-a-l/gcloud.profile
+++ b/etc/profile-a-l/gcloud.profile
@@ -8,9 +8,9 @@ include globals.local
8# noexec ${HOME} will break user-local installs of gcloud tooling 8# noexec ${HOME} will break user-local installs of gcloud tooling
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.boto 11nodeny ${HOME}/.boto
12noblacklist ${HOME}/.config/gcloud 12nodeny ${HOME}/.config/gcloud
13noblacklist /var/run/docker.sock 13nodeny /var/run/docker.sock
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/gconf-editor.profile b/etc/profile-a-l/gconf-editor.profile
index cb39174e5..8f72f0b34 100644
--- a/etc/profile-a-l/gconf-editor.profile
+++ b/etc/profile-a-l/gconf-editor.profile
@@ -7,9 +7,9 @@ include gconf-editor.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11 11
12whitelist /usr/share/gconf-editor 12allow /usr/share/gconf-editor
13 13
14ignore x11 none 14ignore x11 none
15 15
diff --git a/etc/profile-a-l/gconf.profile b/etc/profile-a-l/gconf.profile
index fec1a555a..8c7013574 100644
--- a/etc/profile-a-l/gconf.profile
+++ b/etc/profile-a-l/gconf.profile
@@ -6,9 +6,9 @@ include gconf.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11noblacklist ${HOME}/.config/gconf 11nodeny ${HOME}/.config/gconf
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
@@ -23,9 +23,9 @@ include disable-programs.inc
23include disable-xdg.inc 23include disable-xdg.inc
24 24
25mkdir ${HOME}/.config/gconf 25mkdir ${HOME}/.config/gconf
26whitelist ${HOME}/.config/gconf 26allow ${HOME}/.config/gconf
27whitelist /usr/share/GConf 27allow /usr/share/GConf
28whitelist /usr/share/gconf 28allow /usr/share/gconf
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/geany.profile b/etc/profile-a-l/geany.profile
index 6fdb9b37a..706a85c75 100644
--- a/etc/profile-a-l/geany.profile
+++ b/etc/profile-a-l/geany.profile
@@ -6,7 +6,7 @@ include geany.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/geany 9nodeny ${HOME}/.config/geany
10 10
11# Allows files commonly used by IDEs 11# Allows files commonly used by IDEs
12include allow-common-devel.inc 12include allow-common-devel.inc
diff --git a/etc/profile-a-l/geary.profile b/etc/profile-a-l/geary.profile
index 74e135a7c..512fc1e59 100644
--- a/etc/profile-a-l/geary.profile
+++ b/etc/profile-a-l/geary.profile
@@ -6,14 +6,14 @@ include geary.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/evolution 9nodeny ${HOME}/.cache/evolution
10noblacklist ${HOME}/.cache/folks 10nodeny ${HOME}/.cache/folks
11noblacklist ${HOME}/.cache/geary 11nodeny ${HOME}/.cache/geary
12noblacklist ${HOME}/.config/evolution 12nodeny ${HOME}/.config/evolution
13noblacklist ${HOME}/.config/geary 13nodeny ${HOME}/.config/geary
14noblacklist ${HOME}/.local/share/evolution 14nodeny ${HOME}/.local/share/evolution
15noblacklist ${HOME}/.local/share/geary 15nodeny ${HOME}/.local/share/geary
16noblacklist ${HOME}/.mozilla 16nodeny ${HOME}/.mozilla
17 17
18include disable-common.inc 18include disable-common.inc
19include disable-devel.inc 19include disable-devel.inc
@@ -31,16 +31,16 @@ mkdir ${HOME}/.config/evolution
31mkdir ${HOME}/.config/geary 31mkdir ${HOME}/.config/geary
32mkdir ${HOME}/.local/share/evolution 32mkdir ${HOME}/.local/share/evolution
33mkdir ${HOME}/.local/share/geary 33mkdir ${HOME}/.local/share/geary
34whitelist ${DOWNLOADS} 34allow ${DOWNLOADS}
35whitelist ${HOME}/.cache/evolution 35allow ${HOME}/.cache/evolution
36whitelist ${HOME}/.cache/folks 36allow ${HOME}/.cache/folks
37whitelist ${HOME}/.cache/geary 37allow ${HOME}/.cache/geary
38whitelist ${HOME}/.config/evolution 38allow ${HOME}/.config/evolution
39whitelist ${HOME}/.config/geary 39allow ${HOME}/.config/geary
40whitelist ${HOME}/.local/share/evolution 40allow ${HOME}/.local/share/evolution
41whitelist ${HOME}/.local/share/geary 41allow ${HOME}/.local/share/geary
42whitelist ${HOME}/.mozilla/firefox/profiles.ini 42allow ${HOME}/.mozilla/firefox/profiles.ini
43whitelist /usr/share/geary 43allow /usr/share/geary
44include whitelist-common.inc 44include whitelist-common.inc
45include whitelist-runuser-common.inc 45include whitelist-runuser-common.inc
46include whitelist-usr-share-common.inc 46include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gedit.profile b/etc/profile-a-l/gedit.profile
index 108b7041d..f11540374 100644
--- a/etc/profile-a-l/gedit.profile
+++ b/etc/profile-a-l/gedit.profile
@@ -6,8 +6,8 @@ include gedit.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/enchant 9nodeny ${HOME}/.config/enchant
10noblacklist ${HOME}/.config/gedit 10nodeny ${HOME}/.config/gedit
11 11
12# Allows files commonly used by IDEs 12# Allows files commonly used by IDEs
13include allow-common-devel.inc 13include allow-common-devel.inc
diff --git a/etc/profile-a-l/geeqie.profile b/etc/profile-a-l/geeqie.profile
index dd33b3fb5..8ec3bbaf9 100644
--- a/etc/profile-a-l/geeqie.profile
+++ b/etc/profile-a-l/geeqie.profile
@@ -6,9 +6,9 @@ include geeqie.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/geeqie 9nodeny ${HOME}/.cache/geeqie
10noblacklist ${HOME}/.config/geeqie 10nodeny ${HOME}/.config/geeqie
11noblacklist ${HOME}/.local/share/geeqie 11nodeny ${HOME}/.local/share/geeqie
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/gfeeds.profile b/etc/profile-a-l/gfeeds.profile
index 7ec8ba810..1661da639 100644
--- a/etc/profile-a-l/gfeeds.profile
+++ b/etc/profile-a-l/gfeeds.profile
@@ -6,10 +6,10 @@ include gfeeds.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/gfeeds 9nodeny ${HOME}/.cache/gfeeds
10noblacklist ${HOME}/.cache/org.gabmus.gfeeds 10nodeny ${HOME}/.cache/org.gabmus.gfeeds
11noblacklist ${HOME}/.config/org.gabmus.gfeeds.json 11nodeny ${HOME}/.config/org.gabmus.gfeeds.json
12noblacklist ${HOME}/.config/org.gabmus.gfeeds.saved_articles 12nodeny ${HOME}/.config/org.gabmus.gfeeds.saved_articles
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python3.inc 15include allow-python3.inc
@@ -27,11 +27,12 @@ mkdir ${HOME}/.cache/gfeeds
27mkdir ${HOME}/.cache/org.gabmus.gfeeds 27mkdir ${HOME}/.cache/org.gabmus.gfeeds
28mkfile ${HOME}/.config/org.gabmus.gfeeds.json 28mkfile ${HOME}/.config/org.gabmus.gfeeds.json
29mkdir ${HOME}/.config/org.gabmus.gfeeds.saved_articles 29mkdir ${HOME}/.config/org.gabmus.gfeeds.saved_articles
30whitelist ${HOME}/.cache/gfeeds 30allow ${HOME}/.cache/gfeeds
31whitelist ${HOME}/.cache/org.gabmus.gfeeds 31allow ${HOME}/.cache/org.gabmus.gfeeds
32whitelist ${HOME}/.config/org.gabmus.gfeeds.json 32allow ${HOME}/.config/org.gabmus.gfeeds.json
33whitelist ${HOME}/.config/org.gabmus.gfeeds.saved_articles 33allow ${HOME}/.config/org.gabmus.gfeeds.saved_articles
34whitelist /usr/share/gfeeds 34allow /usr/libexec/webkit2gtk-4.0
35allow /usr/share/gfeeds
35include whitelist-common.inc 36include whitelist-common.inc
36include whitelist-runuser-common.inc 37include whitelist-runuser-common.inc
37include whitelist-usr-share-common.inc 38include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gget.profile b/etc/profile-a-l/gget.profile
index d9c5a0d9a..06929dbe3 100644
--- a/etc/profile-a-l/gget.profile
+++ b/etc/profile-a-l/gget.profile
@@ -7,8 +7,8 @@ include gget.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER} 11deny ${RUNUSER}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-programs.inc
19include disable-shell.inc 19include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/ghostwriter.profile b/etc/profile-a-l/ghostwriter.profile
index 276ab76df..0577fe24f 100644
--- a/etc/profile-a-l/ghostwriter.profile
+++ b/etc/profile-a-l/ghostwriter.profile
@@ -6,10 +6,10 @@ include ghostwriter.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/ghostwriter 9nodeny ${HOME}/.config/ghostwriter
10noblacklist ${HOME}/.local/share/ghostwriter 10nodeny ${HOME}/.local/share/ghostwriter
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12noblacklist ${PICTURES} 12nodeny ${PICTURES}
13 13
14include allow-lua.inc 14include allow-lua.inc
15 15
@@ -22,10 +22,10 @@ include disable-programs.inc
22include disable-shell.inc 22include disable-shell.inc
23include disable-xdg.inc 23include disable-xdg.inc
24 24
25whitelist /usr/share/ghostwriter 25allow /usr/share/ghostwriter
26whitelist /usr/share/mozilla-dicts 26allow /usr/share/mozilla-dicts
27whitelist /usr/share/texlive 27allow /usr/share/texlive
28whitelist /usr/share/pandoc* 28allow /usr/share/pandoc*
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gimp.profile b/etc/profile-a-l/gimp.profile
index dfc1304d1..de9db8d0f 100644
--- a/etc/profile-a-l/gimp.profile
+++ b/etc/profile-a-l/gimp.profile
@@ -18,13 +18,13 @@ include globals.local
18# If you are not using external plugins, you can add 'noexec ${HOME}' to your gimp.local. 18# If you are not using external plugins, you can add 'noexec ${HOME}' to your gimp.local.
19ignore noexec ${HOME} 19ignore noexec ${HOME}
20 20
21noblacklist ${HOME}/.cache/babl 21nodeny ${HOME}/.cache/babl
22noblacklist ${HOME}/.cache/gegl-0.4 22nodeny ${HOME}/.cache/gegl-0.4
23noblacklist ${HOME}/.cache/gimp 23nodeny ${HOME}/.cache/gimp
24noblacklist ${HOME}/.config/GIMP 24nodeny ${HOME}/.config/GIMP
25noblacklist ${HOME}/.gimp* 25nodeny ${HOME}/.gimp*
26noblacklist ${DOCUMENTS} 26nodeny ${DOCUMENTS}
27noblacklist ${PICTURES} 27nodeny ${PICTURES}
28 28
29include disable-common.inc 29include disable-common.inc
30include disable-exec.inc 30include disable-exec.inc
@@ -33,10 +33,10 @@ include disable-passwdmgr.inc
33include disable-programs.inc 33include disable-programs.inc
34include disable-xdg.inc 34include disable-xdg.inc
35 35
36whitelist /usr/share/gegl-0.4 36allow /usr/share/gegl-0.4
37whitelist /usr/share/gimp 37allow /usr/share/gimp
38whitelist /usr/share/mypaint-data 38allow /usr/share/mypaint-data
39whitelist /usr/share/lensfun 39allow /usr/share/lensfun
40include whitelist-usr-share-common.inc 40include whitelist-usr-share-common.inc
41include whitelist-var-common.inc 41include whitelist-var-common.inc
42 42
diff --git a/etc/profile-a-l/gist.profile b/etc/profile-a-l/gist.profile
index 661c3a375..e601d3ab0 100644
--- a/etc/profile-a-l/gist.profile
+++ b/etc/profile-a-l/gist.profile
@@ -7,10 +7,10 @@ include gist.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER}/wayland-* 11deny ${RUNUSER}/wayland-*
12 12
13noblacklist ${HOME}/.gist 13nodeny ${HOME}/.gist
14 14
15# Allow ruby (blacklisted by disable-interpreters.inc) 15# Allow ruby (blacklisted by disable-interpreters.inc)
16include allow-ruby.inc 16include allow-ruby.inc
@@ -24,8 +24,8 @@ include disable-programs.inc
24include disable-xdg.inc 24include disable-xdg.inc
25 25
26mkdir ${HOME}/.gist 26mkdir ${HOME}/.gist
27whitelist ${HOME}/.gist 27allow ${HOME}/.gist
28whitelist ${DOWNLOADS} 28allow ${DOWNLOADS}
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/git-cola.profile b/etc/profile-a-l/git-cola.profile
index 5e4249376..74b7506cf 100644
--- a/etc/profile-a-l/git-cola.profile
+++ b/etc/profile-a-l/git-cola.profile
@@ -8,12 +8,12 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.gitconfig 11nodeny ${HOME}/.gitconfig
12noblacklist ${HOME}/.git-credentials 12nodeny ${HOME}/.git-credentials
13noblacklist ${HOME}/.gnupg 13nodeny ${HOME}/.gnupg
14noblacklist ${HOME}/.subversion 14nodeny ${HOME}/.subversion
15noblacklist ${HOME}/.config/git 15nodeny ${HOME}/.config/git
16noblacklist ${HOME}/.config/git-cola 16nodeny ${HOME}/.config/git-cola
17# Add your editor/diff viewer config paths and the next line to your git-cola.local to load settings. 17# Add your editor/diff viewer config paths and the next line to your git-cola.local to load settings.
18#noblacklist ${HOME}/ 18#noblacklist ${HOME}/
19 19
@@ -32,17 +32,17 @@ include disable-passwdmgr.inc
32include disable-programs.inc 32include disable-programs.inc
33include disable-xdg.inc 33include disable-xdg.inc
34 34
35whitelist ${RUNUSER}/gnupg 35allow ${RUNUSER}/gnupg
36whitelist ${RUNUSER}/keyring 36allow ${RUNUSER}/keyring
37# Add additional whitelist paths below /usr/share to your git-cola.local to support your editor/diff viewer. 37# Add additional whitelist paths below /usr/share to your git-cola.local to support your editor/diff viewer.
38whitelist /usr/share/git 38allow /usr/share/git
39whitelist /usr/share/git-cola 39allow /usr/share/git-cola
40whitelist /usr/share/git-core 40allow /usr/share/git-core
41whitelist /usr/share/git-gui 41allow /usr/share/git-gui
42whitelist /usr/share/gitk 42allow /usr/share/gitk
43whitelist /usr/share/gitweb 43allow /usr/share/gitweb
44whitelist /usr/share/gnupg 44allow /usr/share/gnupg
45whitelist /usr/share/gnupg2 45allow /usr/share/gnupg2
46include whitelist-runuser-common.inc 46include whitelist-runuser-common.inc
47include whitelist-usr-share-common.inc 47include whitelist-usr-share-common.inc
48include whitelist-var-common.inc 48include whitelist-var-common.inc
diff --git a/etc/profile-a-l/git.profile b/etc/profile-a-l/git.profile
index bfa0081c6..680e91085 100644
--- a/etc/profile-a-l/git.profile
+++ b/etc/profile-a-l/git.profile
@@ -7,33 +7,33 @@ include git.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.config/git 10nodeny ${HOME}/.config/git
11noblacklist ${HOME}/.config/nano 11nodeny ${HOME}/.config/nano
12noblacklist ${HOME}/.emacs 12nodeny ${HOME}/.emacs
13noblacklist ${HOME}/.emacs.d 13nodeny ${HOME}/.emacs.d
14noblacklist ${HOME}/.gitconfig 14nodeny ${HOME}/.gitconfig
15noblacklist ${HOME}/.git-credentials 15nodeny ${HOME}/.git-credentials
16noblacklist ${HOME}/.gnupg 16nodeny ${HOME}/.gnupg
17noblacklist ${HOME}/.nanorc 17nodeny ${HOME}/.nanorc
18noblacklist ${HOME}/.vim 18nodeny ${HOME}/.vim
19noblacklist ${HOME}/.viminfo 19nodeny ${HOME}/.viminfo
20 20
21# Allow ssh (blacklisted by disable-common.inc) 21# Allow ssh (blacklisted by disable-common.inc)
22include allow-ssh.inc 22include allow-ssh.inc
23 23
24blacklist /tmp/.X11-unix 24deny /tmp/.X11-unix
25blacklist ${RUNUSER}/wayland-* 25deny ${RUNUSER}/wayland-*
26 26
27include disable-common.inc 27include disable-common.inc
28include disable-exec.inc 28include disable-exec.inc
29include disable-passwdmgr.inc 29include disable-passwdmgr.inc
30include disable-programs.inc 30include disable-programs.inc
31 31
32whitelist /usr/share/git 32allow /usr/share/git
33whitelist /usr/share/git-core 33allow /usr/share/git-core
34whitelist /usr/share/gitgui 34allow /usr/share/gitgui
35whitelist /usr/share/gitweb 35allow /usr/share/gitweb
36whitelist /usr/share/nano 36allow /usr/share/nano
37include whitelist-usr-share-common.inc 37include whitelist-usr-share-common.inc
38include whitelist-var-common.inc 38include whitelist-var-common.inc
39 39
diff --git a/etc/profile-a-l/gitg.profile b/etc/profile-a-l/gitg.profile
index 05d7dffa9..d313b5022 100644
--- a/etc/profile-a-l/gitg.profile
+++ b/etc/profile-a-l/gitg.profile
@@ -6,10 +6,10 @@ include gitg.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/git 9nodeny ${HOME}/.config/git
10noblacklist ${HOME}/.gitconfig 10nodeny ${HOME}/.gitconfig
11noblacklist ${HOME}/.git-credentials 11nodeny ${HOME}/.git-credentials
12noblacklist ${HOME}/.local/share/gitg 12nodeny ${HOME}/.local/share/gitg
13 13
14# Allow ssh (blacklisted by disable-common.inc) 14# Allow ssh (blacklisted by disable-common.inc)
15include allow-ssh.inc 15include allow-ssh.inc
@@ -29,7 +29,7 @@ include disable-programs.inc
29#whitelist ${HOME}/.ssh 29#whitelist ${HOME}/.ssh
30#include whitelist-common.inc 30#include whitelist-common.inc
31 31
32whitelist /usr/share/gitg 32allow /usr/share/gitg
33include whitelist-runuser-common.inc 33include whitelist-runuser-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
diff --git a/etc/profile-a-l/github-desktop.profile b/etc/profile-a-l/github-desktop.profile
index 325c54ced..81b534a74 100644
--- a/etc/profile-a-l/github-desktop.profile
+++ b/etc/profile-a-l/github-desktop.profile
@@ -22,10 +22,10 @@ ignore apparmor
22ignore dbus-user none 22ignore dbus-user none
23ignore dbus-system none 23ignore dbus-system none
24 24
25noblacklist ${HOME}/.config/GitHub Desktop 25nodeny ${HOME}/.config/GitHub Desktop
26noblacklist ${HOME}/.config/git 26nodeny ${HOME}/.config/git
27noblacklist ${HOME}/.gitconfig 27nodeny ${HOME}/.gitconfig
28noblacklist ${HOME}/.git-credentials 28nodeny ${HOME}/.git-credentials
29 29
30# no3d 30# no3d
31nosound 31nosound
diff --git a/etc/profile-a-l/gitter.profile b/etc/profile-a-l/gitter.profile
index 460e2b990..2d1694ef7 100644
--- a/etc/profile-a-l/gitter.profile
+++ b/etc/profile-a-l/gitter.profile
@@ -5,8 +5,8 @@ include gitter.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/autostart 8nodeny ${HOME}/.config/autostart
9noblacklist ${HOME}/.config/Gitter 9nodeny ${HOME}/.config/Gitter
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,9 +16,9 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18mkdir ${HOME}/.config/Gitter 18mkdir ${HOME}/.config/Gitter
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.config/autostart 20allow ${HOME}/.config/autostart
21whitelist ${HOME}/.config/Gitter 21allow ${HOME}/.config/Gitter
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-a-l/gjs.profile b/etc/profile-a-l/gjs.profile
index ed68b3c2d..e00bb1dbf 100644
--- a/etc/profile-a-l/gjs.profile
+++ b/etc/profile-a-l/gjs.profile
@@ -8,10 +8,10 @@ include globals.local
8 8
9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them 9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them
10 10
11noblacklist ${HOME}/.cache/libgweather 11nodeny ${HOME}/.cache/libgweather
12noblacklist ${HOME}/.cache/org.gnome.Books 12nodeny ${HOME}/.cache/org.gnome.Books
13noblacklist ${HOME}/.config/libreoffice 13nodeny ${HOME}/.config/libreoffice
14noblacklist ${HOME}/.local/share/gnome-photos 14nodeny ${HOME}/.local/share/gnome-photos
15 15
16# Allow gjs (blacklisted by disable-interpreters.inc) 16# Allow gjs (blacklisted by disable-interpreters.inc)
17include allow-gjs.inc 17include allow-gjs.inc
diff --git a/etc/profile-a-l/gl-117.profile b/etc/profile-a-l/gl-117.profile
index c8cefc67e..a3236c2be 100644
--- a/etc/profile-a-l/gl-117.profile
+++ b/etc/profile-a-l/gl-117.profile
@@ -6,7 +6,7 @@ include gl-117.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.gl-117 9nodeny ${HOME}/.gl-117
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.gl-117 20mkdir ${HOME}/.gl-117
21whitelist ${HOME}/.gl-117 21allow ${HOME}/.gl-117
22whitelist /usr/share/gl-117 22allow /usr/share/gl-117
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/glaxium.profile b/etc/profile-a-l/glaxium.profile
index ee7af0546..ec894a5f3 100644
--- a/etc/profile-a-l/glaxium.profile
+++ b/etc/profile-a-l/glaxium.profile
@@ -6,7 +6,7 @@ include glaxium.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.glaxiumrc 9nodeny ${HOME}/.glaxiumrc
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkfile ${HOME}/.glaxiumrc 20mkfile ${HOME}/.glaxiumrc
21whitelist ${HOME}/.glaxiumrc 21allow ${HOME}/.glaxiumrc
22whitelist /usr/share/glaxium 22allow /usr/share/glaxium
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/globaltime.profile b/etc/profile-a-l/globaltime.profile
index 14b3ef811..e091b811f 100644
--- a/etc/profile-a-l/globaltime.profile
+++ b/etc/profile-a-l/globaltime.profile
@@ -5,7 +5,7 @@ include globaltime.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/globaltime 8nodeny ${HOME}/.config/globaltime
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-a-l/gmpc.profile b/etc/profile-a-l/gmpc.profile
index b3aad8b2c..79397d28f 100644
--- a/etc/profile-a-l/gmpc.profile
+++ b/etc/profile-a-l/gmpc.profile
@@ -6,8 +6,8 @@ include gmpc.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gmpc 9nodeny ${HOME}/.config/gmpc
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,9 +18,9 @@ include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/gmpc 20mkdir ${HOME}/.config/gmpc
21whitelist ${HOME}/.config/gmpc 21allow ${HOME}/.config/gmpc
22whitelist ${MUSIC} 22allow ${MUSIC}
23whitelist /usr/share/gmpc 23allow /usr/share/gmpc
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-2048.profile b/etc/profile-a-l/gnome-2048.profile
index 777c81dbe..c723f6e46 100644
--- a/etc/profile-a-l/gnome-2048.profile
+++ b/etc/profile-a-l/gnome-2048.profile
@@ -6,10 +6,10 @@ include gnome-2048.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/gnome-2048 9nodeny ${HOME}/.local/share/gnome-2048
10 10
11mkdir ${HOME}/.local/share/gnome-2048 11mkdir ${HOME}/.local/share/gnome-2048
12whitelist ${HOME}/.local/share/gnome-2048 12allow ${HOME}/.local/share/gnome-2048
13 13
14private-bin gnome-2048 14private-bin gnome-2048
15 15
diff --git a/etc/profile-a-l/gnome-books.profile b/etc/profile-a-l/gnome-books.profile
index 34a7f557c..2ed5fa76b 100644
--- a/etc/profile-a-l/gnome-books.profile
+++ b/etc/profile-a-l/gnome-books.profile
@@ -7,8 +7,8 @@ include globals.local
7 7
8# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them 8# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them
9 9
10noblacklist ${HOME}/.cache/org.gnome.Books 10nodeny ${HOME}/.cache/org.gnome.Books
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13# Allow gjs (blacklisted by disable-interpreters.inc) 13# Allow gjs (blacklisted by disable-interpreters.inc)
14include allow-gjs.inc 14include allow-gjs.inc
diff --git a/etc/profile-a-l/gnome-builder.profile b/etc/profile-a-l/gnome-builder.profile
index 37ca5aeff..7dd1c6e22 100644
--- a/etc/profile-a-l/gnome-builder.profile
+++ b/etc/profile-a-l/gnome-builder.profile
@@ -6,11 +6,11 @@ include gnome-builder.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.bash_history 9nodeny ${HOME}/.bash_history
10 10
11noblacklist ${HOME}/.cache/gnome-builder 11nodeny ${HOME}/.cache/gnome-builder
12noblacklist ${HOME}/.config/gnome-builder 12nodeny ${HOME}/.config/gnome-builder
13noblacklist ${HOME}/.local/share/gnome-builder 13nodeny ${HOME}/.local/share/gnome-builder
14 14
15# Allows files commonly used by IDEs 15# Allows files commonly used by IDEs
16include allow-common-devel.inc 16include allow-common-devel.inc
diff --git a/etc/profile-a-l/gnome-calendar.profile b/etc/profile-a-l/gnome-calendar.profile
index eaf25b177..d91fbaa4b 100644
--- a/etc/profile-a-l/gnome-calendar.profile
+++ b/etc/profile-a-l/gnome-calendar.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/libgweather 18allow /usr/share/libgweather
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-runuser-common.inc 20include whitelist-runuser-common.inc
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
@@ -46,7 +46,7 @@ private
46private-bin gnome-calendar 46private-bin gnome-calendar
47private-cache 47private-cache
48private-dev 48private-dev
49private-etc ca-certificates,crypto-policies,dconf,fonts,gtk-3.0,nsswitch.conf,pki,resolv.conf,ssl 49private-etc ca-certificates,crypto-policies,dconf,fonts,gtk-3.0,localtime,nsswitch.conf,pki,resolv.conf,ssl
50private-tmp 50private-tmp
51 51
52dbus-user filter 52dbus-user filter
diff --git a/etc/profile-a-l/gnome-characters.profile b/etc/profile-a-l/gnome-characters.profile
index 741fe9bf7..806d7e571 100644
--- a/etc/profile-a-l/gnome-characters.profile
+++ b/etc/profile-a-l/gnome-characters.profile
@@ -18,7 +18,7 @@ include disable-programs.inc
18include disable-shell.inc 18include disable-shell.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21whitelist /usr/share/org.gnome.Characters 21allow /usr/share/org.gnome.Characters
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-runuser-common.inc 23include whitelist-runuser-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnome-chess.profile b/etc/profile-a-l/gnome-chess.profile
index bd39f625c..095210565 100644
--- a/etc/profile-a-l/gnome-chess.profile
+++ b/etc/profile-a-l/gnome-chess.profile
@@ -6,8 +6,8 @@ include gnome-chess.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gnome-chess 9nodeny ${HOME}/.config/gnome-chess
10noblacklist ${HOME}/.local/share/gnome-chess 10nodeny ${HOME}/.local/share/gnome-chess
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -22,8 +22,8 @@ include disable-xdg.inc
22#whitelist ${HOME}/.local/share/gnome-chess 22#whitelist ${HOME}/.local/share/gnome-chess
23#include whitelist-common.inc 23#include whitelist-common.inc
24 24
25whitelist /usr/share/gnuchess 25allow /usr/share/gnuchess
26whitelist /usr/share/gnome-chess 26allow /usr/share/gnome-chess
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-clocks.profile b/etc/profile-a-l/gnome-clocks.profile
index 1e7c70b84..7e2d458fd 100644
--- a/etc/profile-a-l/gnome-clocks.profile
+++ b/etc/profile-a-l/gnome-clocks.profile
@@ -15,8 +15,8 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/gnome-clocks 18allow /usr/share/gnome-clocks
19whitelist /usr/share/libgweather 19allow /usr/share/libgweather
20include whitelist-common.inc 20include whitelist-common.inc
21include whitelist-runuser-common.inc 21include whitelist-runuser-common.inc
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnome-contacts.profile b/etc/profile-a-l/gnome-contacts.profile
index dcc6163b6..7902fa169 100644
--- a/etc/profile-a-l/gnome-contacts.profile
+++ b/etc/profile-a-l/gnome-contacts.profile
@@ -6,7 +6,7 @@ include gnome-contacts.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/gnome-documents.profile b/etc/profile-a-l/gnome-documents.profile
index 29ad67af8..0f601149f 100644
--- a/etc/profile-a-l/gnome-documents.profile
+++ b/etc/profile-a-l/gnome-documents.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them 9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them
10 10
11noblacklist ${HOME}/.config/libreoffice 11nodeny ${HOME}/.config/libreoffice
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14# Allow gjs (blacklisted by disable-interpreters.inc) 14# Allow gjs (blacklisted by disable-interpreters.inc)
15include allow-gjs.inc 15include allow-gjs.inc
diff --git a/etc/profile-a-l/gnome-hexgl.profile b/etc/profile-a-l/gnome-hexgl.profile
index 2db956faf..50c3e2c6f 100644
--- a/etc/profile-a-l/gnome-hexgl.profile
+++ b/etc/profile-a-l/gnome-hexgl.profile
@@ -16,7 +16,7 @@ include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18mkdir ${HOME}/.cache/mesa_shader_cache 18mkdir ${HOME}/.cache/mesa_shader_cache
19whitelist /usr/share/gnome-hexgl 19allow /usr/share/gnome-hexgl
20include whitelist-runuser-common.inc 20include whitelist-runuser-common.inc
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-keyring.profile b/etc/profile-a-l/gnome-keyring.profile
index 25b4c47de..62a5a34ea 100644
--- a/etc/profile-a-l/gnome-keyring.profile
+++ b/etc/profile-a-l/gnome-keyring.profile
@@ -7,7 +7,7 @@ include gnome-keyring.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.gnupg 10nodeny ${HOME}/.gnupg
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,12 +18,12 @@ include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.gnupg 20mkdir ${HOME}/.gnupg
21whitelist ${HOME}/.gnupg 21allow ${HOME}/.gnupg
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist ${RUNUSER}/gnupg 23allow ${RUNUSER}/gnupg
24whitelist ${RUNUSER}/keyring 24allow ${RUNUSER}/keyring
25whitelist /usr/share/gnupg 25allow /usr/share/gnupg
26whitelist /usr/share/gnupg2 26allow /usr/share/gnupg2
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnome-klotski.profile b/etc/profile-a-l/gnome-klotski.profile
index c67a5c0da..ed074f944 100644
--- a/etc/profile-a-l/gnome-klotski.profile
+++ b/etc/profile-a-l/gnome-klotski.profile
@@ -6,10 +6,10 @@ include gnome-klotski.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/gnome-klotski 9nodeny ${HOME}/.local/share/gnome-klotski
10 10
11mkdir ${HOME}/.local/share/gnome-klotski 11mkdir ${HOME}/.local/share/gnome-klotski
12whitelist ${HOME}/.local/share/gnome-klotski 12allow ${HOME}/.local/share/gnome-klotski
13 13
14private-bin gnome-klotski 14private-bin gnome-klotski
15 15
diff --git a/etc/profile-a-l/gnome-latex.profile b/etc/profile-a-l/gnome-latex.profile
index 1a7eafeca..4a03a7ff5 100644
--- a/etc/profile-a-l/gnome-latex.profile
+++ b/etc/profile-a-l/gnome-latex.profile
@@ -6,8 +6,8 @@ include gnome-latex.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gnome-latex 9nodeny ${HOME}/.config/gnome-latex
10noblacklist ${HOME}/.local/share/gnome-latex 10nodeny ${HOME}/.local/share/gnome-latex
11 11
12# Allow perl (blacklisted by disable-interpreters.inc) 12# Allow perl (blacklisted by disable-interpreters.inc)
13include allow-perl.inc 13include allow-perl.inc
@@ -19,8 +19,8 @@ include disable-interpreters.inc
19include disable-passwdmgr.inc 19include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22whitelist /usr/share/gnome-latex 22allow /usr/share/gnome-latex
23whitelist /usr/share/texlive 23allow /usr/share/texlive
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26# May cause issues. 26# May cause issues.
diff --git a/etc/profile-a-l/gnome-logs.profile b/etc/profile-a-l/gnome-logs.profile
index 9d2ea7b7b..fcc02dc76 100644
--- a/etc/profile-a-l/gnome-logs.profile
+++ b/etc/profile-a-l/gnome-logs.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /var/log/journal 18allow /var/log/journal
19include whitelist-runuser-common.inc 19include whitelist-runuser-common.inc
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-mahjongg.profile b/etc/profile-a-l/gnome-mahjongg.profile
index 42409dce8..e21f03efe 100644
--- a/etc/profile-a-l/gnome-mahjongg.profile
+++ b/etc/profile-a-l/gnome-mahjongg.profile
@@ -6,7 +6,7 @@ include gnome-mahjongg.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9whitelist /usr/share/gnome-mahjongg 9allow /usr/share/gnome-mahjongg
10 10
11private-bin gnome-mahjongg 11private-bin gnome-mahjongg
12 12
diff --git a/etc/profile-a-l/gnome-maps.profile b/etc/profile-a-l/gnome-maps.profile
index cf2ac2f75..cf4eceee3 100644
--- a/etc/profile-a-l/gnome-maps.profile
+++ b/etc/profile-a-l/gnome-maps.profile
@@ -11,13 +11,15 @@ include globals.local
11 11
12# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them 12# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them
13 13
14noblacklist ${HOME}/.cache/champlain 14nodeny ${HOME}/.cache/champlain
15noblacklist ${HOME}/.cache/org.gnome.Maps 15nodeny ${HOME}/.cache/org.gnome.Maps
16noblacklist ${HOME}/.local/share/maps-places.json 16nodeny ${HOME}/.local/share/maps-places.json
17 17
18# Allow gjs (blacklisted by disable-interpreters.inc) 18# Allow gjs (blacklisted by disable-interpreters.inc)
19include allow-gjs.inc 19include allow-gjs.inc
20 20
21deny /usr/libexec
22
21include disable-common.inc 23include disable-common.inc
22include disable-devel.inc 24include disable-devel.inc
23include disable-exec.inc 25include disable-exec.inc
@@ -29,12 +31,12 @@ include disable-xdg.inc
29 31
30mkdir ${HOME}/.cache/champlain 32mkdir ${HOME}/.cache/champlain
31mkfile ${HOME}/.local/share/maps-places.json 33mkfile ${HOME}/.local/share/maps-places.json
32whitelist ${HOME}/.cache/champlain 34allow ${HOME}/.cache/champlain
33whitelist ${HOME}/.local/share/maps-places.json 35allow ${HOME}/.local/share/maps-places.json
34whitelist ${DOWNLOADS} 36allow ${DOWNLOADS}
35whitelist ${PICTURES} 37allow ${PICTURES}
36whitelist /usr/share/gnome-maps 38allow /usr/share/gnome-maps
37whitelist /usr/share/libgweather 39allow /usr/share/libgweather
38include whitelist-common.inc 40include whitelist-common.inc
39include whitelist-runuser-common.inc 41include whitelist-runuser-common.inc
40include whitelist-usr-share-common.inc 42include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnome-mines.profile b/etc/profile-a-l/gnome-mines.profile
index 4fe8986c2..1b2949bc5 100644
--- a/etc/profile-a-l/gnome-mines.profile
+++ b/etc/profile-a-l/gnome-mines.profile
@@ -6,11 +6,11 @@ include gnome-mines.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/gnome-mines 9nodeny ${HOME}/.local/share/gnome-mines
10 10
11mkdir ${HOME}/.local/share/gnome-mines 11mkdir ${HOME}/.local/share/gnome-mines
12whitelist ${HOME}/.local/share/gnome-mines 12allow ${HOME}/.local/share/gnome-mines
13whitelist /usr/share/gnome-mines 13allow /usr/share/gnome-mines
14 14
15private-bin gnome-mines 15private-bin gnome-mines
16 16
diff --git a/etc/profile-a-l/gnome-mplayer.profile b/etc/profile-a-l/gnome-mplayer.profile
index 43fe71f5e..c1cbc796a 100644
--- a/etc/profile-a-l/gnome-mplayer.profile
+++ b/etc/profile-a-l/gnome-mplayer.profile
@@ -6,9 +6,9 @@ include gnome-mplayer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gnome-mplayer 9nodeny ${HOME}/.config/gnome-mplayer
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11noblacklist ${VIDEOS} 11nodeny ${VIDEOS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/gnome-music.profile b/etc/profile-a-l/gnome-music.profile
index 2fcbe9910..8fd0826c4 100644
--- a/etc/profile-a-l/gnome-music.profile
+++ b/etc/profile-a-l/gnome-music.profile
@@ -6,8 +6,8 @@ include gnome-music.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/gnome-music 9nodeny ${HOME}/.local/share/gnome-music
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/gnome-nettool.profile b/etc/profile-a-l/gnome-nettool.profile
index 814751db3..a929582f8 100644
--- a/etc/profile-a-l/gnome-nettool.profile
+++ b/etc/profile-a-l/gnome-nettool.profile
@@ -14,7 +14,7 @@ include disable-passwdmgr.inc
14include disable-programs.inc 14include disable-programs.inc
15include disable-xdg.inc 15include disable-xdg.inc
16 16
17whitelist /usr/share/gnome-nettool 17allow /usr/share/gnome-nettool
18#include whitelist-common.inc -- see #903 18#include whitelist-common.inc -- see #903
19include whitelist-runuser-common.inc 19include whitelist-runuser-common.inc
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnome-nibbles.profile b/etc/profile-a-l/gnome-nibbles.profile
index b22810d34..d4c037a41 100644
--- a/etc/profile-a-l/gnome-nibbles.profile
+++ b/etc/profile-a-l/gnome-nibbles.profile
@@ -9,11 +9,11 @@ include globals.local
9ignore machine-id 9ignore machine-id
10ignore nosound 10ignore nosound
11 11
12noblacklist ${HOME}/.local/share/gnome-nibbles 12nodeny ${HOME}/.local/share/gnome-nibbles
13 13
14mkdir ${HOME}/.local/share/gnome-nibbles 14mkdir ${HOME}/.local/share/gnome-nibbles
15whitelist ${HOME}/.local/share/gnome-nibbles 15allow ${HOME}/.local/share/gnome-nibbles
16whitelist /usr/share/gnome-nibbles 16allow /usr/share/gnome-nibbles
17 17
18private-bin gnome-nibbles 18private-bin gnome-nibbles
19 19
diff --git a/etc/profile-a-l/gnome-passwordsafe.profile b/etc/profile-a-l/gnome-passwordsafe.profile
index 763d67b92..d2cf828cc 100644
--- a/etc/profile-a-l/gnome-passwordsafe.profile
+++ b/etc/profile-a-l/gnome-passwordsafe.profile
@@ -6,13 +6,15 @@ include gnome-passwordsafe.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${HOME}/*.kdb 10nodeny ${HOME}/*.kdb
11noblacklist ${HOME}/*.kdbx 11nodeny ${HOME}/*.kdbx
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python3.inc 14include allow-python3.inc
15 15
16deny /usr/libexec
17
16include disable-common.inc 18include disable-common.inc
17include disable-devel.inc 19include disable-devel.inc
18include disable-exec.inc 20include disable-exec.inc
@@ -22,8 +24,8 @@ include disable-programs.inc
22include disable-shell.inc 24include disable-shell.inc
23include disable-xdg.inc 25include disable-xdg.inc
24 26
25whitelist /usr/share/cracklib 27allow /usr/share/cracklib
26whitelist /usr/share/passwordsafe 28allow /usr/share/passwordsafe
27include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
29include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-photos.profile b/etc/profile-a-l/gnome-photos.profile
index 58bf3f349..3702da2c7 100644
--- a/etc/profile-a-l/gnome-photos.profile
+++ b/etc/profile-a-l/gnome-photos.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them 9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them
10 10
11noblacklist ${HOME}/.local/share/gnome-photos 11nodeny ${HOME}/.local/share/gnome-photos
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/gnome-pie.profile b/etc/profile-a-l/gnome-pie.profile
index 41903b136..e9ae2bcb0 100644
--- a/etc/profile-a-l/gnome-pie.profile
+++ b/etc/profile-a-l/gnome-pie.profile
@@ -6,7 +6,7 @@ include gnome-pie.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gnome-pie 9nodeny ${HOME}/.config/gnome-pie
10 10
11#include disable-common.inc 11#include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/gnome-pomodoro.profile b/etc/profile-a-l/gnome-pomodoro.profile
index c2ba7556d..bec23910c 100644
--- a/etc/profile-a-l/gnome-pomodoro.profile
+++ b/etc/profile-a-l/gnome-pomodoro.profile
@@ -6,7 +6,7 @@ include gnome-pomodoro.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/gnome-pomodoro 9nodeny ${HOME}/.local/share/gnome-pomodoro
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.local/share/gnome-pomodoro 19mkdir ${HOME}/.local/share/gnome-pomodoro
20whitelist ${HOME}/.local/share/gnome-pomodoro 20allow ${HOME}/.local/share/gnome-pomodoro
21whitelist /usr/share/gnome-pomodoro 21allow /usr/share/gnome-pomodoro
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/gnome-recipes.profile b/etc/profile-a-l/gnome-recipes.profile
index 48c98ebe0..5ef33fdd8 100644
--- a/etc/profile-a-l/gnome-recipes.profile
+++ b/etc/profile-a-l/gnome-recipes.profile
@@ -7,8 +7,8 @@ include gnome-recipes.local
7include globals.local 7include globals.local
8 8
9 9
10noblacklist ${HOME}/.cache/gnome-recipes 10nodeny ${HOME}/.cache/gnome-recipes
11noblacklist ${HOME}/.local/share/gnome-recipes 11nodeny ${HOME}/.local/share/gnome-recipes
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-shell.inc
20 20
21mkdir ${HOME}/.cache/gnome-recipes 21mkdir ${HOME}/.cache/gnome-recipes
22mkdir ${HOME}/.local/share/gnome-recipes 22mkdir ${HOME}/.local/share/gnome-recipes
23whitelist ${HOME}/.cache/gnome-recipes 23allow ${HOME}/.cache/gnome-recipes
24whitelist ${HOME}/.local/share/gnome-recipes 24allow ${HOME}/.local/share/gnome-recipes
25whitelist /usr/share/gnome-recipes 25allow /usr/share/gnome-recipes
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-ring.profile b/etc/profile-a-l/gnome-ring.profile
index 78ceb9c4f..b34d264f4 100644
--- a/etc/profile-a-l/gnome-ring.profile
+++ b/etc/profile-a-l/gnome-ring.profile
@@ -5,7 +5,7 @@ include gnome-ring.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.local/share/gnome-ring 8nodeny ${HOME}/.local/share/gnome-ring
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-a-l/gnome-robots.profile b/etc/profile-a-l/gnome-robots.profile
index 8835f2b93..836d4e2b2 100644
--- a/etc/profile-a-l/gnome-robots.profile
+++ b/etc/profile-a-l/gnome-robots.profile
@@ -9,7 +9,7 @@ include globals.local
9ignore machine-id 9ignore machine-id
10ignore nosound 10ignore nosound
11 11
12whitelist /usr/share/gnome-robots 12allow /usr/share/gnome-robots
13 13
14private-bin gnome-robots 14private-bin gnome-robots
15 15
diff --git a/etc/profile-a-l/gnome-schedule.profile b/etc/profile-a-l/gnome-schedule.profile
index 69c90b33d..146f8bc4e 100644
--- a/etc/profile-a-l/gnome-schedule.profile
+++ b/etc/profile-a-l/gnome-schedule.profile
@@ -6,17 +6,17 @@ include gnome-schedule.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.gnome/gnome-schedule 9nodeny ${HOME}/.gnome/gnome-schedule
10 10
11# Needs at and crontab to read/write user cron 11# Needs at and crontab to read/write user cron
12noblacklist ${PATH}/at 12nodeny ${PATH}/at
13noblacklist ${PATH}/crontab 13nodeny ${PATH}/crontab
14 14
15# Needs access to these files/dirs 15# Needs access to these files/dirs
16noblacklist /etc/cron.allow 16nodeny /etc/cron.allow
17noblacklist /etc/cron.deny 17nodeny /etc/cron.deny
18noblacklist /etc/shadow 18nodeny /etc/shadow
19noblacklist /var/spool/cron 19nodeny /var/spool/cron
20 20
21# cron job testing needs a terminal, resulting in sandbox escape (see disable-common.inc) 21# cron job testing needs a terminal, resulting in sandbox escape (see disable-common.inc)
22# add 'noblacklist ${PATH}/your-terminal' to gnome-schedule.local if you need that functionality 22# add 'noblacklist ${PATH}/your-terminal' to gnome-schedule.local if you need that functionality
@@ -34,10 +34,10 @@ include disable-programs.inc
34include disable-xdg.inc 34include disable-xdg.inc
35 35
36mkfile ${HOME}/.gnome/gnome-schedule 36mkfile ${HOME}/.gnome/gnome-schedule
37whitelist ${HOME}/.gnome/gnome-schedule 37allow ${HOME}/.gnome/gnome-schedule
38whitelist /usr/share/gnome-schedule 38allow /usr/share/gnome-schedule
39whitelist /var/spool/atd 39allow /var/spool/atd
40whitelist /var/spool/cron 40allow /var/spool/cron
41include whitelist-common.inc 41include whitelist-common.inc
42include whitelist-runuser-common.inc 42include whitelist-runuser-common.inc
43include whitelist-usr-share-common.inc 43include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnome-screenshot.profile b/etc/profile-a-l/gnome-screenshot.profile
index b683b6f6c..175549e99 100644
--- a/etc/profile-a-l/gnome-screenshot.profile
+++ b/etc/profile-a-l/gnome-screenshot.profile
@@ -6,8 +6,8 @@ include gnome-screenshot.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10noblacklist ${HOME}/.cache/gnome-screenshot 10nodeny ${HOME}/.cache/gnome-screenshot
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/gnome-sound-recorder.profile b/etc/profile-a-l/gnome-sound-recorder.profile
index 34f5fdeff..c2fb14fa4 100644
--- a/etc/profile-a-l/gnome-sound-recorder.profile
+++ b/etc/profile-a-l/gnome-sound-recorder.profile
@@ -6,8 +6,8 @@ include gnome-sound-recorder.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10noblacklist ${HOME}/.local/share/Trash 10nodeny ${HOME}/.local/share/Trash
11 11
12# Allow gjs (blacklisted by disable-interpreters.inc) 12# Allow gjs (blacklisted by disable-interpreters.inc)
13include allow-gjs.inc 13include allow-gjs.inc
diff --git a/etc/profile-a-l/gnome-sudoku.profile b/etc/profile-a-l/gnome-sudoku.profile
index 12fd48a86..3b7835e52 100644
--- a/etc/profile-a-l/gnome-sudoku.profile
+++ b/etc/profile-a-l/gnome-sudoku.profile
@@ -6,10 +6,10 @@ include gnome-sudoku.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/gnome-sudoku 9nodeny ${HOME}/.local/share/gnome-sudoku
10 10
11mkdir ${HOME}/.local/share/gnome-sudoku 11mkdir ${HOME}/.local/share/gnome-sudoku
12whitelist ${HOME}/.local/share/gnome-sudoku 12allow ${HOME}/.local/share/gnome-sudoku
13 13
14private-bin gnome-sudoku 14private-bin gnome-sudoku
15 15
diff --git a/etc/profile-a-l/gnome-system-log.profile b/etc/profile-a-l/gnome-system-log.profile
index 8a818695d..6978f7cab 100644
--- a/etc/profile-a-l/gnome-system-log.profile
+++ b/etc/profile-a-l/gnome-system-log.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /var/log 18allow /var/log
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gnome-taquin.profile b/etc/profile-a-l/gnome-taquin.profile
index 2341334f7..ac87cf70f 100644
--- a/etc/profile-a-l/gnome-taquin.profile
+++ b/etc/profile-a-l/gnome-taquin.profile
@@ -9,7 +9,7 @@ include globals.local
9ignore machine-id 9ignore machine-id
10ignore nosound 10ignore nosound
11 11
12whitelist /usr/share/gnome-taquin 12allow /usr/share/gnome-taquin
13 13
14private-bin gnome-taquin 14private-bin gnome-taquin
15 15
diff --git a/etc/profile-a-l/gnome-todo.profile b/etc/profile-a-l/gnome-todo.profile
index 3b147cd48..092fd58a3 100644
--- a/etc/profile-a-l/gnome-todo.profile
+++ b/etc/profile-a-l/gnome-todo.profile
@@ -18,7 +18,7 @@ include disable-programs.inc
18include disable-shell.inc 18include disable-shell.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21whitelist /usr/share/gnome-todo 21allow /usr/share/gnome-todo
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/gnome-twitch.profile b/etc/profile-a-l/gnome-twitch.profile
index b8ec195d3..d76872ea6 100644
--- a/etc/profile-a-l/gnome-twitch.profile
+++ b/etc/profile-a-l/gnome-twitch.profile
@@ -6,8 +6,8 @@ include gnome-twitch.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/gnome-twitch 9nodeny ${HOME}/.cache/gnome-twitch
10noblacklist ${HOME}/.local/share/gnome-twitch 10nodeny ${HOME}/.local/share/gnome-twitch
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-programs.inc
18 18
19mkdir ${HOME}/.cache/gnome-twitch 19mkdir ${HOME}/.cache/gnome-twitch
20mkdir ${HOME}/.local/share/gnome-twitch 20mkdir ${HOME}/.local/share/gnome-twitch
21whitelist ${HOME}/.cache/gnome-twitch 21allow ${HOME}/.cache/gnome-twitch
22whitelist ${HOME}/.local/share/gnome-twitch 22allow ${HOME}/.local/share/gnome-twitch
23include whitelist-common.inc 23include whitelist-common.inc
24 24
25caps.drop all 25caps.drop all
diff --git a/etc/profile-a-l/gnome-weather.profile b/etc/profile-a-l/gnome-weather.profile
index 2e08fa41d..6f557ff8d 100644
--- a/etc/profile-a-l/gnome-weather.profile
+++ b/etc/profile-a-l/gnome-weather.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them 9# when gjs apps are started via gnome-shell, firejail is not applied because systemd will start them
10 10
11noblacklist ${HOME}/.cache/libgweather 11nodeny ${HOME}/.cache/libgweather
12 12
13# Allow gjs (blacklisted by disable-interpreters.inc) 13# Allow gjs (blacklisted by disable-interpreters.inc)
14include allow-gjs.inc 14include allow-gjs.inc
diff --git a/etc/profile-a-l/gnote.profile b/etc/profile-a-l/gnote.profile
index c3014a288..261efefac 100644
--- a/etc/profile-a-l/gnote.profile
+++ b/etc/profile-a-l/gnote.profile
@@ -6,8 +6,8 @@ include gnote.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gnote 9nodeny ${HOME}/.config/gnote
10noblacklist ${HOME}/.local/share/gnote 10nodeny ${HOME}/.local/share/gnote
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-xdg.inc
20 20
21mkdir ${HOME}/.config/gnote 21mkdir ${HOME}/.config/gnote
22mkdir ${HOME}/.local/share/gnote 22mkdir ${HOME}/.local/share/gnote
23whitelist ${HOME}/.config/gnote 23allow ${HOME}/.config/gnote
24whitelist ${HOME}/.local/share/gnote 24allow ${HOME}/.local/share/gnote
25whitelist /usr/share/gnote 25allow /usr/share/gnote
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gnubik.profile b/etc/profile-a-l/gnubik.profile
index 22851ce9f..e6fbca26f 100644
--- a/etc/profile-a-l/gnubik.profile
+++ b/etc/profile-a-l/gnubik.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/gnubik 18allow /usr/share/gnubik
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-runuser-common.inc 20include whitelist-runuser-common.inc
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/godot.profile b/etc/profile-a-l/godot.profile
index 09ca17caa..f35a53ca4 100644
--- a/etc/profile-a-l/godot.profile
+++ b/etc/profile-a-l/godot.profile
@@ -6,9 +6,9 @@ include godot.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/godot 9nodeny ${HOME}/.cache/godot
10noblacklist ${HOME}/.config/godot 10nodeny ${HOME}/.config/godot
11noblacklist ${HOME}/.local/share/godot 11nodeny ${HOME}/.local/share/godot
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/goobox.profile b/etc/profile-a-l/goobox.profile
index 8399d77c4..95dd41c2a 100644
--- a/etc/profile-a-l/goobox.profile
+++ b/etc/profile-a-l/goobox.profile
@@ -6,7 +6,7 @@ include goobox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/google-chrome-beta.profile b/etc/profile-a-l/google-chrome-beta.profile
index ebe5e870b..07f0e587d 100644
--- a/etc/profile-a-l/google-chrome-beta.profile
+++ b/etc/profile-a-l/google-chrome-beta.profile
@@ -10,19 +10,19 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/google-chrome-beta 13nodeny ${HOME}/.cache/google-chrome-beta
14noblacklist ${HOME}/.config/google-chrome-beta 14nodeny ${HOME}/.config/google-chrome-beta
15 15
16noblacklist ${HOME}/.config/chrome-beta-flags.conf 16nodeny ${HOME}/.config/chrome-beta-flags.conf
17noblacklist ${HOME}/.config/chrome-beta-flags.config 17nodeny ${HOME}/.config/chrome-beta-flags.config
18 18
19mkdir ${HOME}/.cache/google-chrome-beta 19mkdir ${HOME}/.cache/google-chrome-beta
20mkdir ${HOME}/.config/google-chrome-beta 20mkdir ${HOME}/.config/google-chrome-beta
21whitelist ${HOME}/.cache/google-chrome-beta 21allow ${HOME}/.cache/google-chrome-beta
22whitelist ${HOME}/.config/google-chrome-beta 22allow ${HOME}/.config/google-chrome-beta
23 23
24whitelist ${HOME}/.config/chrome-beta-flags.conf 24allow ${HOME}/.config/chrome-beta-flags.conf
25whitelist ${HOME}/.config/chrome-beta-flags.config 25allow ${HOME}/.config/chrome-beta-flags.config
26 26
27# Redirect 27# Redirect
28include chromium-common.profile 28include chromium-common.profile
diff --git a/etc/profile-a-l/google-chrome-unstable.profile b/etc/profile-a-l/google-chrome-unstable.profile
index 4d303f71b..229904411 100644
--- a/etc/profile-a-l/google-chrome-unstable.profile
+++ b/etc/profile-a-l/google-chrome-unstable.profile
@@ -10,19 +10,19 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/google-chrome-unstable 13nodeny ${HOME}/.cache/google-chrome-unstable
14noblacklist ${HOME}/.config/google-chrome-unstable 14nodeny ${HOME}/.config/google-chrome-unstable
15 15
16noblacklist ${HOME}/.config/chrome-unstable-flags.conf 16nodeny ${HOME}/.config/chrome-unstable-flags.conf
17noblacklist ${HOME}/.config/chrome-unstable-flags.config 17nodeny ${HOME}/.config/chrome-unstable-flags.config
18 18
19mkdir ${HOME}/.cache/google-chrome-unstable 19mkdir ${HOME}/.cache/google-chrome-unstable
20mkdir ${HOME}/.config/google-chrome-unstable 20mkdir ${HOME}/.config/google-chrome-unstable
21whitelist ${HOME}/.cache/google-chrome-unstable 21allow ${HOME}/.cache/google-chrome-unstable
22whitelist ${HOME}/.config/google-chrome-unstable 22allow ${HOME}/.config/google-chrome-unstable
23 23
24whitelist ${HOME}/.config/chrome-unstable-flags.conf 24allow ${HOME}/.config/chrome-unstable-flags.conf
25whitelist ${HOME}/.config/chrome-unstable-flags.config 25allow ${HOME}/.config/chrome-unstable-flags.config
26 26
27# Redirect 27# Redirect
28include chromium-common.profile 28include chromium-common.profile
diff --git a/etc/profile-a-l/google-chrome.profile b/etc/profile-a-l/google-chrome.profile
index ed2595f72..f61642f17 100644
--- a/etc/profile-a-l/google-chrome.profile
+++ b/etc/profile-a-l/google-chrome.profile
@@ -10,19 +10,19 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/google-chrome 13nodeny ${HOME}/.cache/google-chrome
14noblacklist ${HOME}/.config/google-chrome 14nodeny ${HOME}/.config/google-chrome
15 15
16noblacklist ${HOME}/.config/chrome-flags.conf 16nodeny ${HOME}/.config/chrome-flags.conf
17noblacklist ${HOME}/.config/chrome-flags.config 17nodeny ${HOME}/.config/chrome-flags.config
18 18
19mkdir ${HOME}/.cache/google-chrome 19mkdir ${HOME}/.cache/google-chrome
20mkdir ${HOME}/.config/google-chrome 20mkdir ${HOME}/.config/google-chrome
21whitelist ${HOME}/.cache/google-chrome 21allow ${HOME}/.cache/google-chrome
22whitelist ${HOME}/.config/google-chrome 22allow ${HOME}/.config/google-chrome
23 23
24whitelist ${HOME}/.config/chrome-flags.conf 24allow ${HOME}/.config/chrome-flags.conf
25whitelist ${HOME}/.config/chrome-flags.config 25allow ${HOME}/.config/chrome-flags.config
26 26
27# Redirect 27# Redirect
28include chromium-common.profile 28include chromium-common.profile
diff --git a/etc/profile-a-l/google-earth.profile b/etc/profile-a-l/google-earth.profile
index 65ac04771..6039f7cbd 100644
--- a/etc/profile-a-l/google-earth.profile
+++ b/etc/profile-a-l/google-earth.profile
@@ -5,8 +5,8 @@ include google-earth.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/Google 8nodeny ${HOME}/.config/Google
9noblacklist ${HOME}/.googleearth 9nodeny ${HOME}/.googleearth
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17 17
18mkdir ${HOME}/.config/Google 18mkdir ${HOME}/.config/Google
19mkdir ${HOME}/.googleearth 19mkdir ${HOME}/.googleearth
20whitelist ${HOME}/.config/Google 20allow ${HOME}/.config/Google
21whitelist ${HOME}/.googleearth 21allow ${HOME}/.googleearth
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-a-l/google-play-music-desktop-player.profile b/etc/profile-a-l/google-play-music-desktop-player.profile
index a7aabe105..fdb65b93c 100644
--- a/etc/profile-a-l/google-play-music-desktop-player.profile
+++ b/etc/profile-a-l/google-play-music-desktop-player.profile
@@ -8,7 +8,7 @@ include globals.local
8# noexec /tmp breaks mpris support 8# noexec /tmp breaks mpris support
9ignore noexec /tmp 9ignore noexec /tmp
10 10
11noblacklist ${HOME}/.config/Google Play Music Desktop Player 11nodeny ${HOME}/.config/Google Play Music Desktop Player
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -20,7 +20,7 @@ include disable-programs.inc
20mkdir ${HOME}/.config/Google Play Music Desktop Player 20mkdir ${HOME}/.config/Google Play Music Desktop Player
21# whitelist ${HOME}/.config/pulse 21# whitelist ${HOME}/.config/pulse
22# whitelist ${HOME}/.pulse 22# whitelist ${HOME}/.pulse
23whitelist ${HOME}/.config/Google Play Music Desktop Player 23allow ${HOME}/.config/Google Play Music Desktop Player
24include whitelist-common.inc 24include whitelist-common.inc
25 25
26caps.drop all 26caps.drop all
diff --git a/etc/profile-a-l/googler-common.profile b/etc/profile-a-l/googler-common.profile
new file mode 100644
index 000000000..952c9c1d4
--- /dev/null
+++ b/etc/profile-a-l/googler-common.profile
@@ -0,0 +1,62 @@
1# Firejail profile for googler clones
2# Description: common profile for googler clones
3# This file is overwritten after every install/update
4# Persistent local customizations
5include googler-common.local
6# Persistent global definitions
7# added by caller profile
8#include globals.local
9
10deny /tmp/.X11-unix
11deny ${RUNUSER}
12
13nodeny ${HOME}/.w3m
14
15# Allow /bin/sh (blacklisted by disable-shell.inc)
16include allow-bin-sh.inc
17# Allow python (blacklisted by disable-interpreters.inc)
18include allow-python3.inc
19
20include disable-common.inc
21include disable-devel.inc
22include disable-exec.inc
23include disable-interpreters.inc
24include disable-passwdmgr.inc
25include disable-programs.inc
26include disable-shell.inc
27include disable-xdg.inc
28
29allow ${HOME}/.w3m
30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc
32
33apparmor
34caps.drop all
35ipc-namespace
36machine-id
37netfilter
38no3d
39nodvd
40nogroups
41noinput
42nonewprivs
43noroot
44nosound
45notv
46nou2f
47novideo
48protocol unix,inet,inet6
49seccomp
50seccomp.block-secondary
51shell none
52tracelog
53
54disable-mnt
55private-bin env,python3*,sh,w3m
56private-cache
57private-dev
58private-etc ca-certificates,crypto-policies,host.conf,hostname,hosts,nsswitch.conf,pki,protocols,resolv.conf,rpc,services,ssl
59private-tmp
60
61dbus-user none
62dbus-system none
diff --git a/etc/profile-a-l/googler.profile b/etc/profile-a-l/googler.profile
new file mode 100644
index 000000000..9d67006f6
--- /dev/null
+++ b/etc/profile-a-l/googler.profile
@@ -0,0 +1,13 @@
1# Firejail profile for googler
2# Description: Search Google from your terminal
3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations
6include googler.local
7# Persistent global definitions
8include globals.local
9
10private-bin googler
11
12# Redirect
13include googler-common.profile
diff --git a/etc/profile-a-l/gpa.profile b/etc/profile-a-l/gpa.profile
index 37b4f0b1c..9b8da361b 100644
--- a/etc/profile-a-l/gpa.profile
+++ b/etc/profile-a-l/gpa.profile
@@ -6,7 +6,7 @@ include gpa.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.gnupg 9nodeny ${HOME}/.gnupg
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/gpg-agent.profile b/etc/profile-a-l/gpg-agent.profile
index 7f0b614b1..5fa66bb55 100644
--- a/etc/profile-a-l/gpg-agent.profile
+++ b/etc/profile-a-l/gpg-agent.profile
@@ -7,10 +7,10 @@ include gpg-agent.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.gnupg 10nodeny ${HOME}/.gnupg
11 11
12blacklist /tmp/.X11-unix 12deny /tmp/.X11-unix
13blacklist ${RUNUSER}/wayland-* 13deny ${RUNUSER}/wayland-*
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -20,11 +20,11 @@ include disable-programs.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.gnupg 22mkdir ${HOME}/.gnupg
23whitelist ${HOME}/.gnupg 23allow ${HOME}/.gnupg
24whitelist ${RUNUSER}/gnupg 24allow ${RUNUSER}/gnupg
25whitelist ${RUNUSER}/keyring 25allow ${RUNUSER}/keyring
26whitelist /usr/share/gnupg 26allow /usr/share/gnupg
27whitelist /usr/share/gnupg2 27allow /usr/share/gnupg2
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gpg.profile b/etc/profile-a-l/gpg.profile
index 4a4d6527c..2ad896abe 100644
--- a/etc/profile-a-l/gpg.profile
+++ b/etc/profile-a-l/gpg.profile
@@ -7,10 +7,10 @@ include gpg.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.gnupg 10nodeny ${HOME}/.gnupg
11 11
12blacklist /tmp/.X11-unix 12deny /tmp/.X11-unix
13blacklist ${RUNUSER}/wayland-* 13deny ${RUNUSER}/wayland-*
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -18,11 +18,11 @@ include disable-interpreters.inc
18include disable-passwdmgr.inc 18include disable-passwdmgr.inc
19include disable-programs.inc 19include disable-programs.inc
20 20
21whitelist ${RUNUSER}/gnupg 21allow ${RUNUSER}/gnupg
22whitelist ${RUNUSER}/keyring 22allow ${RUNUSER}/keyring
23whitelist /usr/share/gnupg 23allow /usr/share/gnupg
24whitelist /usr/share/gnupg2 24allow /usr/share/gnupg2
25whitelist /usr/share/pacman/keyrings 25allow /usr/share/pacman/keyrings
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gpicview.profile b/etc/profile-a-l/gpicview.profile
index fa53c26c8..0552dc3d7 100644
--- a/etc/profile-a-l/gpicview.profile
+++ b/etc/profile-a-l/gpicview.profile
@@ -6,7 +6,7 @@ include gpicview.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gpicview 9nodeny ${HOME}/.config/gpicview
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19whitelist /usr/share/gpicview 19allow /usr/share/gpicview
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
22 22
diff --git a/etc/profile-a-l/gpredict.profile b/etc/profile-a-l/gpredict.profile
index 253d644f1..c9e62a73f 100644
--- a/etc/profile-a-l/gpredict.profile
+++ b/etc/profile-a-l/gpredict.profile
@@ -6,7 +6,7 @@ include gpredict.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Gpredict 9nodeny ${HOME}/.config/Gpredict
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19mkdir ${HOME}/.config/Gpredict 19mkdir ${HOME}/.config/Gpredict
20whitelist ${HOME}/.config/Gpredict 20allow ${HOME}/.config/Gpredict
21include whitelist-common.inc 21include whitelist-common.inc
22 22
23caps.drop all 23caps.drop all
diff --git a/etc/profile-a-l/gradio.profile b/etc/profile-a-l/gradio.profile
index 2b4c536d2..2aebe2338 100644
--- a/etc/profile-a-l/gradio.profile
+++ b/etc/profile-a-l/gradio.profile
@@ -5,8 +5,8 @@ include gradio.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/gradio 8nodeny ${HOME}/.cache/gradio
9noblacklist ${HOME}/.local/share/gradio 9nodeny ${HOME}/.local/share/gradio
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-xdg.inc
18 18
19mkdir ${HOME}/.cache/gradio 19mkdir ${HOME}/.cache/gradio
20mkdir ${HOME}/.local/share/gradio 20mkdir ${HOME}/.local/share/gradio
21whitelist ${HOME}/.cache/gradio 21allow ${HOME}/.cache/gradio
22whitelist ${HOME}/.local/share/gradio 22allow ${HOME}/.local/share/gradio
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gramps.profile b/etc/profile-a-l/gramps.profile
index c7e0c2977..53f0baccb 100644
--- a/etc/profile-a-l/gramps.profile
+++ b/etc/profile-a-l/gramps.profile
@@ -6,7 +6,7 @@ include gramps.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.gramps 9nodeny ${HOME}/.gramps
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12#include allow-python2.inc 12#include allow-python2.inc
@@ -21,7 +21,7 @@ include disable-programs.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.gramps 23mkdir ${HOME}/.gramps
24whitelist ${HOME}/.gramps 24allow ${HOME}/.gramps
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-a-l/gravity-beams-and-evaporating-stars.profile b/etc/profile-a-l/gravity-beams-and-evaporating-stars.profile
index 890ba2560..ecc871c2e 100644
--- a/etc/profile-a-l/gravity-beams-and-evaporating-stars.profile
+++ b/etc/profile-a-l/gravity-beams-and-evaporating-stars.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/gravity-beams-and-evaporating-stars 18allow /usr/share/gravity-beams-and-evaporating-stars
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
diff --git a/etc/profile-a-l/gthumb.profile b/etc/profile-a-l/gthumb.profile
index 5927e8c4d..9a4f7b4fb 100644
--- a/etc/profile-a-l/gthumb.profile
+++ b/etc/profile-a-l/gthumb.profile
@@ -6,9 +6,9 @@ include gthumb.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/gthumb 9nodeny ${HOME}/.config/gthumb
10noblacklist ${HOME}/.Steam 10nodeny ${HOME}/.Steam
11noblacklist ${HOME}/.steam 11nodeny ${HOME}/.steam
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/gtk-pipe-viewer.profile b/etc/profile-a-l/gtk-pipe-viewer.profile
new file mode 100644
index 000000000..9c212ff6e
--- /dev/null
+++ b/etc/profile-a-l/gtk-pipe-viewer.profile
@@ -0,0 +1,12 @@
1# Firejail profile for gtk-pipe-viewer
2# Description: Gtk front-end to pipe-viewer
3# This file is overwritten after every install/update
4# Persistent local customizations
5include gtk-pipe-viewer.local
6# added by included profile
7#include globals.local
8
9ignore quiet
10
11# Redirect
12include pipe-viewer.profile
diff --git a/etc/profile-a-l/gtk-straw-viewer.profile b/etc/profile-a-l/gtk-straw-viewer.profile
index e2721360b..978b3d896 100644
--- a/etc/profile-a-l/gtk-straw-viewer.profile
+++ b/etc/profile-a-l/gtk-straw-viewer.profile
@@ -8,7 +8,5 @@ include gtk-straw-viewer.local
8 8
9ignore quiet 9ignore quiet
10 10
11include whitelist-runuser-common.inc
12
13# Redirect 11# Redirect
14include straw-viewer.profile 12include straw-viewer.profile
diff --git a/etc/profile-a-l/gtk-update-icon-cache.profile b/etc/profile-a-l/gtk-update-icon-cache.profile
index c8addae75..d6bb9902a 100644
--- a/etc/profile-a-l/gtk-update-icon-cache.profile
+++ b/etc/profile-a-l/gtk-update-icon-cache.profile
@@ -7,7 +7,7 @@ include gtk-update-icon-cache.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/gtk-youtube-viewer.profile b/etc/profile-a-l/gtk-youtube-viewer.profile
index 848979b52..c814f0fef 100644
--- a/etc/profile-a-l/gtk-youtube-viewer.profile
+++ b/etc/profile-a-l/gtk-youtube-viewer.profile
@@ -8,7 +8,5 @@ include gtk-youtube-viewer.local
8 8
9ignore quiet 9ignore quiet
10 10
11include whitelist-runuser-common.inc
12
13# Redirect 11# Redirect
14include youtube-viewer.profile 12include youtube-viewer.profile
diff --git a/etc/profile-a-l/gtk2-youtube-viewer.profile b/etc/profile-a-l/gtk2-youtube-viewer.profile
index 787c7bd90..8241de43a 100644
--- a/etc/profile-a-l/gtk2-youtube-viewer.profile
+++ b/etc/profile-a-l/gtk2-youtube-viewer.profile
@@ -8,8 +8,8 @@ include gtk2-youtube-viewer.local
8 8
9ignore quiet 9ignore quiet
10 10
11noblacklist /tmp/.X11-unix 11nodeny /tmp/.X11-unix
12noblacklist ${RUNUSER} 12nodeny ${RUNUSER}
13 13
14include whitelist-runuser-common.inc 14include whitelist-runuser-common.inc
15 15
diff --git a/etc/profile-a-l/gtk3-youtube-viewer.profile b/etc/profile-a-l/gtk3-youtube-viewer.profile
index 988882622..6ea4ebbdc 100644
--- a/etc/profile-a-l/gtk3-youtube-viewer.profile
+++ b/etc/profile-a-l/gtk3-youtube-viewer.profile
@@ -8,8 +8,8 @@ include gtk3-youtube-viewer.local
8 8
9ignore quiet 9ignore quiet
10 10
11noblacklist /tmp/.X11-unix 11nodeny /tmp/.X11-unix
12noblacklist ${RUNUSER} 12nodeny ${RUNUSER}
13 13
14include whitelist-runuser-common.inc 14include whitelist-runuser-common.inc
15 15
diff --git a/etc/profile-a-l/guayadeque.profile b/etc/profile-a-l/guayadeque.profile
index 3d2b71e9d..731bcad1d 100644
--- a/etc/profile-a-l/guayadeque.profile
+++ b/etc/profile-a-l/guayadeque.profile
@@ -5,8 +5,8 @@ include guayadeque.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.guayadeque 8nodeny ${HOME}/.guayadeque
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/gummi.profile b/etc/profile-a-l/gummi.profile
index 2223c37a1..5cdc2cc18 100644
--- a/etc/profile-a-l/gummi.profile
+++ b/etc/profile-a-l/gummi.profile
@@ -5,8 +5,8 @@ include gummi.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/gummi 8nodeny ${HOME}/.cache/gummi
9noblacklist ${HOME}/.config/gummi 9nodeny ${HOME}/.config/gummi
10 10
11# Allow lua (blacklisted by disable-interpreters.inc) 11# Allow lua (blacklisted by disable-interpreters.inc)
12include allow-lua.inc 12include allow-lua.inc
diff --git a/etc/profile-a-l/gunzip.profile b/etc/profile-a-l/gunzip.profile
index 6e97c6b78..584d88f85 100644
--- a/etc/profile-a-l/gunzip.profile
+++ b/etc/profile-a-l/gunzip.profile
@@ -7,5 +7,7 @@ include gunzip.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10include allow-bin-sh.inc
11
10# Redirect 12# Redirect
11include gzip.profile 13include gzip.profile
diff --git a/etc/profile-a-l/guvcview.profile b/etc/profile-a-l/guvcview.profile
index 9221ca31c..3404f5177 100644
--- a/etc/profile-a-l/guvcview.profile
+++ b/etc/profile-a-l/guvcview.profile
@@ -6,10 +6,10 @@ include guvcview.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/guvcview2 9nodeny ${HOME}/.config/guvcview2
10 10
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12noblacklist ${VIDEOS} 12nodeny ${VIDEOS}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -21,9 +21,9 @@ include disable-shell.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.config/guvcview2 23mkdir ${HOME}/.config/guvcview2
24whitelist ${HOME}/.config/guvcview2 24allow ${HOME}/.config/guvcview2
25whitelist ${PICTURES} 25allow ${PICTURES}
26whitelist ${VIDEOS} 26allow ${VIDEOS}
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/gwenview.profile b/etc/profile-a-l/gwenview.profile
index d33e2a673..132b5a2e2 100644
--- a/etc/profile-a-l/gwenview.profile
+++ b/etc/profile-a-l/gwenview.profile
@@ -6,17 +6,17 @@ include gwenview.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/GIMP 9nodeny ${HOME}/.config/GIMP
10noblacklist ${HOME}/.config/gwenviewrc 10nodeny ${HOME}/.config/gwenviewrc
11noblacklist ${HOME}/.config/org.kde.gwenviewrc 11nodeny ${HOME}/.config/org.kde.gwenviewrc
12noblacklist ${HOME}/.gimp* 12nodeny ${HOME}/.gimp*
13noblacklist ${HOME}/.kde/share/apps/gwenview 13nodeny ${HOME}/.kde/share/apps/gwenview
14noblacklist ${HOME}/.kde/share/config/gwenviewrc 14nodeny ${HOME}/.kde/share/config/gwenviewrc
15noblacklist ${HOME}/.kde4/share/apps/gwenview 15nodeny ${HOME}/.kde4/share/apps/gwenview
16noblacklist ${HOME}/.kde4/share/config/gwenviewrc 16nodeny ${HOME}/.kde4/share/config/gwenviewrc
17noblacklist ${HOME}/.local/share/gwenview 17nodeny ${HOME}/.local/share/gwenview
18noblacklist ${HOME}/.local/share/kxmlgui5/gwenview 18nodeny ${HOME}/.local/share/kxmlgui5/gwenview
19noblacklist ${HOME}/.local/share/org.kde.gwenview 19nodeny ${HOME}/.local/share/org.kde.gwenview
20 20
21include disable-common.inc 21include disable-common.inc
22include disable-devel.inc 22include disable-devel.inc
diff --git a/etc/profile-a-l/gzip.profile b/etc/profile-a-l/gzip.profile
index b261c16f4..46c98bdc2 100644
--- a/etc/profile-a-l/gzip.profile
+++ b/etc/profile-a-l/gzip.profile
@@ -9,7 +9,7 @@ include globals.local
9 9
10# Arch Linux (based distributions) need access to /var/lib/pacman. As we drop 10# Arch Linux (based distributions) need access to /var/lib/pacman. As we drop
11# all capabilities this is automatically read-only. 11# all capabilities this is automatically read-only.
12noblacklist /var/lib/pacman 12nodeny /var/lib/pacman
13 13
14# Redirect 14# Redirect
15include archiver-common.profile 15include archiver-common.profile
diff --git a/etc/profile-a-l/handbrake.profile b/etc/profile-a-l/handbrake.profile
index 847e1ec1e..c102ac4cb 100644
--- a/etc/profile-a-l/handbrake.profile
+++ b/etc/profile-a-l/handbrake.profile
@@ -6,9 +6,9 @@ include handbrake.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/ghb 9nodeny ${HOME}/.config/ghb
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11noblacklist ${VIDEOS} 11nodeny ${VIDEOS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/hashcat.profile b/etc/profile-a-l/hashcat.profile
index aab4b0c21..d98a1b554 100644
--- a/etc/profile-a-l/hashcat.profile
+++ b/etc/profile-a-l/hashcat.profile
@@ -7,11 +7,11 @@ include hashcat.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12noblacklist ${HOME}/.hashcat 12nodeny ${HOME}/.hashcat
13noblacklist /usr/include 13nodeny /usr/include
14noblacklist ${DOCUMENTS} 14nodeny ${DOCUMENTS}
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/hasher-common.profile b/etc/profile-a-l/hasher-common.profile
index 44584f26b..1c2a44e06 100644
--- a/etc/profile-a-l/hasher-common.profile
+++ b/etc/profile-a-l/hasher-common.profile
@@ -4,7 +4,7 @@ include hasher-common.local
4 4
5# common profile for hasher/checksum tools 5# common profile for hasher/checksum tools
6 6
7blacklist ${RUNUSER} 7deny ${RUNUSER}
8 8
9# Comment/uncomment the relevant include file(s) in your hasher-common.local 9# Comment/uncomment the relevant include file(s) in your hasher-common.local
10# to (un)restrict file access for **all** hashers. Another option is to do this **per hasher** 10# to (un)restrict file access for **all** hashers. Another option is to do this **per hasher**
diff --git a/etc/profile-a-l/hedgewars.profile b/etc/profile-a-l/hedgewars.profile
index c0675d8ec..90833af91 100644
--- a/etc/profile-a-l/hedgewars.profile
+++ b/etc/profile-a-l/hedgewars.profile
@@ -6,7 +6,7 @@ include hedgewars.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.hedgewars 9nodeny ${HOME}/.hedgewars
10 10
11include allow-lua.inc 11include allow-lua.inc
12 12
@@ -17,7 +17,7 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18 18
19mkdir ${HOME}/.hedgewars 19mkdir ${HOME}/.hedgewars
20whitelist ${HOME}/.hedgewars 20allow ${HOME}/.hedgewars
21include whitelist-common.inc 21include whitelist-common.inc
22 22
23caps.drop all 23caps.drop all
diff --git a/etc/profile-a-l/hexchat.profile b/etc/profile-a-l/hexchat.profile
index f72af0b4a..993efb591 100644
--- a/etc/profile-a-l/hexchat.profile
+++ b/etc/profile-a-l/hexchat.profile
@@ -6,7 +6,10 @@ include hexchat.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/hexchat 9nodeny ${HOME}/.config/hexchat
10
11# Allow /bin/sh (blacklisted by disable-shell.inc)
12include allow-bin-sh.inc
10 13
11# Allow perl (blacklisted by disable-interpreters.inc) 14# Allow perl (blacklisted by disable-interpreters.inc)
12include allow-perl.inc 15include allow-perl.inc
@@ -25,7 +28,7 @@ include disable-shell.inc
25include disable-xdg.inc 28include disable-xdg.inc
26 29
27mkdir ${HOME}/.config/hexchat 30mkdir ${HOME}/.config/hexchat
28whitelist ${HOME}/.config/hexchat 31allow ${HOME}/.config/hexchat
29include whitelist-common.inc 32include whitelist-common.inc
30include whitelist-var-common.inc 33include whitelist-var-common.inc
31 34
@@ -48,7 +51,7 @@ tracelog
48 51
49disable-mnt 52disable-mnt
50# debug note: private-bin requires perl, python, etc on some systems 53# debug note: private-bin requires perl, python, etc on some systems
51private-bin hexchat,python* 54private-bin hexchat,python*,sh
52private-dev 55private-dev
53#private-lib - python problems 56#private-lib - python problems
54private-tmp 57private-tmp
diff --git a/etc/profile-a-l/highlight.profile b/etc/profile-a-l/highlight.profile
index 643736ac7..53db642dc 100644
--- a/etc/profile-a-l/highlight.profile
+++ b/etc/profile-a-l/highlight.profile
@@ -6,7 +6,7 @@ include highlight.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER} 9deny ${RUNUSER}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/homebank.profile b/etc/profile-a-l/homebank.profile
index 199b1a5e5..ef259cc00 100644
--- a/etc/profile-a-l/homebank.profile
+++ b/etc/profile-a-l/homebank.profile
@@ -6,7 +6,7 @@ include homebank.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/homebank 9nodeny ${HOME}/.config/homebank
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,9 +18,9 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/homebank 20mkdir ${HOME}/.config/homebank
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22whitelist ${HOME}/.config/homebank 22allow ${HOME}/.config/homebank
23whitelist /usr/share/homebank 23allow /usr/share/homebank
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/host.profile b/etc/profile-a-l/host.profile
index 00d9f7a76..63e1be259 100644
--- a/etc/profile-a-l/host.profile
+++ b/etc/profile-a-l/host.profile
@@ -7,8 +7,8 @@ include host.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11noblacklist ${PATH}/host 11nodeny ${PATH}/host
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/hugin.profile b/etc/profile-a-l/hugin.profile
index 267712c87..db5cd29cc 100644
--- a/etc/profile-a-l/hugin.profile
+++ b/etc/profile-a-l/hugin.profile
@@ -6,9 +6,9 @@ include hugin.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.hugin 9nodeny ${HOME}/.hugin
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/hyperrogue.profile b/etc/profile-a-l/hyperrogue.profile
index e66ffd7e1..1fb33ceb8 100644
--- a/etc/profile-a-l/hyperrogue.profile
+++ b/etc/profile-a-l/hyperrogue.profile
@@ -6,7 +6,7 @@ include hyperrogue.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/hyperrogue.ini 9nodeny ${HOME}/hyperrogue.ini
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkfile ${HOME}/hyperrogue.ini 20mkfile ${HOME}/hyperrogue.ini
21whitelist ${HOME}/hyperrogue.ini 21allow ${HOME}/hyperrogue.ini
22whitelist /usr/share/hyperrogue 22allow /usr/share/hyperrogue
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-a-l/i2prouter.profile b/etc/profile-a-l/i2prouter.profile
index 47c984175..c8a2e8a04 100644
--- a/etc/profile-a-l/i2prouter.profile
+++ b/etc/profile-a-l/i2prouter.profile
@@ -14,12 +14,12 @@ include globals.local
14# Only needed when i2prouter binary resides in home directory (official I2P java installer does so). 14# Only needed when i2prouter binary resides in home directory (official I2P java installer does so).
15ignore noexec ${HOME} 15ignore noexec ${HOME}
16 16
17noblacklist ${HOME}/.config/i2p 17nodeny ${HOME}/.config/i2p
18noblacklist ${HOME}/.i2p 18nodeny ${HOME}/.i2p
19noblacklist ${HOME}/.local/share/i2p 19nodeny ${HOME}/.local/share/i2p
20noblacklist ${HOME}/i2p 20nodeny ${HOME}/i2p
21# Only needed when wrapper resides in /usr/sbin/ (Ubuntu official I2P PPA package does so). 21# Only needed when wrapper resides in /usr/sbin/ (Ubuntu official I2P PPA package does so).
22noblacklist /usr/sbin 22nodeny /usr/sbin
23 23
24# Allow java (blacklisted by disable-devel.inc) 24# Allow java (blacklisted by disable-devel.inc)
25include allow-java.inc 25include allow-java.inc
@@ -36,12 +36,12 @@ mkdir ${HOME}/.config/i2p
36mkdir ${HOME}/.i2p 36mkdir ${HOME}/.i2p
37mkdir ${HOME}/.local/share/i2p 37mkdir ${HOME}/.local/share/i2p
38mkdir ${HOME}/i2p 38mkdir ${HOME}/i2p
39whitelist ${HOME}/.config/i2p 39allow ${HOME}/.config/i2p
40whitelist ${HOME}/.i2p 40allow ${HOME}/.i2p
41whitelist ${HOME}/.local/share/i2p 41allow ${HOME}/.local/share/i2p
42whitelist ${HOME}/i2p 42allow ${HOME}/i2p
43# Only needed when wrapper resides in /usr/sbin/ (Ubuntu official I2P PPA package does so). 43# Only needed when wrapper resides in /usr/sbin/ (Ubuntu official I2P PPA package does so).
44whitelist /usr/sbin/wrapper* 44allow /usr/sbin/wrapper*
45 45
46include whitelist-common.inc 46include whitelist-common.inc
47 47
diff --git a/etc/profile-a-l/i3.profile b/etc/profile-a-l/i3.profile
index e96b1843c..95ddad221 100644
--- a/etc/profile-a-l/i3.profile
+++ b/etc/profile-a-l/i3.profile
@@ -7,7 +7,7 @@ include i3.local
7include globals.local 7include globals.local
8 8
9# all applications started in i3 will run in this profile 9# all applications started in i3 will run in this profile
10noblacklist ${HOME}/.config/i3 10nodeny ${HOME}/.config/i3
11include disable-common.inc 11include disable-common.inc
12 12
13caps.drop all 13caps.drop all
diff --git a/etc/profile-a-l/icecat.profile b/etc/profile-a-l/icecat.profile
index 660343a29..0de2f658b 100644
--- a/etc/profile-a-l/icecat.profile
+++ b/etc/profile-a-l/icecat.profile
@@ -5,13 +5,13 @@ include icecat.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/mozilla 8nodeny ${HOME}/.cache/mozilla
9noblacklist ${HOME}/.mozilla 9nodeny ${HOME}/.mozilla
10 10
11mkdir ${HOME}/.cache/mozilla/icecat 11mkdir ${HOME}/.cache/mozilla/icecat
12mkdir ${HOME}/.mozilla 12mkdir ${HOME}/.mozilla
13whitelist ${HOME}/.cache/mozilla/icecat 13allow ${HOME}/.cache/mozilla/icecat
14whitelist ${HOME}/.mozilla 14allow ${HOME}/.mozilla
15 15
16# private-etc must first be enabled in firefox-common.profile 16# private-etc must first be enabled in firefox-common.profile
17#private-etc icecat 17#private-etc icecat
diff --git a/etc/profile-a-l/icedove.profile b/etc/profile-a-l/icedove.profile
index 19690cd5a..0c22d87d0 100644
--- a/etc/profile-a-l/icedove.profile
+++ b/etc/profile-a-l/icedove.profile
@@ -9,16 +9,16 @@ include icedove.local
9# Users have icedove set to open a browser by clicking a link in an email 9# Users have icedove set to open a browser by clicking a link in an email
10# We are not allowed to blacklist browser-specific directories 10# We are not allowed to blacklist browser-specific directories
11 11
12noblacklist ${HOME}/.cache/icedove 12nodeny ${HOME}/.cache/icedove
13noblacklist ${HOME}/.gnupg 13nodeny ${HOME}/.gnupg
14noblacklist ${HOME}/.icedove 14nodeny ${HOME}/.icedove
15 15
16mkdir ${HOME}/.cache/icedove 16mkdir ${HOME}/.cache/icedove
17mkdir ${HOME}/.gnupg 17mkdir ${HOME}/.gnupg
18mkdir ${HOME}/.icedove 18mkdir ${HOME}/.icedove
19whitelist ${HOME}/.cache/icedove 19allow ${HOME}/.cache/icedove
20whitelist ${HOME}/.gnupg 20allow ${HOME}/.gnupg
21whitelist ${HOME}/.icedove 21allow ${HOME}/.icedove
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24ignore private-tmp 24ignore private-tmp
diff --git a/etc/profile-a-l/idea.sh.profile b/etc/profile-a-l/idea.sh.profile
index 680b8e777..180b62ec2 100644
--- a/etc/profile-a-l/idea.sh.profile
+++ b/etc/profile-a-l/idea.sh.profile
@@ -5,12 +5,12 @@ include idea.sh.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.IdeaIC* 8nodeny ${HOME}/.IdeaIC*
9noblacklist ${HOME}/.android 9nodeny ${HOME}/.android
10noblacklist ${HOME}/.jack-server 10nodeny ${HOME}/.jack-server
11noblacklist ${HOME}/.jack-settings 11nodeny ${HOME}/.jack-settings
12noblacklist ${HOME}/.local/share/JetBrains 12nodeny ${HOME}/.local/share/JetBrains
13noblacklist ${HOME}/.tooling 13nodeny ${HOME}/.tooling
14 14
15# Allows files commonly used by IDEs 15# Allows files commonly used by IDEs
16include allow-common-devel.inc 16include allow-common-devel.inc
diff --git a/etc/profile-a-l/imagej.profile b/etc/profile-a-l/imagej.profile
index 12ce7976b..5d28e7aca 100644
--- a/etc/profile-a-l/imagej.profile
+++ b/etc/profile-a-l/imagej.profile
@@ -6,7 +6,7 @@ include imagej.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.imagej 9nodeny ${HOME}/.imagej
10 10
11# Allow java (blacklisted by disable-devel.inc) 11# Allow java (blacklisted by disable-devel.inc)
12include allow-java.inc 12include allow-java.inc
diff --git a/etc/profile-a-l/img2txt.profile b/etc/profile-a-l/img2txt.profile
index c26958d06..70d56a7dc 100644
--- a/etc/profile-a-l/img2txt.profile
+++ b/etc/profile-a-l/img2txt.profile
@@ -5,10 +5,10 @@ include img2txt.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8blacklist ${RUNUSER}/wayland-* 8deny ${RUNUSER}/wayland-*
9 9
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-passwdmgr.inc
18include disable-programs.inc 18include disable-programs.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21whitelist /usr/share/imlib2 21allow /usr/share/imlib2
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-a-l/impressive.profile b/etc/profile-a-l/impressive.profile
index c152be01c..4914cd9d0 100644
--- a/etc/profile-a-l/impressive.profile
+++ b/etc/profile-a-l/impressive.profile
@@ -6,9 +6,9 @@ include impressive.local
6# Persistent global definitions 6# Persistent global definitions
7#include globals.local 7#include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist /sbin 10nodeny /sbin
11noblacklist /usr/sbin 11nodeny /usr/sbin
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14#include allow-python2.inc 14#include allow-python2.inc
@@ -23,8 +23,8 @@ include disable-programs.inc
23include disable-xdg.inc 23include disable-xdg.inc
24 24
25mkdir ${HOME}/.cache/mesa_shader_cache 25mkdir ${HOME}/.cache/mesa_shader_cache
26whitelist /usr/share/opengl-games-utils 26allow /usr/share/opengl-games-utils
27whitelist /usr/share/zenity 27allow /usr/share/zenity
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
30 30
diff --git a/etc/profile-a-l/inkscape.profile b/etc/profile-a-l/inkscape.profile
index 35dd86b32..1a949b300 100644
--- a/etc/profile-a-l/inkscape.profile
+++ b/etc/profile-a-l/inkscape.profile
@@ -6,14 +6,14 @@ include inkscape.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/inkscape 9nodeny ${HOME}/.cache/inkscape
10noblacklist ${HOME}/.config/inkscape 10nodeny ${HOME}/.config/inkscape
11noblacklist ${HOME}/.inkscape 11nodeny ${HOME}/.inkscape
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13noblacklist ${PICTURES} 13nodeny ${PICTURES}
14# Allow exporting .xcf files 14# Allow exporting .xcf files
15noblacklist ${HOME}/.config/GIMP 15nodeny ${HOME}/.config/GIMP
16noblacklist ${HOME}/.gimp* 16nodeny ${HOME}/.gimp*
17 17
18 18
19# Allow python (blacklisted by disable-interpreters.inc) 19# Allow python (blacklisted by disable-interpreters.inc)
@@ -28,7 +28,7 @@ include disable-passwdmgr.inc
28include disable-programs.inc 28include disable-programs.inc
29include disable-xdg.inc 29include disable-xdg.inc
30 30
31whitelist /usr/share/inkscape 31allow /usr/share/inkscape
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
33include whitelist-var-common.inc 33include whitelist-var-common.inc
34 34
diff --git a/etc/profile-a-l/inox.profile b/etc/profile-a-l/inox.profile
index a5cac12f2..1591ed7ea 100644
--- a/etc/profile-a-l/inox.profile
+++ b/etc/profile-a-l/inox.profile
@@ -10,13 +10,13 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/inox 13nodeny ${HOME}/.cache/inox
14noblacklist ${HOME}/.config/inox 14nodeny ${HOME}/.config/inox
15 15
16mkdir ${HOME}/.cache/inox 16mkdir ${HOME}/.cache/inox
17mkdir ${HOME}/.config/inox 17mkdir ${HOME}/.config/inox
18whitelist ${HOME}/.cache/inox 18allow ${HOME}/.cache/inox
19whitelist ${HOME}/.config/inox 19allow ${HOME}/.config/inox
20 20
21# Redirect 21# Redirect
22include chromium-common.profile 22include chromium-common.profile
diff --git a/etc/profile-a-l/iridium.profile b/etc/profile-a-l/iridium.profile
index 3037d00e9..f361fd663 100644
--- a/etc/profile-a-l/iridium.profile
+++ b/etc/profile-a-l/iridium.profile
@@ -10,13 +10,13 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/iridium 13nodeny ${HOME}/.cache/iridium
14noblacklist ${HOME}/.config/iridium 14nodeny ${HOME}/.config/iridium
15 15
16mkdir ${HOME}/.cache/iridium 16mkdir ${HOME}/.cache/iridium
17mkdir ${HOME}/.config/iridium 17mkdir ${HOME}/.config/iridium
18whitelist ${HOME}/.cache/iridium 18allow ${HOME}/.cache/iridium
19whitelist ${HOME}/.config/iridium 19allow ${HOME}/.config/iridium
20 20
21# Redirect 21# Redirect
22include chromium-common.profile 22include chromium-common.profile
diff --git a/etc/profile-a-l/itch.profile b/etc/profile-a-l/itch.profile
index e02dcbdb1..fa0bcf986 100644
--- a/etc/profile-a-l/itch.profile
+++ b/etc/profile-a-l/itch.profile
@@ -8,8 +8,8 @@ include globals.local
8# itch.io has native firejail/sandboxing support bundled in 8# itch.io has native firejail/sandboxing support bundled in
9# See https://itch.io/docs/itch/using/sandbox/linux.html 9# See https://itch.io/docs/itch/using/sandbox/linux.html
10 10
11noblacklist ${HOME}/.itch 11nodeny ${HOME}/.itch
12noblacklist ${HOME}/.config/itch 12nodeny ${HOME}/.config/itch
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-programs.inc
19 19
20mkdir ${HOME}/.itch 20mkdir ${HOME}/.itch
21mkdir ${HOME}/.config/itch 21mkdir ${HOME}/.config/itch
22whitelist ${HOME}/.itch 22allow ${HOME}/.itch
23whitelist ${HOME}/.config/itch 23allow ${HOME}/.config/itch
24include whitelist-common.inc 24include whitelist-common.inc
25 25
26caps.drop all 26caps.drop all
diff --git a/etc/profile-a-l/jami-gnome.profile b/etc/profile-a-l/jami-gnome.profile
index 3e9abf369..e4be574df 100644
--- a/etc/profile-a-l/jami-gnome.profile
+++ b/etc/profile-a-l/jami-gnome.profile
@@ -6,8 +6,8 @@ include jami-gnome.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/jami 9nodeny ${HOME}/.config/jami
10noblacklist ${HOME}/.local/share/jami 10nodeny ${HOME}/.local/share/jami
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-programs.inc
18 18
19mkdir ${HOME}/.config/jami 19mkdir ${HOME}/.config/jami
20mkdir ${HOME}/.local/share/jami 20mkdir ${HOME}/.local/share/jami
21whitelist ${HOME}/.config/jami 21allow ${HOME}/.config/jami
22whitelist ${HOME}/.local/share/jami 22allow ${HOME}/.local/share/jami
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-var-common.inc 24include whitelist-var-common.inc
25 25
diff --git a/etc/profile-a-l/jd-gui.profile b/etc/profile-a-l/jd-gui.profile
index 7d29f1068..bfea84c69 100644
--- a/etc/profile-a-l/jd-gui.profile
+++ b/etc/profile-a-l/jd-gui.profile
@@ -5,7 +5,7 @@ include jd-gui.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/jd-gui.cfg 8nodeny ${HOME}/.config/jd-gui.cfg
9 9
10# Allow java (blacklisted by disable-devel.inc) 10# Allow java (blacklisted by disable-devel.inc)
11include allow-java.inc 11include allow-java.inc
diff --git a/etc/profile-a-l/jerry.profile b/etc/profile-a-l/jerry.profile
index 85b1f2120..c41027618 100644
--- a/etc/profile-a-l/jerry.profile
+++ b/etc/profile-a-l/jerry.profile
@@ -6,7 +6,7 @@ include jerry.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/dkl 9nodeny ${HOME}/.config/dkl
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/jitsi-meet-desktop.profile b/etc/profile-a-l/jitsi-meet-desktop.profile
index edb7ed840..9ca30c36d 100644
--- a/etc/profile-a-l/jitsi-meet-desktop.profile
+++ b/etc/profile-a-l/jitsi-meet-desktop.profile
@@ -13,12 +13,12 @@ ignore shell none
13 13
14ignore noexec /tmp 14ignore noexec /tmp
15 15
16noblacklist ${HOME}/.config/Jitsi Meet 16nodeny ${HOME}/.config/Jitsi Meet
17 17
18nowhitelist ${DOWNLOADS} 18noallow ${DOWNLOADS}
19 19
20mkdir ${HOME}/.config/Jitsi Meet 20mkdir ${HOME}/.config/Jitsi Meet
21whitelist ${HOME}/.config/Jitsi Meet 21allow ${HOME}/.config/Jitsi Meet
22 22
23private-bin bash,electron,electron[0-9],electron[0-9][0-9],jitsi-meet-desktop,sh 23private-bin bash,electron,electron[0-9],electron[0-9][0-9],jitsi-meet-desktop,sh
24private-etc alsa,alternatives,asound.conf,bumblebee,ca-certificates,crypto-policies,drirc,fonts,glvnd,group,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,machine-id,mime.types,nsswitch.conf,nvidia,pango,passwd,pki,protocols,pulse,resolv.conf,rpc,services,ssl,X11,xdg 24private-etc alsa,alternatives,asound.conf,bumblebee,ca-certificates,crypto-policies,drirc,fonts,glvnd,group,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,machine-id,mime.types,nsswitch.conf,nvidia,pango,passwd,pki,protocols,pulse,resolv.conf,rpc,services,ssl,X11,xdg
diff --git a/etc/profile-a-l/jitsi.profile b/etc/profile-a-l/jitsi.profile
index 223c360b8..f53e6ca32 100644
--- a/etc/profile-a-l/jitsi.profile
+++ b/etc/profile-a-l/jitsi.profile
@@ -5,7 +5,7 @@ include jitsi.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.jitsi 8nodeny ${HOME}/.jitsi
9 9
10# Allow java (blacklisted by disable-devel.inc) 10# Allow java (blacklisted by disable-devel.inc)
11include allow-java.inc 11include allow-java.inc
diff --git a/etc/profile-a-l/jumpnbump.profile b/etc/profile-a-l/jumpnbump.profile
index 9954b8aea..c0a78ecc0 100644
--- a/etc/profile-a-l/jumpnbump.profile
+++ b/etc/profile-a-l/jumpnbump.profile
@@ -6,7 +6,7 @@ include jumpnbump.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.jumpnbump 9nodeny ${HOME}/.jumpnbump
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.jumpnbump 19mkdir ${HOME}/.jumpnbump
20whitelist ${HOME}/.jumpnbump 20allow ${HOME}/.jumpnbump
21whitelist /usr/share/jumpnbump 21allow /usr/share/jumpnbump
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-var-common.inc 24include whitelist-var-common.inc
diff --git a/etc/profile-a-l/k3b.profile b/etc/profile-a-l/k3b.profile
index 5ae90dff6..73ce8670f 100644
--- a/etc/profile-a-l/k3b.profile
+++ b/etc/profile-a-l/k3b.profile
@@ -6,11 +6,11 @@ include k3b.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/k3brc 9nodeny ${HOME}/.config/k3brc
10noblacklist ${HOME}/.kde/share/config/k3brc 10nodeny ${HOME}/.kde/share/config/k3brc
11noblacklist ${HOME}/.kde4/share/config/k3brc 11nodeny ${HOME}/.kde4/share/config/k3brc
12noblacklist ${HOME}/.local/share/kxmlgui5/k3b 12nodeny ${HOME}/.local/share/kxmlgui5/k3b
13noblacklist ${MUSIC} 13nodeny ${MUSIC}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/kaffeine.profile b/etc/profile-a-l/kaffeine.profile
index d55fd22cb..e6a00e350 100644
--- a/etc/profile-a-l/kaffeine.profile
+++ b/etc/profile-a-l/kaffeine.profile
@@ -6,14 +6,14 @@ include kaffeine.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/kaffeinerc 9nodeny ${HOME}/.config/kaffeinerc
10noblacklist ${HOME}/.kde/share/apps/kaffeine 10nodeny ${HOME}/.kde/share/apps/kaffeine
11noblacklist ${HOME}/.kde/share/config/kaffeinerc 11nodeny ${HOME}/.kde/share/config/kaffeinerc
12noblacklist ${HOME}/.kde4/share/apps/kaffeine 12nodeny ${HOME}/.kde4/share/apps/kaffeine
13noblacklist ${HOME}/.kde4/share/config/kaffeinerc 13nodeny ${HOME}/.kde4/share/config/kaffeinerc
14noblacklist ${HOME}/.local/share/kaffeine 14nodeny ${HOME}/.local/share/kaffeine
15noblacklist ${MUSIC} 15nodeny ${MUSIC}
16noblacklist ${VIDEOS} 16nodeny ${VIDEOS}
17 17
18include disable-common.inc 18include disable-common.inc
19include disable-devel.inc 19include disable-devel.inc
diff --git a/etc/profile-a-l/kalgebra.profile b/etc/profile-a-l/kalgebra.profile
index 503dac4b6..98b04353e 100644
--- a/etc/profile-a-l/kalgebra.profile
+++ b/etc/profile-a-l/kalgebra.profile
@@ -6,8 +6,8 @@ include kalgebra.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/kalgebrarc 9nodeny ${HOME}/.config/kalgebrarc
10noblacklist ${HOME}/.local/share/kalgebra 10nodeny ${HOME}/.local/share/kalgebra
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist /usr/share/kalgebramobile 20allow /usr/share/kalgebramobile
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-a-l/karbon.profile b/etc/profile-a-l/karbon.profile
index 231299a2f..db5394550 100644
--- a/etc/profile-a-l/karbon.profile
+++ b/etc/profile-a-l/karbon.profile
@@ -6,7 +6,7 @@ include karbon.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/karbon 9nodeny ${HOME}/.local/share/kxmlgui5/karbon
10 10
11# Redirect 11# Redirect
12include krita.profile 12include krita.profile
diff --git a/etc/profile-a-l/kate.profile b/etc/profile-a-l/kate.profile
index 27b87e7c3..d2b180492 100644
--- a/etc/profile-a-l/kate.profile
+++ b/etc/profile-a-l/kate.profile
@@ -8,20 +8,20 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.config/katemetainfos 11nodeny ${HOME}/.config/katemetainfos
12noblacklist ${HOME}/.config/katepartrc 12nodeny ${HOME}/.config/katepartrc
13noblacklist ${HOME}/.config/katerc 13nodeny ${HOME}/.config/katerc
14noblacklist ${HOME}/.config/kateschemarc 14nodeny ${HOME}/.config/kateschemarc
15noblacklist ${HOME}/.config/katesyntaxhighlightingrc 15nodeny ${HOME}/.config/katesyntaxhighlightingrc
16noblacklist ${HOME}/.config/katevirc 16nodeny ${HOME}/.config/katevirc
17noblacklist ${HOME}/.local/share/kate 17nodeny ${HOME}/.local/share/kate
18noblacklist ${HOME}/.local/share/kxmlgui5/kate 18nodeny ${HOME}/.local/share/kxmlgui5/kate
19noblacklist ${HOME}/.local/share/kxmlgui5/katefiletree 19nodeny ${HOME}/.local/share/kxmlgui5/katefiletree
20noblacklist ${HOME}/.local/share/kxmlgui5/katekonsole 20nodeny ${HOME}/.local/share/kxmlgui5/katekonsole
21noblacklist ${HOME}/.local/share/kxmlgui5/kateopenheaderplugin 21nodeny ${HOME}/.local/share/kxmlgui5/kateopenheaderplugin
22noblacklist ${HOME}/.local/share/kxmlgui5/katepart 22nodeny ${HOME}/.local/share/kxmlgui5/katepart
23noblacklist ${HOME}/.local/share/kxmlgui5/kateproject 23nodeny ${HOME}/.local/share/kxmlgui5/kateproject
24noblacklist ${HOME}/.local/share/kxmlgui5/katesearch 24nodeny ${HOME}/.local/share/kxmlgui5/katesearch
25 25
26include disable-common.inc 26include disable-common.inc
27# include disable-devel.inc 27# include disable-devel.inc
diff --git a/etc/profile-a-l/kazam.profile b/etc/profile-a-l/kazam.profile
index 9795cf168..a4e2e64f4 100644
--- a/etc/profile-a-l/kazam.profile
+++ b/etc/profile-a-l/kazam.profile
@@ -8,9 +8,9 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12noblacklist ${VIDEOS} 12nodeny ${VIDEOS}
13noblacklist ${HOME}/.config/kazam 13nodeny ${HOME}/.config/kazam
14 14
15# Allow python (blacklisted by disable-interpreters.inc) 15# Allow python (blacklisted by disable-interpreters.inc)
16include allow-python2.inc 16include allow-python2.inc
@@ -25,7 +25,7 @@ include disable-passwdmgr.inc
25include disable-shell.inc 25include disable-shell.inc
26include disable-xdg.inc 26include disable-xdg.inc
27 27
28whitelist /usr/share/kazam 28allow /usr/share/kazam
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-a-l/kcalc.profile b/etc/profile-a-l/kcalc.profile
index e36ee5ed2..fcb168d4d 100644
--- a/etc/profile-a-l/kcalc.profile
+++ b/etc/profile-a-l/kcalc.profile
@@ -6,7 +6,7 @@ include kcalc.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/kxmlgui5/kcalc 9nodeny ${HOME}/.local/share/kxmlgui5/kcalc
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -21,13 +21,13 @@ mkdir ${HOME}/.local/share/kxmlgui5/kcalc
21mkfile ${HOME}/.config/kcalcrc 21mkfile ${HOME}/.config/kcalcrc
22mkfile ${HOME}/.kde/share/config/kcalcrc 22mkfile ${HOME}/.kde/share/config/kcalcrc
23mkfile ${HOME}/.kde4/share/config/kcalcrc 23mkfile ${HOME}/.kde4/share/config/kcalcrc
24whitelist ${HOME}/.config/kcalcrc 24allow ${HOME}/.config/kcalcrc
25whitelist ${HOME}/.kde/share/config/kcalcrc 25allow ${HOME}/.kde/share/config/kcalcrc
26whitelist ${HOME}/.kde4/share/config/kcalcrc 26allow ${HOME}/.kde4/share/config/kcalcrc
27whitelist ${HOME}/.local/share/kxmlgui5/kcalc 27allow ${HOME}/.local/share/kxmlgui5/kcalc
28whitelist /usr/share/config.kcfg/kcalc.kcfg 28allow /usr/share/config.kcfg/kcalc.kcfg
29whitelist /usr/share/kcalc 29allow /usr/share/kcalc
30whitelist /usr/share/kconf_update/kcalcrc.upd 30allow /usr/share/kconf_update/kcalcrc.upd
31include whitelist-common.inc 31include whitelist-common.inc
32include whitelist-runuser-common.inc 32include whitelist-runuser-common.inc
33include whitelist-usr-share-common.inc 33include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/kdenlive.profile b/etc/profile-a-l/kdenlive.profile
index d2a08a269..4acafbf2a 100644
--- a/etc/profile-a-l/kdenlive.profile
+++ b/etc/profile-a-l/kdenlive.profile
@@ -8,10 +8,10 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.cache/kdenlive 11nodeny ${HOME}/.cache/kdenlive
12noblacklist ${HOME}/.config/kdenliverc 12nodeny ${HOME}/.config/kdenliverc
13noblacklist ${HOME}/.local/share/kdenlive 13nodeny ${HOME}/.local/share/kdenlive
14noblacklist ${HOME}/.local/share/kxmlgui5/kdenlive 14nodeny ${HOME}/.local/share/kxmlgui5/kdenlive
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/kdiff3.profile b/etc/profile-a-l/kdiff3.profile
index 7c1cb2294..0c37f7968 100644
--- a/etc/profile-a-l/kdiff3.profile
+++ b/etc/profile-a-l/kdiff3.profile
@@ -6,14 +6,14 @@ include kdiff3.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/kdiff3fileitemactionrc 9nodeny ${HOME}/.config/kdiff3fileitemactionrc
10noblacklist ${HOME}/.config/kdiff3rc 10nodeny ${HOME}/.config/kdiff3rc
11 11
12# Add the next line to your kdiff3.local if you don't need to compare files in disable-common.inc. 12# Add the next line to your kdiff3.local if you don't need to compare files in disable-common.inc.
13# By default we deny access only to .ssh and .gnupg. 13# By default we deny access only to .ssh and .gnupg.
14#include disable-common.inc 14#include disable-common.inc
15blacklist ${HOME}/.ssh 15deny ${HOME}/.ssh
16blacklist ${HOME}/.gnupg 16deny ${HOME}/.gnupg
17 17
18include disable-devel.inc 18include disable-devel.inc
19include disable-exec.inc 19include disable-exec.inc
diff --git a/etc/profile-a-l/keepass.profile b/etc/profile-a-l/keepass.profile
index ae8971ab4..9c06962bc 100644
--- a/etc/profile-a-l/keepass.profile
+++ b/etc/profile-a-l/keepass.profile
@@ -6,14 +6,14 @@ include keepass.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/*.kdb 9nodeny ${HOME}/*.kdb
10noblacklist ${HOME}/*.kdbx 10nodeny ${HOME}/*.kdbx
11noblacklist ${HOME}/.config/KeePass 11nodeny ${HOME}/.config/KeePass
12noblacklist ${HOME}/.config/keepass 12nodeny ${HOME}/.config/keepass
13noblacklist ${HOME}/.keepass 13nodeny ${HOME}/.keepass
14noblacklist ${HOME}/.local/share/KeePass 14nodeny ${HOME}/.local/share/KeePass
15noblacklist ${HOME}/.local/share/keepass 15nodeny ${HOME}/.local/share/keepass
16noblacklist ${DOCUMENTS} 16nodeny ${DOCUMENTS}
17 17
18include disable-common.inc 18include disable-common.inc
19include disable-devel.inc 19include disable-devel.inc
diff --git a/etc/profile-a-l/keepassx.profile b/etc/profile-a-l/keepassx.profile
index ac364986d..2772fa8bf 100644
--- a/etc/profile-a-l/keepassx.profile
+++ b/etc/profile-a-l/keepassx.profile
@@ -6,11 +6,11 @@ include keepassx.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/*.kdb 9nodeny ${HOME}/*.kdb
10noblacklist ${HOME}/*.kdbx 10nodeny ${HOME}/*.kdbx
11noblacklist ${HOME}/.config/keepassx 11nodeny ${HOME}/.config/keepassx
12noblacklist ${HOME}/.keepassx 12nodeny ${HOME}/.keepassx
13noblacklist ${DOCUMENTS} 13nodeny ${DOCUMENTS}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/keepassxc.profile b/etc/profile-a-l/keepassxc.profile
index c352a5d89..9c530b20d 100644
--- a/etc/profile-a-l/keepassxc.profile
+++ b/etc/profile-a-l/keepassxc.profile
@@ -6,21 +6,23 @@ include keepassxc.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/*.kdb 9nodeny ${HOME}/*.kdb
10noblacklist ${HOME}/*.kdbx 10nodeny ${HOME}/*.kdbx
11noblacklist ${HOME}/.cache/keepassxc 11nodeny ${HOME}/.cache/keepassxc
12noblacklist ${HOME}/.config/keepassxc 12nodeny ${HOME}/.config/keepassxc
13noblacklist ${HOME}/.config/KeePassXCrc 13nodeny ${HOME}/.config/KeePassXCrc
14noblacklist ${HOME}/.keepassxc 14nodeny ${HOME}/.keepassxc
15noblacklist ${DOCUMENTS} 15nodeny ${DOCUMENTS}
16 16
17# Allow browser profiles, required for browser integration. 17# Allow browser profiles, required for browser integration.
18noblacklist ${HOME}/.config/BraveSoftware 18nodeny ${HOME}/.config/BraveSoftware
19noblacklist ${HOME}/.config/chromium 19nodeny ${HOME}/.config/chromium
20noblacklist ${HOME}/.config/google-chrome 20nodeny ${HOME}/.config/google-chrome
21noblacklist ${HOME}/.config/vivaldi 21nodeny ${HOME}/.config/vivaldi
22noblacklist ${HOME}/.local/share/torbrowser 22nodeny ${HOME}/.local/share/torbrowser
23noblacklist ${HOME}/.mozilla 23nodeny ${HOME}/.mozilla
24
25deny /usr/libexec
24 26
25include disable-common.inc 27include disable-common.inc
26include disable-devel.inc 28include disable-devel.inc
@@ -55,7 +57,7 @@ include disable-xdg.inc
55#whitelist ${HOME}/.config/KeePassXCrc 57#whitelist ${HOME}/.config/KeePassXCrc
56#include whitelist-common.inc 58#include whitelist-common.inc
57 59
58whitelist /usr/share/keepassxc 60allow /usr/share/keepassxc
59include whitelist-usr-share-common.inc 61include whitelist-usr-share-common.inc
60include whitelist-var-common.inc 62include whitelist-var-common.inc
61 63
diff --git a/etc/profile-a-l/kget.profile b/etc/profile-a-l/kget.profile
index 2c684504b..30c041cbc 100644
--- a/etc/profile-a-l/kget.profile
+++ b/etc/profile-a-l/kget.profile
@@ -6,13 +6,13 @@ include kget.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/kgetrc 9nodeny ${HOME}/.config/kgetrc
10noblacklist ${HOME}/.kde/share/apps/kget 10nodeny ${HOME}/.kde/share/apps/kget
11noblacklist ${HOME}/.kde/share/config/kgetrc 11nodeny ${HOME}/.kde/share/config/kgetrc
12noblacklist ${HOME}/.kde4/share/apps/kget 12nodeny ${HOME}/.kde4/share/apps/kget
13noblacklist ${HOME}/.kde4/share/config/kgetrc 13nodeny ${HOME}/.kde4/share/config/kgetrc
14noblacklist ${HOME}/.local/share/kget 14nodeny ${HOME}/.local/share/kget
15noblacklist ${HOME}/.local/share/kxmlgui5/kget 15nodeny ${HOME}/.local/share/kxmlgui5/kget
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
diff --git a/etc/profile-a-l/kid3-qt.profile b/etc/profile-a-l/kid3-qt.profile
index 9bcede077..84d135fc3 100644
--- a/etc/profile-a-l/kid3-qt.profile
+++ b/etc/profile-a-l/kid3-qt.profile
@@ -2,7 +2,7 @@
2# This file is overwritten after every install/update 2# This file is overwritten after every install/update
3include kid3-qt.local 3include kid3-qt.local
4 4
5noblacklist ${HOME}/.config/Kid3 5nodeny ${HOME}/.config/Kid3
6 6
7# Redirect 7# Redirect
8include kid3.profile 8include kid3.profile
diff --git a/etc/profile-a-l/kid3.profile b/etc/profile-a-l/kid3.profile
index e18292e99..0ef2a7845 100644
--- a/etc/profile-a-l/kid3.profile
+++ b/etc/profile-a-l/kid3.profile
@@ -6,9 +6,9 @@ include kid3.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10noblacklist ${HOME}/.config/kid3rc 10nodeny ${HOME}/.config/kid3rc
11noblacklist ${HOME}/.local/share/kxmlgui5/kid3 11nodeny ${HOME}/.local/share/kxmlgui5/kid3
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/kino.profile b/etc/profile-a-l/kino.profile
index 74014ffe6..833c1d22a 100644
--- a/etc/profile-a-l/kino.profile
+++ b/etc/profile-a-l/kino.profile
@@ -6,8 +6,8 @@ include kino.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.kino-history 9nodeny ${HOME}/.kino-history
10noblacklist ${HOME}/.kinorc 10nodeny ${HOME}/.kinorc
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/kiwix-desktop.profile b/etc/profile-a-l/kiwix-desktop.profile
index 40ee0bbc7..b188ba0e3 100644
--- a/etc/profile-a-l/kiwix-desktop.profile
+++ b/etc/profile-a-l/kiwix-desktop.profile
@@ -6,8 +6,8 @@ include kiwix-desktop.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/kiwix 9nodeny ${HOME}/.local/share/kiwix
10noblacklist ${HOME}/.local/share/kiwix-desktop 10nodeny ${HOME}/.local/share/kiwix-desktop
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.local/share/kiwix 20mkdir ${HOME}/.local/share/kiwix
21mkdir ${HOME}/.local/share/kiwix-desktop 21mkdir ${HOME}/.local/share/kiwix-desktop
22whitelist ${HOME}/.local/share/kiwix 22allow ${HOME}/.local/share/kiwix
23whitelist ${HOME}/.local/share/kiwix-desktop 23allow ${HOME}/.local/share/kiwix-desktop
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-a-l/klatexformula.profile b/etc/profile-a-l/klatexformula.profile
index c6a9023f1..e087e4973 100644
--- a/etc/profile-a-l/klatexformula.profile
+++ b/etc/profile-a-l/klatexformula.profile
@@ -6,8 +6,8 @@ include klatexformula.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.kde/share/apps/klatexformula 9nodeny ${HOME}/.kde/share/apps/klatexformula
10noblacklist ${HOME}/.klatexformula 10nodeny ${HOME}/.klatexformula
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/klavaro.profile b/etc/profile-a-l/klavaro.profile
index f5cd3a48c..ec3912419 100644
--- a/etc/profile-a-l/klavaro.profile
+++ b/etc/profile-a-l/klavaro.profile
@@ -6,8 +6,8 @@ include klavaro.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/klavaro 9nodeny ${HOME}/.config/klavaro
10noblacklist ${HOME}/.local/share/klavaro 10nodeny ${HOME}/.local/share/klavaro
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.local/share/klavaro 20mkdir ${HOME}/.local/share/klavaro
21mkdir ${HOME}/.config/klavaro 21mkdir ${HOME}/.config/klavaro
22whitelist ${HOME}/.local/share/klavaro 22allow ${HOME}/.local/share/klavaro
23whitelist ${HOME}/.config/klavaro 23allow ${HOME}/.config/klavaro
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-a-l/kmail.profile b/etc/profile-a-l/kmail.profile
index 95ae98e53..3c582c08c 100644
--- a/etc/profile-a-l/kmail.profile
+++ b/etc/profile-a-l/kmail.profile
@@ -9,27 +9,27 @@ include globals.local
9# kmail has problems launching akonadi in debian and ubuntu. 9# kmail has problems launching akonadi in debian and ubuntu.
10# one solution is to have akonadi already running when kmail is started 10# one solution is to have akonadi already running when kmail is started
11 11
12noblacklist ${HOME}/.cache/akonadi* 12nodeny ${HOME}/.cache/akonadi*
13noblacklist ${HOME}/.cache/kmail2 13nodeny ${HOME}/.cache/kmail2
14noblacklist ${HOME}/.config/akonadi* 14nodeny ${HOME}/.config/akonadi*
15noblacklist ${HOME}/.config/baloorc 15nodeny ${HOME}/.config/baloorc
16noblacklist ${HOME}/.config/emaildefaults 16nodeny ${HOME}/.config/emaildefaults
17noblacklist ${HOME}/.config/emailidentities 17nodeny ${HOME}/.config/emailidentities
18noblacklist ${HOME}/.config/kmail2rc 18nodeny ${HOME}/.config/kmail2rc
19noblacklist ${HOME}/.config/kmailsearchindexingrc 19nodeny ${HOME}/.config/kmailsearchindexingrc
20noblacklist ${HOME}/.config/mailtransports 20nodeny ${HOME}/.config/mailtransports
21noblacklist ${HOME}/.config/specialmailcollectionsrc 21nodeny ${HOME}/.config/specialmailcollectionsrc
22noblacklist ${HOME}/.gnupg 22nodeny ${HOME}/.gnupg
23noblacklist ${HOME}/.local/share/akonadi* 23nodeny ${HOME}/.local/share/akonadi*
24noblacklist ${HOME}/.local/share/apps/korganizer 24nodeny ${HOME}/.local/share/apps/korganizer
25noblacklist ${HOME}/.local/share/contacts 25nodeny ${HOME}/.local/share/contacts
26noblacklist ${HOME}/.local/share/emailidentities 26nodeny ${HOME}/.local/share/emailidentities
27noblacklist ${HOME}/.local/share/kmail2 27nodeny ${HOME}/.local/share/kmail2
28noblacklist ${HOME}/.local/share/kxmlgui5/kmail 28nodeny ${HOME}/.local/share/kxmlgui5/kmail
29noblacklist ${HOME}/.local/share/kxmlgui5/kmail2 29nodeny ${HOME}/.local/share/kxmlgui5/kmail2
30noblacklist ${HOME}/.local/share/local-mail 30nodeny ${HOME}/.local/share/local-mail
31noblacklist ${HOME}/.local/share/notes 31nodeny ${HOME}/.local/share/notes
32noblacklist /tmp/akonadi-* 32nodeny /tmp/akonadi-*
33 33
34include disable-common.inc 34include disable-common.inc
35include disable-devel.inc 35include disable-devel.inc
diff --git a/etc/profile-a-l/kmplayer.profile b/etc/profile-a-l/kmplayer.profile
index e88b53499..d2ce14ab6 100644
--- a/etc/profile-a-l/kmplayer.profile
+++ b/etc/profile-a-l/kmplayer.profile
@@ -6,11 +6,11 @@ include kmplayer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/kmplayerrc 9nodeny ${HOME}/.config/kmplayerrc
10noblacklist ${HOME}/.kde/share/config/kmplayerrc 10nodeny ${HOME}/.kde/share/config/kmplayerrc
11noblacklist ${HOME}/.local/share/kmplayer 11nodeny ${HOME}/.local/share/kmplayer
12noblacklist ${MUSIC} 12nodeny ${MUSIC}
13noblacklist ${VIDEOS} 13nodeny ${VIDEOS}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/knotes.profile b/etc/profile-a-l/knotes.profile
index f155d0ad6..5a9ac34da 100644
--- a/etc/profile-a-l/knotes.profile
+++ b/etc/profile-a-l/knotes.profile
@@ -10,9 +10,9 @@ include knotes.local
10# knotes has problems launching akonadi in debian and ubuntu. 10# knotes has problems launching akonadi in debian and ubuntu.
11# one solution is to have akonadi already running when knotes is started 11# one solution is to have akonadi already running when knotes is started
12 12
13noblacklist ${HOME}/.config/knotesrc 13nodeny ${HOME}/.config/knotesrc
14noblacklist ${HOME}/.local/share/knotes 14nodeny ${HOME}/.local/share/knotes
15noblacklist ${HOME}/.local/share/kxmlgui5/knotes 15nodeny ${HOME}/.local/share/kxmlgui5/knotes
16 16
17# Redirect 17# Redirect
18include kmail.profile 18include kmail.profile
diff --git a/etc/profile-a-l/kodi.profile b/etc/profile-a-l/kodi.profile
index b72632bf4..2725c87be 100644
--- a/etc/profile-a-l/kodi.profile
+++ b/etc/profile-a-l/kodi.profile
@@ -8,11 +8,15 @@ include globals.local
8 8
9# noexec ${HOME} breaks plugins 9# noexec ${HOME} breaks plugins
10ignore noexec ${HOME} 10ignore noexec ${HOME}
11# Add the following to your kodi.local if you use a CEC Adapter.
12#ignore nogroups
13#ignore noroot
14#ignore private-dev
11 15
12noblacklist ${HOME}/.kodi 16nodeny ${HOME}/.kodi
13noblacklist ${MUSIC} 17nodeny ${MUSIC}
14noblacklist ${PICTURES} 18nodeny ${PICTURES}
15noblacklist ${VIDEOS} 19nodeny ${VIDEOS}
16 20
17# Allow python (blacklisted by disable-interpreters.inc) 21# Allow python (blacklisted by disable-interpreters.inc)
18include allow-python2.inc 22include allow-python2.inc
diff --git a/etc/profile-a-l/konversation.profile b/etc/profile-a-l/konversation.profile
index 5b5ed6e24..d8ce33838 100644
--- a/etc/profile-a-l/konversation.profile
+++ b/etc/profile-a-l/konversation.profile
@@ -6,11 +6,11 @@ include konversation.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/konversationrc 9nodeny ${HOME}/.config/konversationrc
10noblacklist ${HOME}/.config/konversation.notifyrc 10nodeny ${HOME}/.config/konversation.notifyrc
11noblacklist ${HOME}/.kde/share/config/konversationrc 11nodeny ${HOME}/.kde/share/config/konversationrc
12noblacklist ${HOME}/.kde4/share/config/konversationrc 12nodeny ${HOME}/.kde4/share/config/konversationrc
13noblacklist ${HOME}/.local/share/kxmlgui5/konversation 13nodeny ${HOME}/.local/share/kxmlgui5/konversation
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-a-l/kopete.profile b/etc/profile-a-l/kopete.profile
index 88f47d1bf..749591f32 100644
--- a/etc/profile-a-l/kopete.profile
+++ b/etc/profile-a-l/kopete.profile
@@ -6,11 +6,11 @@ include kopete.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.kde/share/apps/kopete 9nodeny ${HOME}/.kde/share/apps/kopete
10noblacklist ${HOME}/.kde/share/config/kopeterc 10nodeny ${HOME}/.kde/share/config/kopeterc
11noblacklist ${HOME}/.kde4/share/apps/kopete 11nodeny ${HOME}/.kde4/share/apps/kopete
12noblacklist ${HOME}/.kde4/share/config/kopeterc 12nodeny ${HOME}/.kde4/share/config/kopeterc
13noblacklist ${HOME}/.local/share/kxmlgui5/kopete 13nodeny ${HOME}/.local/share/kxmlgui5/kopete
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-interpreters.inc
19include disable-passwdmgr.inc 19include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22whitelist /var/lib/winpopup 22allow /var/lib/winpopup
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
25caps.drop all 25caps.drop all
diff --git a/etc/profile-a-l/krita.profile b/etc/profile-a-l/krita.profile
index 8604e63d0..950341def 100644
--- a/etc/profile-a-l/krita.profile
+++ b/etc/profile-a-l/krita.profile
@@ -9,10 +9,10 @@ include globals.local
9# noexec ${HOME} may break krita, see issue #1953 9# noexec ${HOME} may break krita, see issue #1953
10ignore noexec ${HOME} 10ignore noexec ${HOME}
11 11
12noblacklist ${HOME}/.config/kritarc 12nodeny ${HOME}/.config/kritarc
13noblacklist ${HOME}/.local/share/krita 13nodeny ${HOME}/.local/share/krita
14noblacklist ${DOCUMENTS} 14nodeny ${DOCUMENTS}
15noblacklist ${PICTURES} 15nodeny ${PICTURES}
16 16
17# Allow python (blacklisted by disable-interpreters.inc) 17# Allow python (blacklisted by disable-interpreters.inc)
18include allow-python2.inc 18include allow-python2.inc
diff --git a/etc/profile-a-l/krunner.profile b/etc/profile-a-l/krunner.profile
index 9cb5eff87..7b325d273 100644
--- a/etc/profile-a-l/krunner.profile
+++ b/etc/profile-a-l/krunner.profile
@@ -13,9 +13,9 @@ include globals.local
13# noblacklist ${HOME}/.cache/krunner 13# noblacklist ${HOME}/.cache/krunner
14# noblacklist ${HOME}/.cache/krunnerbookmarkrunnerfirefoxdbfile.sqlite* 14# noblacklist ${HOME}/.cache/krunnerbookmarkrunnerfirefoxdbfile.sqlite*
15# noblacklist ${HOME}/.config/chromium 15# noblacklist ${HOME}/.config/chromium
16noblacklist ${HOME}/.config/krunnerrc 16nodeny ${HOME}/.config/krunnerrc
17noblacklist ${HOME}/.kde/share/config/krunnerrc 17nodeny ${HOME}/.kde/share/config/krunnerrc
18noblacklist ${HOME}/.kde4/share/config/krunnerrc 18nodeny ${HOME}/.kde4/share/config/krunnerrc
19# noblacklist ${HOME}/.local/share/baloo 19# noblacklist ${HOME}/.local/share/baloo
20# noblacklist ${HOME}/.mozilla 20# noblacklist ${HOME}/.mozilla
21 21
diff --git a/etc/profile-a-l/ktorrent.profile b/etc/profile-a-l/ktorrent.profile
index 5a85194e0..ac9fee585 100644
--- a/etc/profile-a-l/ktorrent.profile
+++ b/etc/profile-a-l/ktorrent.profile
@@ -6,13 +6,13 @@ include ktorrent.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/ktorrentrc 9nodeny ${HOME}/.config/ktorrentrc
10noblacklist ${HOME}/.kde/share/apps/ktorrent 10nodeny ${HOME}/.kde/share/apps/ktorrent
11noblacklist ${HOME}/.kde/share/config/ktorrentrc 11nodeny ${HOME}/.kde/share/config/ktorrentrc
12noblacklist ${HOME}/.kde4/share/apps/ktorrent 12nodeny ${HOME}/.kde4/share/apps/ktorrent
13noblacklist ${HOME}/.kde4/share/config/ktorrentrc 13nodeny ${HOME}/.kde4/share/config/ktorrentrc
14noblacklist ${HOME}/.local/share/ktorrent 14nodeny ${HOME}/.local/share/ktorrent
15noblacklist ${HOME}/.local/share/kxmlgui5/ktorrent 15nodeny ${HOME}/.local/share/kxmlgui5/ktorrent
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
@@ -29,14 +29,14 @@ mkdir ${HOME}/.local/share/kxmlgui5/ktorrent
29mkfile ${HOME}/.config/ktorrentrc 29mkfile ${HOME}/.config/ktorrentrc
30mkfile ${HOME}/.kde/share/config/ktorrentrc 30mkfile ${HOME}/.kde/share/config/ktorrentrc
31mkfile ${HOME}/.kde4/share/config/ktorrentrc 31mkfile ${HOME}/.kde4/share/config/ktorrentrc
32whitelist ${DOWNLOADS} 32allow ${DOWNLOADS}
33whitelist ${HOME}/.config/ktorrentrc 33allow ${HOME}/.config/ktorrentrc
34whitelist ${HOME}/.kde/share/apps/ktorrent 34allow ${HOME}/.kde/share/apps/ktorrent
35whitelist ${HOME}/.kde/share/config/ktorrentrc 35allow ${HOME}/.kde/share/config/ktorrentrc
36whitelist ${HOME}/.kde4/share/apps/ktorrent 36allow ${HOME}/.kde4/share/apps/ktorrent
37whitelist ${HOME}/.kde4/share/config/ktorrentrc 37allow ${HOME}/.kde4/share/config/ktorrentrc
38whitelist ${HOME}/.local/share/ktorrent 38allow ${HOME}/.local/share/ktorrent
39whitelist ${HOME}/.local/share/kxmlgui5/ktorrent 39allow ${HOME}/.local/share/kxmlgui5/ktorrent
40include whitelist-common.inc 40include whitelist-common.inc
41include whitelist-var-common.inc 41include whitelist-var-common.inc
42 42
diff --git a/etc/profile-a-l/ktouch.profile b/etc/profile-a-l/ktouch.profile
index 4cf72b74c..71f8e4977 100644
--- a/etc/profile-a-l/ktouch.profile
+++ b/etc/profile-a-l/ktouch.profile
@@ -6,8 +6,8 @@ include ktouch.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/ktouch2rc 9nodeny ${HOME}/.config/ktouch2rc
10noblacklist ${HOME}/.local/share/ktouch 10nodeny ${HOME}/.local/share/ktouch
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,8 +20,8 @@ include disable-xdg.inc
20 20
21mkfile ${HOME}/.config/ktouch2rc 21mkfile ${HOME}/.config/ktouch2rc
22mkdir ${HOME}/.local/share/ktouch 22mkdir ${HOME}/.local/share/ktouch
23whitelist ${HOME}/.config/ktouch2rc 23allow ${HOME}/.config/ktouch2rc
24whitelist ${HOME}/.local/share/ktouch 24allow ${HOME}/.local/share/ktouch
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-a-l/kube.profile b/etc/profile-a-l/kube.profile
index 4e9a12e5f..74ffd1162 100644
--- a/etc/profile-a-l/kube.profile
+++ b/etc/profile-a-l/kube.profile
@@ -6,13 +6,13 @@ include kube.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.gnupg 9nodeny ${HOME}/.gnupg
10noblacklist ${HOME}/.mozilla 10nodeny ${HOME}/.mozilla
11noblacklist ${HOME}/.cache/kube 11nodeny ${HOME}/.cache/kube
12noblacklist ${HOME}/.config/kube 12nodeny ${HOME}/.config/kube
13noblacklist ${HOME}/.config/sink 13nodeny ${HOME}/.config/sink
14noblacklist ${HOME}/.local/share/kube 14nodeny ${HOME}/.local/share/kube
15noblacklist ${HOME}/.local/share/sink 15nodeny ${HOME}/.local/share/sink
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
@@ -29,17 +29,17 @@ mkdir ${HOME}/.config/kube
29mkdir ${HOME}/.config/sink 29mkdir ${HOME}/.config/sink
30mkdir ${HOME}/.local/share/kube 30mkdir ${HOME}/.local/share/kube
31mkdir ${HOME}/.local/share/sink 31mkdir ${HOME}/.local/share/sink
32whitelist ${HOME}/.gnupg 32allow ${HOME}/.gnupg
33whitelist ${HOME}/.mozilla/firefox/profiles.ini 33allow ${HOME}/.mozilla/firefox/profiles.ini
34whitelist ${HOME}/.cache/kube 34allow ${HOME}/.cache/kube
35whitelist ${HOME}/.config/kube 35allow ${HOME}/.config/kube
36whitelist ${HOME}/.config/sink 36allow ${HOME}/.config/sink
37whitelist ${HOME}/.local/share/kube 37allow ${HOME}/.local/share/kube
38whitelist ${HOME}/.local/share/sink 38allow ${HOME}/.local/share/sink
39whitelist ${RUNUSER}/gnupg 39allow ${RUNUSER}/gnupg
40whitelist /usr/share/kube 40allow /usr/share/kube
41whitelist /usr/share/gnupg 41allow /usr/share/gnupg
42whitelist /usr/share/gnupg2 42allow /usr/share/gnupg2
43include whitelist-common.inc 43include whitelist-common.inc
44include whitelist-runuser-common.inc 44include whitelist-runuser-common.inc
45include whitelist-usr-share-common.inc 45include whitelist-usr-share-common.inc
diff --git a/etc/profile-a-l/kwin_x11.profile b/etc/profile-a-l/kwin_x11.profile
index 15e7ceb17..580f93736 100644
--- a/etc/profile-a-l/kwin_x11.profile
+++ b/etc/profile-a-l/kwin_x11.profile
@@ -8,10 +8,10 @@ include globals.local
8# fix automatical kwin_x11 sandboxing: 8# fix automatical kwin_x11 sandboxing:
9# echo KDEWM=kwin_x11 >> ~/.pam_environment 9# echo KDEWM=kwin_x11 >> ~/.pam_environment
10 10
11noblacklist ${HOME}/.cache/kwin 11nodeny ${HOME}/.cache/kwin
12noblacklist ${HOME}/.config/kwinrc 12nodeny ${HOME}/.config/kwinrc
13noblacklist ${HOME}/.config/kwinrulesrc 13nodeny ${HOME}/.config/kwinrulesrc
14noblacklist ${HOME}/.local/share/kwin 14nodeny ${HOME}/.local/share/kwin
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-a-l/kwrite.profile b/etc/profile-a-l/kwrite.profile
index 804ffafeb..08b0e0224 100644
--- a/etc/profile-a-l/kwrite.profile
+++ b/etc/profile-a-l/kwrite.profile
@@ -6,15 +6,15 @@ include kwrite.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/katepartrc 9nodeny ${HOME}/.config/katepartrc
10noblacklist ${HOME}/.config/katerc 10nodeny ${HOME}/.config/katerc
11noblacklist ${HOME}/.config/kateschemarc 11nodeny ${HOME}/.config/kateschemarc
12noblacklist ${HOME}/.config/katesyntaxhighlightingrc 12nodeny ${HOME}/.config/katesyntaxhighlightingrc
13noblacklist ${HOME}/.config/katevirc 13nodeny ${HOME}/.config/katevirc
14noblacklist ${HOME}/.config/kwriterc 14nodeny ${HOME}/.config/kwriterc
15noblacklist ${HOME}/.local/share/kwrite 15nodeny ${HOME}/.local/share/kwrite
16noblacklist ${HOME}/.local/share/kxmlgui5/kwrite 16nodeny ${HOME}/.local/share/kxmlgui5/kwrite
17noblacklist ${DOCUMENTS} 17nodeny ${DOCUMENTS}
18 18
19include disable-common.inc 19include disable-common.inc
20include disable-devel.inc 20include disable-devel.inc
diff --git a/etc/profile-a-l/latex-common.profile b/etc/profile-a-l/latex-common.profile
index ac1b8785d..91693bfc1 100644
--- a/etc/profile-a-l/latex-common.profile
+++ b/etc/profile-a-l/latex-common.profile
@@ -13,7 +13,7 @@ include disable-interpreters.inc
13include disable-passwdmgr.inc 13include disable-passwdmgr.inc
14include disable-programs.inc 14include disable-programs.inc
15 15
16whitelist /var/lib 16allow /var/lib
17include whitelist-runuser-common.inc 17include whitelist-runuser-common.inc
18include whitelist-var-common.inc 18include whitelist-var-common.inc
19 19
diff --git a/etc/profile-a-l/leafpad.profile b/etc/profile-a-l/leafpad.profile
index 4bbb0a86d..e154708eb 100644
--- a/etc/profile-a-l/leafpad.profile
+++ b/etc/profile-a-l/leafpad.profile
@@ -6,7 +6,7 @@ include leafpad.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/leafpad 9nodeny ${HOME}/.config/leafpad
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/less.profile b/etc/profile-a-l/less.profile
index 8eb5ad0c2..abee392de 100644
--- a/etc/profile-a-l/less.profile
+++ b/etc/profile-a-l/less.profile
@@ -7,9 +7,9 @@ include less.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12noblacklist ${HOME}/.lesshst 12nodeny ${HOME}/.lesshst
13 13
14include disable-devel.inc 14include disable-devel.inc
15include disable-exec.inc 15include disable-exec.inc
diff --git a/etc/profile-a-l/librecad.profile b/etc/profile-a-l/librecad.profile
new file mode 100644
index 000000000..8ec41eee3
--- /dev/null
+++ b/etc/profile-a-l/librecad.profile
@@ -0,0 +1,51 @@
1# Firejail profile for librecad
2# Persistent local customizations
3include librecad.local
4# Persistent global definitions
5include globals.local
6
7nodeny ${HOME}/.config/LibreCAD
8nodeny ${HOME}/.local/share/LibreCAD
9
10include disable-common.inc
11include disable-devel.inc
12include disable-exec.inc
13include disable-interpreters.inc
14include disable-passwdmgr.inc
15include disable-programs.inc
16include disable-shell.inc
17include disable-xdg.inc
18
19allow /usr/share/librecad
20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc
22
23apparmor
24caps.drop all
25ipc-namespace
26netfilter
27nodvd
28#nogroups
29#noinput
30nonewprivs
31noroot
32notv
33#nou2f
34novideo
35protocol unix,inet,inet6
36netfilter
37seccomp
38shell none
39#tracelog
40
41#disable-mnt
42private-bin librecad
43private-dev
44# private-etc cups,drirc,fonts,passwd,xdg
45#private-lib
46private-tmp
47
48dbus-user none
49dbus-system none
50
51memory-deny-write-execute
diff --git a/etc/profile-a-l/libreoffice.profile b/etc/profile-a-l/libreoffice.profile
index e4440eac0..ae01d39b8 100644
--- a/etc/profile-a-l/libreoffice.profile
+++ b/etc/profile-a-l/libreoffice.profile
@@ -6,14 +6,16 @@ include libreoffice.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /usr/local/sbin 9nodeny /usr/local/sbin
10noblacklist ${HOME}/.config/libreoffice 10nodeny ${HOME}/.config/libreoffice
11 11
12# libreoffice uses java for some functionality. 12# libreoffice uses java for some functionality.
13# Add 'ignore include allow-java.inc' to your libreoffice.local if you don't need that functionality. 13# Add 'ignore include allow-java.inc' to your libreoffice.local if you don't need that functionality.
14# Allow java (blacklisted by disable-devel.inc) 14# Allow java (blacklisted by disable-devel.inc)
15include allow-java.inc 15include allow-java.inc
16 16
17deny /usr/libexec
18
17include disable-common.inc 19include disable-common.inc
18include disable-devel.inc 20include disable-devel.inc
19include disable-exec.inc 21include disable-exec.inc
diff --git a/etc/profile-a-l/librewolf.profile b/etc/profile-a-l/librewolf.profile
index 8e3e58f19..5c614ab8e 100644
--- a/etc/profile-a-l/librewolf.profile
+++ b/etc/profile-a-l/librewolf.profile
@@ -6,13 +6,13 @@ include librewolf.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/librewolf 9nodeny ${HOME}/.cache/librewolf
10noblacklist ${HOME}/.librewolf 10nodeny ${HOME}/.librewolf
11 11
12mkdir ${HOME}/.cache/librewolf 12mkdir ${HOME}/.cache/librewolf
13mkdir ${HOME}/.librewolf 13mkdir ${HOME}/.librewolf
14whitelist ${HOME}/.cache/librewolf 14allow ${HOME}/.cache/librewolf
15whitelist ${HOME}/.librewolf 15allow ${HOME}/.librewolf
16 16
17# Add the next lines to your librewolf.local if you want to use the migration wizard. 17# Add the next lines to your librewolf.local if you want to use the migration wizard.
18#noblacklist ${HOME}/.mozilla 18#noblacklist ${HOME}/.mozilla
@@ -23,10 +23,10 @@ whitelist ${HOME}/.librewolf
23#whitelist ${RUNUSER}/kpxc_server 23#whitelist ${RUNUSER}/kpxc_server
24#whitelist ${RUNUSER}/org.keepassxc.KeePassXC.BrowserServer 24#whitelist ${RUNUSER}/org.keepassxc.KeePassXC.BrowserServer
25 25
26whitelist /usr/share/doc 26allow /usr/share/doc
27whitelist /usr/share/gtk-doc/html 27allow /usr/share/gtk-doc/html
28whitelist /usr/share/mozilla 28allow /usr/share/mozilla
29whitelist /usr/share/webext 29allow /usr/share/webext
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31 31
32# Add the next line to your librewolf.local to enable private-bin (Arch Linux). 32# Add the next line to your librewolf.local to enable private-bin (Arch Linux).
@@ -44,8 +44,9 @@ dbus-user filter
44#dbus-user.own org.mpris.MediaPlayer2.plasma-browser-integration 44#dbus-user.own org.mpris.MediaPlayer2.plasma-browser-integration
45#dbus-user.talk org.kde.JobViewServer 45#dbus-user.talk org.kde.JobViewServer
46#dbus-user.talk org.kde.kuiserver 46#dbus-user.talk org.kde.kuiserver
47# Add the next lines to your librewolf.local to allow screensharing under Wayland. 47# Add the next three lines to your librewolf.local to allow screensharing under Wayland.
48#whitelist ${RUNUSER}/pipewire-0 48#whitelist ${RUNUSER}/pipewire-0
49#whitelist /usr/share/pipewire/client.conf
49#dbus-user.talk org.freedesktop.portal.* 50#dbus-user.talk org.freedesktop.portal.*
50# Also add the next line to your librewolf.local if screensharing does not work with 51# Also add the next line to your librewolf.local if screensharing does not work with
51# the above lines (depends on the portal implementation). 52# the above lines (depends on the portal implementation).
diff --git a/etc/profile-a-l/liferea.profile b/etc/profile-a-l/liferea.profile
index 7afca1d5f..595ecc257 100644
--- a/etc/profile-a-l/liferea.profile
+++ b/etc/profile-a-l/liferea.profile
@@ -6,9 +6,9 @@ include liferea.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/liferea 9nodeny ${HOME}/.cache/liferea
10noblacklist ${HOME}/.config/liferea 10nodeny ${HOME}/.config/liferea
11noblacklist ${HOME}/.local/share/liferea 11nodeny ${HOME}/.local/share/liferea
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
@@ -24,10 +24,10 @@ include disable-programs.inc
24mkdir ${HOME}/.cache/liferea 24mkdir ${HOME}/.cache/liferea
25mkdir ${HOME}/.config/liferea 25mkdir ${HOME}/.config/liferea
26mkdir ${HOME}/.local/share/liferea 26mkdir ${HOME}/.local/share/liferea
27whitelist ${HOME}/.cache/liferea 27allow ${HOME}/.cache/liferea
28whitelist ${HOME}/.config/liferea 28allow ${HOME}/.config/liferea
29whitelist ${HOME}/.local/share/liferea 29allow ${HOME}/.local/share/liferea
30whitelist /usr/share/liferea 30allow /usr/share/liferea
31include whitelist-common.inc 31include whitelist-common.inc
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
33include whitelist-var-common.inc 33include whitelist-var-common.inc
diff --git a/etc/profile-a-l/lightsoff.profile b/etc/profile-a-l/lightsoff.profile
index c065c44a9..58d5bcd6d 100644
--- a/etc/profile-a-l/lightsoff.profile
+++ b/etc/profile-a-l/lightsoff.profile
@@ -6,7 +6,7 @@ include lightsoff.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9whitelist /usr/share/lightsoff 9allow /usr/share/lightsoff
10 10
11private-bin lightsoff 11private-bin lightsoff
12 12
diff --git a/etc/profile-a-l/lincity-ng.profile b/etc/profile-a-l/lincity-ng.profile
index 4254b7f33..e14c50d77 100644
--- a/etc/profile-a-l/lincity-ng.profile
+++ b/etc/profile-a-l/lincity-ng.profile
@@ -6,7 +6,7 @@ include lincity-ng.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.lincity-ng 9nodeny ${HOME}/.lincity-ng
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.lincity-ng 20mkdir ${HOME}/.lincity-ng
21whitelist ${HOME}/.lincity-ng 21allow ${HOME}/.lincity-ng
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-a-l/links-common.profile b/etc/profile-a-l/links-common.profile
new file mode 100644
index 000000000..51e3d5b94
--- /dev/null
+++ b/etc/profile-a-l/links-common.profile
@@ -0,0 +1,63 @@
1# This file is overwritten during software install.
2# Persistent customizations should go in a .local file.
3include links-common.local
4
5# common profile for links browsers
6
7deny /tmp/.X11-unix
8deny ${RUNUSER}/wayland-*
9
10include disable-common.inc
11include disable-devel.inc
12include disable-exec.inc
13include disable-interpreters.inc
14include disable-passwdmgr.inc
15# Additional noblacklist files/directories (blacklisted in disable-programs.inc)
16# used as associated programs can be added in your links-common.local.
17include disable-programs.inc
18include disable-xdg.inc
19
20allow ${DOWNLOADS}
21include whitelist-runuser-common.inc
22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc
24
25caps.drop all
26ipc-namespace
27# Add 'ignore machine-id' to your links-common.local if you want to restrict access to
28# the user-configured associated media player.
29machine-id
30netfilter
31# Add 'ignore no3d' to your links-common.local if you want to restrict access to
32# the user-configured associated media player.
33no3d
34nodvd
35nogroups
36noinput
37nonewprivs
38noroot
39# Add 'ignore nosound' to your links-common.local if you want to restrict access to
40# the user-configured associated media player.
41nosound
42notv
43nou2f
44novideo
45protocol unix,inet,inet6
46seccomp
47shell none
48tracelog
49
50disable-mnt
51# Add 'private-bin PROGRAM1,PROGRAM2' to your links-common.local if you want to use user-configured programs.
52private-bin sh
53private-cache
54private-dev
55private-etc alternatives,ca-certificates,crypto-policies,nsswitch.conf,pki,resolv.conf,ssl
56# Add the next line to your links-common.local to allow external media players.
57# private-etc alsa,asound.conf,machine-id,openal,pulse
58private-tmp
59
60dbus-user none
61dbus-system none
62
63memory-deny-write-execute
diff --git a/etc/profile-a-l/links.profile b/etc/profile-a-l/links.profile
index a1eeda14a..ae57601ca 100644
--- a/etc/profile-a-l/links.profile
+++ b/etc/profile-a-l/links.profile
@@ -7,60 +7,12 @@ include links.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.links 10nodeny ${HOME}/.links
11
12blacklist /tmp/.X11-unix
13blacklist ${RUNUSER}/wayland-*
14
15include disable-common.inc
16include disable-devel.inc
17include disable-exec.inc
18include disable-interpreters.inc
19include disable-passwdmgr.inc
20# Additional noblacklist files/directories (blacklisted in disable-programs.inc)
21# used as associated programs can be added in your links.local.
22include disable-programs.inc
23include disable-xdg.inc
24 11
25mkdir ${HOME}/.links 12mkdir ${HOME}/.links
26whitelist ${HOME}/.links 13allow ${HOME}/.links
27whitelist ${DOWNLOADS}
28include whitelist-runuser-common.inc
29include whitelist-var-common.inc
30
31caps.drop all
32ipc-namespace
33# Add 'ignore machine-id' to your links.local if you want to restrict access to
34# the user-configured associated media player.
35machine-id
36netfilter
37# Add 'ignore no3d' to your links.local if you want to restrict access to
38# the user-configured associated media player.
39no3d
40nodvd
41nogroups
42noinput
43nonewprivs
44noroot
45# Add 'ignore nosound' to your links.local if you want to restrict access to
46# the user-configured associated media player.
47nosound
48notv
49nou2f
50novideo
51protocol unix,inet,inet6
52seccomp
53shell none
54tracelog
55 14
56disable-mnt 15private-bin links
57# Add 'private-bin PROGRAM1,PROGRAM2' to your links.local if you want to use user-configured programs.
58private-bin links,sh
59private-cache
60private-dev
61private-etc alternatives,ca-certificates,crypto-policies,nsswitch.conf,pki,resolv.conf,ssl
62# Add the next line to your links.local to allow external media players.
63# private-etc alsa,asound.conf,machine-id,openal,pulse
64private-tmp
65 16
66memory-deny-write-execute 17# Redirect
18include links-common.profile
diff --git a/etc/profile-a-l/links2.profile b/etc/profile-a-l/links2.profile
new file mode 100644
index 000000000..eb349c73a
--- /dev/null
+++ b/etc/profile-a-l/links2.profile
@@ -0,0 +1,18 @@
1# Firejail profile for links2
2# Description: Text WWW browser with a graphic version
3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations
6include links2.local
7# Persistent global definitions
8include globals.local
9
10nodeny ${HOME}/.links2
11
12mkdir ${HOME}/.links2
13allow ${HOME}/.links2
14
15private-bin links2
16
17# Redirect
18include links-common.profile
diff --git a/etc/profile-a-l/linphone.profile b/etc/profile-a-l/linphone.profile
index 7ebdbef4c..dd1dac05b 100644
--- a/etc/profile-a-l/linphone.profile
+++ b/etc/profile-a-l/linphone.profile
@@ -6,10 +6,10 @@ include linphone.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/linphone 9nodeny ${HOME}/.config/linphone
10noblacklist ${HOME}/.linphone-history.db 10nodeny ${HOME}/.linphone-history.db
11noblacklist ${HOME}/.linphonerc 11nodeny ${HOME}/.linphonerc
12noblacklist ${HOME}/.local/share/linphone 12nodeny ${HOME}/.local/share/linphone
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -23,11 +23,11 @@ include disable-programs.inc
23# ${HOME}/.linphone-history.db and ${HOME}/.linphonerc but no longer mkfile. 23# ${HOME}/.linphone-history.db and ${HOME}/.linphonerc but no longer mkfile.
24mkdir ${HOME}/.config/linphone 24mkdir ${HOME}/.config/linphone
25mkdir ${HOME}/.local/share/linphone 25mkdir ${HOME}/.local/share/linphone
26whitelist ${HOME}/.config/linphone 26allow ${HOME}/.config/linphone
27whitelist ${HOME}/.linphone-history.db 27allow ${HOME}/.linphone-history.db
28whitelist ${HOME}/.linphonerc 28allow ${HOME}/.linphonerc
29whitelist ${HOME}/.local/share/linphone 29allow ${HOME}/.local/share/linphone
30whitelist ${DOWNLOADS} 30allow ${DOWNLOADS}
31include whitelist-common.inc 31include whitelist-common.inc
32 32
33caps.drop all 33caps.drop all
diff --git a/etc/profile-a-l/lmms.profile b/etc/profile-a-l/lmms.profile
index 48b0e14dc..b22110fdc 100644
--- a/etc/profile-a-l/lmms.profile
+++ b/etc/profile-a-l/lmms.profile
@@ -6,9 +6,9 @@ include lmms.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.lmmsrc.xml 9nodeny ${HOME}/.lmmsrc.xml
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/lollypop.profile b/etc/profile-a-l/lollypop.profile
index f2676fec5..0a7ce86e8 100644
--- a/etc/profile-a-l/lollypop.profile
+++ b/etc/profile-a-l/lollypop.profile
@@ -6,8 +6,8 @@ include lollypop.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/lollypop 9nodeny ${HOME}/.local/share/lollypop
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-a-l/lugaru.profile b/etc/profile-a-l/lugaru.profile
index 174c65a65..30802b3b7 100644
--- a/etc/profile-a-l/lugaru.profile
+++ b/etc/profile-a-l/lugaru.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9# note: crashes after entering 9# note: crashes after entering
10 10
11noblacklist ${HOME}/.config/lugaru 11nodeny ${HOME}/.config/lugaru
12noblacklist ${HOME}/.local/share/lugaru 12nodeny ${HOME}/.local/share/lugaru
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -22,8 +22,8 @@ include disable-xdg.inc
22 22
23mkdir ${HOME}/.config/lugaru 23mkdir ${HOME}/.config/lugaru
24mkdir ${HOME}/.local/share/lugaru 24mkdir ${HOME}/.local/share/lugaru
25whitelist ${HOME}/.config/lugaru 25allow ${HOME}/.config/lugaru
26whitelist ${HOME}/.local/share/lugaru 26allow ${HOME}/.local/share/lugaru
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
29 29
diff --git a/etc/profile-a-l/luminance-hdr.profile b/etc/profile-a-l/luminance-hdr.profile
index 31067034e..73400dbd6 100644
--- a/etc/profile-a-l/luminance-hdr.profile
+++ b/etc/profile-a-l/luminance-hdr.profile
@@ -6,8 +6,8 @@ include luminance-hdr.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Luminance 9nodeny ${HOME}/.config/Luminance
10noblacklist ${PICTURES} 10nodeny ${PICTURES}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-a-l/lutris.profile b/etc/profile-a-l/lutris.profile
index 80a3aba86..9d5169b80 100644
--- a/etc/profile-a-l/lutris.profile
+++ b/etc/profile-a-l/lutris.profile
@@ -6,18 +6,18 @@ include lutris.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PATH}/llvm* 9nodeny ${PATH}/llvm*
10noblacklist ${HOME}/Games 10nodeny ${HOME}/Games
11noblacklist ${HOME}/.cache/lutris 11nodeny ${HOME}/.cache/lutris
12noblacklist ${HOME}/.cache/winetricks 12nodeny ${HOME}/.cache/winetricks
13noblacklist ${HOME}/.config/lutris 13nodeny ${HOME}/.config/lutris
14noblacklist ${HOME}/.local/share/lutris 14nodeny ${HOME}/.local/share/lutris
15# noblacklist ${HOME}/.wine 15# noblacklist ${HOME}/.wine
16noblacklist /tmp/.wine-* 16nodeny /tmp/.wine-*
17# Don't block access to /sbin and /usr/sbin to allow using ldconfig. Otherwise 17# Don't block access to /sbin and /usr/sbin to allow using ldconfig. Otherwise
18# Lutris won't even start. 18# Lutris won't even start.
19noblacklist /sbin 19nodeny /sbin
20noblacklist /usr/sbin 20nodeny /usr/sbin
21 21
22ignore noexec ${HOME} 22ignore noexec ${HOME}
23 23
@@ -39,15 +39,15 @@ mkdir ${HOME}/.cache/winetricks
39mkdir ${HOME}/.config/lutris 39mkdir ${HOME}/.config/lutris
40mkdir ${HOME}/.local/share/lutris 40mkdir ${HOME}/.local/share/lutris
41# mkdir ${HOME}/.wine 41# mkdir ${HOME}/.wine
42whitelist ${DOWNLOADS} 42allow ${DOWNLOADS}
43whitelist ${HOME}/Games 43allow ${HOME}/Games
44whitelist ${HOME}/.cache/lutris 44allow ${HOME}/.cache/lutris
45whitelist ${HOME}/.cache/winetricks 45allow ${HOME}/.cache/winetricks
46whitelist ${HOME}/.config/lutris 46allow ${HOME}/.config/lutris
47whitelist ${HOME}/.local/share/lutris 47allow ${HOME}/.local/share/lutris
48# whitelist ${HOME}/.wine 48# whitelist ${HOME}/.wine
49whitelist /usr/share/lutris 49allow /usr/share/lutris
50whitelist /usr/share/wine 50allow /usr/share/wine
51include whitelist-common.inc 51include whitelist-common.inc
52include whitelist-usr-share-common.inc 52include whitelist-usr-share-common.inc
53include whitelist-runuser-common.inc 53include whitelist-runuser-common.inc
diff --git a/etc/profile-a-l/lximage-qt.profile b/etc/profile-a-l/lximage-qt.profile
index b2a56012e..43147211b 100644
--- a/etc/profile-a-l/lximage-qt.profile
+++ b/etc/profile-a-l/lximage-qt.profile
@@ -6,7 +6,7 @@ include lximage-qt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/lximage-qt 9nodeny ${HOME}/.config/lximage-qt
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-a-l/lxmusic.profile b/etc/profile-a-l/lxmusic.profile
index cc4b95551..c849f2ad2 100644
--- a/etc/profile-a-l/lxmusic.profile
+++ b/etc/profile-a-l/lxmusic.profile
@@ -6,9 +6,9 @@ include lxmusic.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/xmms2 9nodeny ${HOME}/.cache/xmms2
10noblacklist ${HOME}/.config/xmms2 10nodeny ${HOME}/.config/xmms2
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/lynx.profile b/etc/profile-a-l/lynx.profile
index a919e924b..15c8f1faa 100644
--- a/etc/profile-a-l/lynx.profile
+++ b/etc/profile-a-l/lynx.profile
@@ -7,8 +7,8 @@ include lynx.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER}/wayland-* 11deny ${RUNUSER}/wayland-*
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-a-l/lyx.profile b/etc/profile-a-l/lyx.profile
index fa69463d1..358dbf2f2 100644
--- a/etc/profile-a-l/lyx.profile
+++ b/etc/profile-a-l/lyx.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9ignore private-tmp 9ignore private-tmp
10 10
11noblacklist ${HOME}/.config/LyX 11nodeny ${HOME}/.config/LyX
12noblacklist ${HOME}/.lyx 12nodeny ${HOME}/.lyx
13 13
14# Allow lua (blacklisted by disable-interpreters.inc) 14# Allow lua (blacklisted by disable-interpreters.inc)
15include allow-lua.inc 15include allow-lua.inc
@@ -21,11 +21,11 @@ include allow-perl.inc
21include allow-python2.inc 21include allow-python2.inc
22include allow-python3.inc 22include allow-python3.inc
23 23
24whitelist /usr/share/lyx 24allow /usr/share/lyx
25whitelist /usr/share/texinfo 25allow /usr/share/texinfo
26whitelist /usr/share/texlive 26allow /usr/share/texlive
27whitelist /usr/share/texmf-dist 27allow /usr/share/texmf-dist
28whitelist /usr/share/tlpkg 28allow /usr/share/tlpkg
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
30 30
31apparmor 31apparmor
diff --git a/etc/profile-a-l/sway.profile b/etc/profile-a-l/sway.profile
index 4637419bf..3a4edcf69 100644
--- a/etc/profile-a-l/sway.profile
+++ b/etc/profile-a-l/sway.profile
@@ -7,9 +7,9 @@ include sway.local
7include globals.local 7include globals.local
8 8
9# all applications started in sway will run in this profile 9# all applications started in sway will run in this profile
10noblacklist ${HOME}/.config/sway 10nodeny ${HOME}/.config/sway
11# sway uses ~/.config/i3 as fallback if there is no ~/.config/sway 11# sway uses ~/.config/i3 as fallback if there is no ~/.config/sway
12noblacklist ${HOME}/.config/i3 12nodeny ${HOME}/.config/i3
13include disable-common.inc 13include disable-common.inc
14 14
15caps.drop all 15caps.drop all
diff --git a/etc/profile-m-z/Maelstrom.profile b/etc/profile-m-z/Maelstrom.profile
index 62d0a8b3a..e6c43007d 100644
--- a/etc/profile-m-z/Maelstrom.profile
+++ b/etc/profile-m-z/Maelstrom.profile
@@ -6,7 +6,7 @@ include Maelstrom.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /var/lib/games/Maelstrom-Scores 9nodeny /var/lib/games/Maelstrom-Scores
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist /var/lib/games 20allow /var/lib/games
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-m-z/Mathematica.profile b/etc/profile-m-z/Mathematica.profile
index c2734b1c1..bd929d21a 100644
--- a/etc/profile-m-z/Mathematica.profile
+++ b/etc/profile-m-z/Mathematica.profile
@@ -5,8 +5,8 @@ include Mathematica.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.Mathematica 8nodeny ${HOME}/.Mathematica
9noblacklist ${HOME}/.Wolfram Research 9nodeny ${HOME}/.Wolfram Research
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,9 +17,9 @@ include disable-programs.inc
17mkdir ${HOME}/.Mathematica 17mkdir ${HOME}/.Mathematica
18mkdir ${HOME}/.Wolfram Research 18mkdir ${HOME}/.Wolfram Research
19mkdir ${HOME}/Documents/Wolfram Mathematica 19mkdir ${HOME}/Documents/Wolfram Mathematica
20whitelist ${HOME}/.Mathematica 20allow ${HOME}/.Mathematica
21whitelist ${HOME}/.Wolfram Research 21allow ${HOME}/.Wolfram Research
22whitelist ${HOME}/Documents/Wolfram Mathematica 22allow ${HOME}/Documents/Wolfram Mathematica
23include whitelist-common.inc 23include whitelist-common.inc
24 24
25caps.drop all 25caps.drop all
diff --git a/etc/profile-m-z/PCSX2.profile b/etc/profile-m-z/PCSX2.profile
index e678b7204..f833b9446 100644
--- a/etc/profile-m-z/PCSX2.profile
+++ b/etc/profile-m-z/PCSX2.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9# Note: you must whitelist your games folder in your PCSX2.local. 9# Note: you must whitelist your games folder in your PCSX2.local.
10 10
11noblacklist ${HOME}/.config/PCSX2 11nodeny ${HOME}/.config/PCSX2
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -21,7 +21,7 @@ include disable-write-mnt.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.config/PCSX2 23mkdir ${HOME}/.config/PCSX2
24whitelist ${HOME}/.config/PCSX2 24allow ${HOME}/.config/PCSX2
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/QMediathekView.profile b/etc/profile-m-z/QMediathekView.profile
index 86120587b..d7b01fe06 100644
--- a/etc/profile-m-z/QMediathekView.profile
+++ b/etc/profile-m-z/QMediathekView.profile
@@ -6,18 +6,18 @@ include QMediathekView.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/QMediathekView 9nodeny ${HOME}/.config/QMediathekView
10noblacklist ${HOME}/.local/share/QMediathekView 10nodeny ${HOME}/.local/share/QMediathekView
11 11
12noblacklist ${HOME}/.config/mpv 12nodeny ${HOME}/.config/mpv
13noblacklist ${HOME}/.config/smplayer 13nodeny ${HOME}/.config/smplayer
14noblacklist ${HOME}/.config/totem 14nodeny ${HOME}/.config/totem
15noblacklist ${HOME}/.config/vlc 15nodeny ${HOME}/.config/vlc
16noblacklist ${HOME}/.config/xplayer 16nodeny ${HOME}/.config/xplayer
17noblacklist ${HOME}/.local/share/totem 17nodeny ${HOME}/.local/share/totem
18noblacklist ${HOME}/.local/share/xplayer 18nodeny ${HOME}/.local/share/xplayer
19noblacklist ${HOME}/.mplayer 19nodeny ${HOME}/.mplayer
20noblacklist ${VIDEOS} 20nodeny ${VIDEOS}
21 21
22include disable-common.inc 22include disable-common.inc
23include disable-devel.inc 23include disable-devel.inc
@@ -28,7 +28,7 @@ include disable-programs.inc
28include disable-shell.inc 28include disable-shell.inc
29include disable-xdg.inc 29include disable-xdg.inc
30 30
31whitelist /usr/share/qtchooser 31allow /usr/share/qtchooser
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
33include whitelist-var-common.inc 33include whitelist-var-common.inc
34 34
diff --git a/etc/profile-m-z/QOwnNotes.profile b/etc/profile-m-z/QOwnNotes.profile
index 660378089..4ca42730a 100644
--- a/etc/profile-m-z/QOwnNotes.profile
+++ b/etc/profile-m-z/QOwnNotes.profile
@@ -6,10 +6,10 @@ include QOwnNotes.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${HOME}/Nextcloud/Notes 10nodeny ${HOME}/Nextcloud/Notes
11noblacklist ${HOME}/.config/PBE 11nodeny ${HOME}/.config/PBE
12noblacklist ${HOME}/.local/share/PBE 12nodeny ${HOME}/.local/share/PBE
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -23,10 +23,10 @@ include disable-xdg.inc
23mkdir ${HOME}/Nextcloud/Notes 23mkdir ${HOME}/Nextcloud/Notes
24mkdir ${HOME}/.config/PBE 24mkdir ${HOME}/.config/PBE
25mkdir ${HOME}/.local/share/PBE 25mkdir ${HOME}/.local/share/PBE
26whitelist ${DOCUMENTS} 26allow ${DOCUMENTS}
27whitelist ${HOME}/Nextcloud/Notes 27allow ${HOME}/Nextcloud/Notes
28whitelist ${HOME}/.config/PBE 28allow ${HOME}/.config/PBE
29whitelist ${HOME}/.local/share/PBE 29allow ${HOME}/.local/share/PBE
30include whitelist-common.inc 30include whitelist-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
32 32
diff --git a/etc/profile-m-z/Viber.profile b/etc/profile-m-z/Viber.profile
index 3195e39fa..b98847d3a 100644
--- a/etc/profile-m-z/Viber.profile
+++ b/etc/profile-m-z/Viber.profile
@@ -5,8 +5,8 @@ include Viber.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.ViberPC 8nodeny ${HOME}/.ViberPC
9noblacklist ${PATH}/dig 9nodeny ${PATH}/dig
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,8 +16,8 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18mkdir ${HOME}/.ViberPC 18mkdir ${HOME}/.ViberPC
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.ViberPC 20allow ${HOME}/.ViberPC
21include whitelist-common.inc 21include whitelist-common.inc
22 22
23caps.drop all 23caps.drop all
diff --git a/etc/profile-m-z/XMind.profile b/etc/profile-m-z/XMind.profile
index d78e04595..c9cf7adf7 100644
--- a/etc/profile-m-z/XMind.profile
+++ b/etc/profile-m-z/XMind.profile
@@ -5,7 +5,7 @@ include XMind.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.xmind 8nodeny ${HOME}/.xmind
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
@@ -15,8 +15,8 @@ include disable-passwdmgr.inc
15include disable-programs.inc 15include disable-programs.inc
16 16
17mkdir ${HOME}/.xmind 17mkdir ${HOME}/.xmind
18whitelist ${HOME}/.xmind 18allow ${HOME}/.xmind
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20include whitelist-common.inc 20include whitelist-common.inc
21 21
22caps.drop all 22caps.drop all
diff --git a/etc/profile-m-z/Xephyr.profile b/etc/profile-m-z/Xephyr.profile
index 5cf5161ce..7ba1cdac9 100644
--- a/etc/profile-m-z/Xephyr.profile
+++ b/etc/profile-m-z/Xephyr.profile
@@ -15,7 +15,7 @@ include globals.local
15# or run "sudo firecfg" 15# or run "sudo firecfg"
16# 16#
17 17
18whitelist /var/lib/xkb 18allow /var/lib/xkb
19include whitelist-common.inc 19include whitelist-common.inc
20 20
21caps.drop all 21caps.drop all
diff --git a/etc/profile-m-z/Xvfb.profile b/etc/profile-m-z/Xvfb.profile
index 1acd43023..a246ccb23 100644
--- a/etc/profile-m-z/Xvfb.profile
+++ b/etc/profile-m-z/Xvfb.profile
@@ -18,7 +18,7 @@ include globals.local
18# some Linux distributions. Also, older versions of Xpra use Xvfb. 18# some Linux distributions. Also, older versions of Xpra use Xvfb.
19# 19#
20 20
21whitelist /var/lib/xkb 21allow /var/lib/xkb
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-m-z/ZeGrapher.profile b/etc/profile-m-z/ZeGrapher.profile
index 7686c3442..4f65ad7d1 100644
--- a/etc/profile-m-z/ZeGrapher.profile
+++ b/etc/profile-m-z/ZeGrapher.profile
@@ -6,7 +6,7 @@ include ZeGrapher.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/ZeGrapher Project 9nodeny ${HOME}/.config/ZeGrapher Project
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19whitelist /usr/share/ZeGrapher 19allow /usr/share/ZeGrapher
20include whitelist-runuser-common.inc 20include whitelist-runuser-common.inc
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
diff --git a/etc/profile-m-z/macrofusion.profile b/etc/profile-m-z/macrofusion.profile
index d1dcb6fe0..763d475bb 100644
--- a/etc/profile-m-z/macrofusion.profile
+++ b/etc/profile-m-z/macrofusion.profile
@@ -5,8 +5,8 @@ include macrofusion.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/mfusion 8nodeny ${HOME}/.config/mfusion
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
diff --git a/etc/profile-m-z/magicor.profile b/etc/profile-m-z/magicor.profile
index 8a27b2626..d561a5095 100644
--- a/etc/profile-m-z/magicor.profile
+++ b/etc/profile-m-z/magicor.profile
@@ -6,7 +6,7 @@ include magicor.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.magicor 9nodeny ${HOME}/.magicor
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -21,8 +21,8 @@ include disable-shell.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.magicor 23mkdir ${HOME}/.magicor
24whitelist ${HOME}/.magicor 24allow ${HOME}/.magicor
25whitelist /usr/share/magicor 25allow /usr/share/magicor
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
diff --git a/etc/profile-m-z/makepkg.profile b/etc/profile-m-z/makepkg.profile
index 513fcae55..a7c486c9f 100644
--- a/etc/profile-m-z/makepkg.profile
+++ b/etc/profile-m-z/makepkg.profile
@@ -6,8 +6,8 @@ include makepkg.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist /tmp/.X11-unix 9deny /tmp/.X11-unix
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12# Note: see this Arch forum discussion https://bbs.archlinux.org/viewtopic.php?pid=1743138 12# Note: see this Arch forum discussion https://bbs.archlinux.org/viewtopic.php?pid=1743138
13# for potential issues and their solutions when Firejailing makepkg 13# for potential issues and their solutions when Firejailing makepkg
@@ -17,18 +17,18 @@ blacklist ${RUNUSER}/wayland-*
17# whitelist ${HOME}/.gnupg 17# whitelist ${HOME}/.gnupg
18 18
19# Enable severely restricted access to ${HOME}/.gnupg 19# Enable severely restricted access to ${HOME}/.gnupg
20noblacklist ${HOME}/.gnupg 20nodeny ${HOME}/.gnupg
21read-only ${HOME}/.gnupg/gpg.conf 21read-only ${HOME}/.gnupg/gpg.conf
22read-only ${HOME}/.gnupg/trustdb.gpg 22read-only ${HOME}/.gnupg/trustdb.gpg
23read-only ${HOME}/.gnupg/pubring.kbx 23read-only ${HOME}/.gnupg/pubring.kbx
24blacklist ${HOME}/.gnupg/random_seed 24deny ${HOME}/.gnupg/random_seed
25blacklist ${HOME}/.gnupg/pubring.kbx~ 25deny ${HOME}/.gnupg/pubring.kbx~
26blacklist ${HOME}/.gnupg/private-keys-v1.d 26deny ${HOME}/.gnupg/private-keys-v1.d
27blacklist ${HOME}/.gnupg/crls.d 27deny ${HOME}/.gnupg/crls.d
28blacklist ${HOME}/.gnupg/openpgp-revocs.d 28deny ${HOME}/.gnupg/openpgp-revocs.d
29 29
30# Arch Linux (based distributions) need access to /var/lib/pacman. As we drop all capabilities this is automatically read-only. 30# Arch Linux (based distributions) need access to /var/lib/pacman. As we drop all capabilities this is automatically read-only.
31noblacklist /var/lib/pacman 31nodeny /var/lib/pacman
32 32
33include disable-common.inc 33include disable-common.inc
34include disable-exec.inc 34include disable-exec.inc
diff --git a/etc/profile-m-z/man.profile b/etc/profile-m-z/man.profile
index bd510fcac..383eeeeb7 100644
--- a/etc/profile-m-z/man.profile
+++ b/etc/profile-m-z/man.profile
@@ -7,10 +7,10 @@ include man.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12noblacklist ${HOME}/.local/share/man 12nodeny ${HOME}/.local/share/man
13noblacklist ${HOME}/.rustup 13nodeny ${HOME}/.rustup
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -23,12 +23,12 @@ include disable-xdg.inc
23#mkdir ${HOME}/.local/share/man 23#mkdir ${HOME}/.local/share/man
24#whitelist ${HOME}/.local/share/man 24#whitelist ${HOME}/.local/share/man
25#whitelist ${HOME}/.manpath 25#whitelist ${HOME}/.manpath
26whitelist /usr/share/groff 26allow /usr/share/groff
27whitelist /usr/share/info 27allow /usr/share/info
28whitelist /usr/share/lintian 28allow /usr/share/lintian
29whitelist /usr/share/locale 29allow /usr/share/locale
30whitelist /usr/share/man 30allow /usr/share/man
31whitelist /var/cache/man 31allow /var/cache/man
32#include whitelist-common.inc 32#include whitelist-common.inc
33include whitelist-runuser-common.inc 33include whitelist-runuser-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/manaplus.profile b/etc/profile-m-z/manaplus.profile
index f59a56ac6..67ee783a6 100644
--- a/etc/profile-m-z/manaplus.profile
+++ b/etc/profile-m-z/manaplus.profile
@@ -6,8 +6,8 @@ include manaplus.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mana 9nodeny ${HOME}/.config/mana
10noblacklist ${HOME}/.local/share/mana 10nodeny ${HOME}/.local/share/mana
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -21,8 +21,8 @@ include disable-xdg.inc
21mkdir ${HOME}/.config/mana 21mkdir ${HOME}/.config/mana
22mkdir ${HOME}/.config/mana/mana 22mkdir ${HOME}/.config/mana/mana
23mkdir ${HOME}/.local/share/mana 23mkdir ${HOME}/.local/share/mana
24whitelist ${HOME}/.config/mana 24allow ${HOME}/.config/mana
25whitelist ${HOME}/.local/share/mana 25allow ${HOME}/.local/share/mana
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
28 28
diff --git a/etc/profile-m-z/marker.profile b/etc/profile-m-z/marker.profile
index 087c02964..7645ad335 100644
--- a/etc/profile-m-z/marker.profile
+++ b/etc/profile-m-z/marker.profile
@@ -11,8 +11,8 @@ include globals.local
11#protocol unix,inet,inet6 11#protocol unix,inet,inet6
12#private-etc ca-certificates,ssl,pki,crypto-policies,nsswitch.conf,resolv.conf 12#private-etc ca-certificates,ssl,pki,crypto-policies,nsswitch.conf,resolv.conf
13 13
14noblacklist ${HOME}/.cache/marker 14nodeny ${HOME}/.cache/marker
15noblacklist ${DOCUMENTS} 15nodeny ${DOCUMENTS}
16 16
17include allow-python3.inc 17include allow-python3.inc
18 18
@@ -25,7 +25,8 @@ include disable-programs.inc
25include disable-shell.inc 25include disable-shell.inc
26include disable-xdg.inc 26include disable-xdg.inc
27 27
28whitelist /usr/share/com.github.fabiocolacio.marker 28allow /usr/libexec/webkit2gtk-4.0
29allow /usr/share/com.github.fabiocolacio.marker
29include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 32include whitelist-var-common.inc
diff --git a/etc/profile-m-z/masterpdfeditor.profile b/etc/profile-m-z/masterpdfeditor.profile
index de1135071..d8b215b7f 100644
--- a/etc/profile-m-z/masterpdfeditor.profile
+++ b/etc/profile-m-z/masterpdfeditor.profile
@@ -6,8 +6,8 @@ include masterpdfeditor.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Code Industry 9nodeny ${HOME}/.config/Code Industry
10noblacklist ${HOME}/.masterpdfeditor 10nodeny ${HOME}/.masterpdfeditor
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/mate-calc.profile b/etc/profile-m-z/mate-calc.profile
index 39ee7439d..92832783e 100644
--- a/etc/profile-m-z/mate-calc.profile
+++ b/etc/profile-m-z/mate-calc.profile
@@ -6,7 +6,7 @@ include mate-calc.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mate-calc 9nodeny ${HOME}/.config/mate-calc
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,9 +18,9 @@ include disable-programs.inc
18mkdir ${HOME}/.cache/mate-calc 18mkdir ${HOME}/.cache/mate-calc
19mkdir ${HOME}/.config/caja 19mkdir ${HOME}/.config/caja
20mkdir ${HOME}/.config/mate-menu 20mkdir ${HOME}/.config/mate-menu
21whitelist ${HOME}/.cache/mate-calc 21allow ${HOME}/.cache/mate-calc
22whitelist ${HOME}/.config/caja 22allow ${HOME}/.config/caja
23whitelist ${HOME}/.config/mate-menu 23allow ${HOME}/.config/mate-menu
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-m-z/mate-dictionary.profile b/etc/profile-m-z/mate-dictionary.profile
index ae1fcbf62..90c9d0993 100644
--- a/etc/profile-m-z/mate-dictionary.profile
+++ b/etc/profile-m-z/mate-dictionary.profile
@@ -5,7 +5,7 @@ include mate-dictionary.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/mate/mate-dictionary 8nodeny ${HOME}/.config/mate/mate-dictionary
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-programs.inc
16include disable-shell.inc 16include disable-shell.inc
17 17
18mkdir ${HOME}/.config/mate/mate-dictionary 18mkdir ${HOME}/.config/mate/mate-dictionary
19whitelist ${HOME}/.config/mate/mate-dictionary 19allow ${HOME}/.config/mate/mate-dictionary
20include whitelist-common.inc 20include whitelist-common.inc
21 21
22apparmor 22apparmor
diff --git a/etc/profile-m-z/matrix-mirage.profile b/etc/profile-m-z/matrix-mirage.profile
index b3080df88..8ee470a50 100644
--- a/etc/profile-m-z/matrix-mirage.profile
+++ b/etc/profile-m-z/matrix-mirage.profile
@@ -7,16 +7,16 @@ include matrix-mirage.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.cache/matrix-mirage 10nodeny ${HOME}/.cache/matrix-mirage
11noblacklist ${HOME}/.config/matrix-mirage 11nodeny ${HOME}/.config/matrix-mirage
12noblacklist ${HOME}/.local/share/matrix-mirage 12nodeny ${HOME}/.local/share/matrix-mirage
13 13
14mkdir ${HOME}/.cache/matrix-mirage 14mkdir ${HOME}/.cache/matrix-mirage
15mkdir ${HOME}/.config/matrix-mirage 15mkdir ${HOME}/.config/matrix-mirage
16mkdir ${HOME}/.local/share/matrix-mirage 16mkdir ${HOME}/.local/share/matrix-mirage
17whitelist ${HOME}/.cache/matrix-mirage 17allow ${HOME}/.cache/matrix-mirage
18whitelist ${HOME}/.config/matrix-mirage 18allow ${HOME}/.config/matrix-mirage
19whitelist ${HOME}/.local/share/matrix-mirage 19allow ${HOME}/.local/share/matrix-mirage
20 20
21private-bin matrix-mirage 21private-bin matrix-mirage
22 22
diff --git a/etc/profile-m-z/mattermost-desktop.profile b/etc/profile-m-z/mattermost-desktop.profile
index 3c2bf4fa3..01076a90a 100644
--- a/etc/profile-m-z/mattermost-desktop.profile
+++ b/etc/profile-m-z/mattermost-desktop.profile
@@ -10,12 +10,12 @@ ignore apparmor
10ignore dbus-user none 10ignore dbus-user none
11ignore dbus-system none 11ignore dbus-system none
12 12
13noblacklist ${HOME}/.config/Mattermost 13nodeny ${HOME}/.config/Mattermost
14 14
15include disable-shell.inc 15include disable-shell.inc
16 16
17mkdir ${HOME}/.config/Mattermost 17mkdir ${HOME}/.config/Mattermost
18whitelist ${HOME}/.config/Mattermost 18allow ${HOME}/.config/Mattermost
19 19
20private-etc alternatives,ca-certificates,crypto-policies,fonts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,machine-id,nsswitch.conf,pki,resolv.conf,ssl 20private-etc alternatives,ca-certificates,crypto-policies,fonts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,machine-id,nsswitch.conf,pki,resolv.conf,ssl
21 21
diff --git a/etc/profile-m-z/mcabber.profile b/etc/profile-m-z/mcabber.profile
index 38d2d8d63..ae749114a 100644
--- a/etc/profile-m-z/mcabber.profile
+++ b/etc/profile-m-z/mcabber.profile
@@ -6,8 +6,8 @@ include mcabber.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.mcabber 9nodeny ${HOME}/.mcabber
10noblacklist ${HOME}/.mcabberrc 10nodeny ${HOME}/.mcabberrc
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/mcomix.profile b/etc/profile-m-z/mcomix.profile
new file mode 100644
index 000000000..d9e12fb5d
--- /dev/null
+++ b/etc/profile-m-z/mcomix.profile
@@ -0,0 +1,74 @@
1# Firejail profile for mcomix
2# Description: A comic book and manga viewer in python
3# This file is overwritten after every install/update
4# Persistent local customizations
5include mcomix.local
6# Persistent global definitions
7include globals.local
8
9nodeny ${HOME}/.config/mcomix
10nodeny ${HOME}/.local/share/mcomix
11nodeny ${DOCUMENTS}
12
13# Allow /bin/sh (blacklisted by disable-shell.inc)
14include allow-bin-sh.inc
15
16# Allow python (blacklisted by disable-interpreters.inc)
17# mcomix <= 1.2 uses python2
18include allow-python2.inc
19include allow-python3.inc
20
21include disable-common.inc
22include disable-devel.inc
23include disable-exec.inc
24include disable-interpreters.inc
25include disable-passwdmgr.inc
26include disable-programs.inc
27include disable-shell.inc
28include disable-write-mnt.inc
29include disable-xdg.inc
30
31mkdir ${HOME}/.config/mcomix
32mkdir ${HOME}/.local/share/mcomix
33allow /usr/share/mcomix
34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc
36include whitelist-runuser-common.inc
37
38apparmor
39caps.drop all
40machine-id
41net none
42nodvd
43nogroups
44noinput
45nonewprivs
46noroot
47nosound
48notv
49nou2f
50novideo
51protocol unix
52seccomp
53seccomp.block-secondary
54shell none
55tracelog
56
57# mcomix <= 1.2 uses python2
58private-bin 7z,lha,mcomix,mutool,python*,rar,sh,unrar,unzip
59private-cache
60private-dev
61# mcomix <= 1.2 uses gtk-2.0
62private-etc alternatives,dconf,fonts,gconf,gtk-2.0,gtk-3.0,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,machine-id,mime.types,pango,passwd,X11,xdg
63private-tmp
64
65dbus-user none
66dbus-system none
67
68read-only ${HOME}
69read-write ${HOME}/.config/mcomix
70read-write ${HOME}/.local/share/mcomix
71#to allow ${HOME}/.local/share/recently-used.xbel
72read-write ${HOME}/.local/share
73# used by mcomix <= 1.2, tip, make a symbolic link to .cache/thumbnails
74read-write ${HOME}/.thumbnails
diff --git a/etc/profile-m-z/mdr.profile b/etc/profile-m-z/mdr.profile
index 5d3f8dc41..9e8656290 100644
--- a/etc/profile-m-z/mdr.profile
+++ b/etc/profile-m-z/mdr.profile
@@ -5,7 +5,7 @@ include mdr.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8blacklist ${RUNUSER}/wayland-* 8deny ${RUNUSER}/wayland-*
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-programs.inc
16include disable-shell.inc 16include disable-shell.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
22 22
diff --git a/etc/profile-m-z/mediainfo.profile b/etc/profile-m-z/mediainfo.profile
index 17363624f..ae34ea321 100644
--- a/etc/profile-m-z/mediainfo.profile
+++ b/etc/profile-m-z/mediainfo.profile
@@ -6,7 +6,7 @@ include mediainfo.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/mediathekview.profile b/etc/profile-m-z/mediathekview.profile
index 0063badd8..3459ad4cf 100644
--- a/etc/profile-m-z/mediathekview.profile
+++ b/etc/profile-m-z/mediathekview.profile
@@ -6,16 +6,16 @@ include mediathekview.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mpv 9nodeny ${HOME}/.config/mpv
10noblacklist ${HOME}/.config/smplayer 10nodeny ${HOME}/.config/smplayer
11noblacklist ${HOME}/.config/totem 11nodeny ${HOME}/.config/totem
12noblacklist ${HOME}/.config/vlc 12nodeny ${HOME}/.config/vlc
13noblacklist ${HOME}/.config/xplayer 13nodeny ${HOME}/.config/xplayer
14noblacklist ${HOME}/.local/share/totem 14nodeny ${HOME}/.local/share/totem
15noblacklist ${HOME}/.local/share/xplayer 15nodeny ${HOME}/.local/share/xplayer
16noblacklist ${HOME}/.mediathek3 16nodeny ${HOME}/.mediathek3
17noblacklist ${HOME}/.mplayer 17nodeny ${HOME}/.mplayer
18noblacklist ${VIDEOS} 18nodeny ${VIDEOS}
19 19
20# Allow java (blacklisted by disable-devel.inc) 20# Allow java (blacklisted by disable-devel.inc)
21include allow-java.inc 21include allow-java.inc
diff --git a/etc/profile-m-z/megaglest.profile b/etc/profile-m-z/megaglest.profile
index 972838729..ad9094ddf 100644
--- a/etc/profile-m-z/megaglest.profile
+++ b/etc/profile-m-z/megaglest.profile
@@ -6,7 +6,7 @@ include megaglest.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.megaglest 9nodeny ${HOME}/.megaglest
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,9 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.megaglest 20mkdir ${HOME}/.megaglest
21whitelist ${HOME}/.megaglest 21allow ${HOME}/.megaglest
22whitelist /usr/share/megaglest 22allow /usr/share/megaglest
23allow /usr/share/games/megaglest # Debian version
23include whitelist-common.inc 24include whitelist-common.inc
24include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/meld.profile b/etc/profile-m-z/meld.profile
index 1225cc107..06ee572c9 100644
--- a/etc/profile-m-z/meld.profile
+++ b/etc/profile-m-z/meld.profile
@@ -13,12 +13,12 @@ include globals.local
13# Calling it by its absolute path (example for git mergetool): 13# Calling it by its absolute path (example for git mergetool):
14# $ git config --global mergetool.meld.cmd /usr/bin/meld 14# $ git config --global mergetool.meld.cmd /usr/bin/meld
15 15
16noblacklist ${HOME}/.config/meld 16nodeny ${HOME}/.config/meld
17noblacklist ${HOME}/.config/git 17nodeny ${HOME}/.config/git
18noblacklist ${HOME}/.gitconfig 18nodeny ${HOME}/.gitconfig
19noblacklist ${HOME}/.git-credentials 19nodeny ${HOME}/.git-credentials
20noblacklist ${HOME}/.local/share/meld 20nodeny ${HOME}/.local/share/meld
21noblacklist ${HOME}/.subversion 21nodeny ${HOME}/.subversion
22 22
23# Allow python (blacklisted by disable-interpreters.inc) 23# Allow python (blacklisted by disable-interpreters.inc)
24# Python 2 is EOL (see #3164). Add the next line to your meld.local if you understand the risks 24# Python 2 is EOL (see #3164). Add the next line to your meld.local if you understand the risks
@@ -29,6 +29,8 @@ include allow-python3.inc
29# Allow ssh (blacklisted by disable-common.inc) 29# Allow ssh (blacklisted by disable-common.inc)
30include allow-ssh.inc 30include allow-ssh.inc
31 31
32deny /usr/libexec
33
32# Add the next line to your meld.local if you don't need to compare files in disable-common.inc. 34# Add the next line to your meld.local if you don't need to compare files in disable-common.inc.
33#include disable-common.inc 35#include disable-common.inc
34include disable-devel.inc 36include disable-devel.inc
diff --git a/etc/profile-m-z/mendeleydesktop.profile b/etc/profile-m-z/mendeleydesktop.profile
index c0bdbb230..e33d6c157 100644
--- a/etc/profile-m-z/mendeleydesktop.profile
+++ b/etc/profile-m-z/mendeleydesktop.profile
@@ -6,13 +6,13 @@ include mendeleydesktop.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${HOME}/.cache/Mendeley Ltd. 10nodeny ${HOME}/.cache/Mendeley Ltd.
11noblacklist ${HOME}/.config/Mendeley Ltd. 11nodeny ${HOME}/.config/Mendeley Ltd.
12noblacklist ${HOME}/.local/share/Mendeley Ltd. 12nodeny ${HOME}/.local/share/Mendeley Ltd.
13noblacklist ${HOME}/.local/share/data/Mendeley Ltd. 13nodeny ${HOME}/.local/share/data/Mendeley Ltd.
14noblacklist ${HOME}/.pki 14nodeny ${HOME}/.pki
15noblacklist ${HOME}/.local/share/pki 15nodeny ${HOME}/.local/share/pki
16 16
17# Allow python (blacklisted by disable-interpreters.inc) 17# Allow python (blacklisted by disable-interpreters.inc)
18include allow-python2.inc 18include allow-python2.inc
diff --git a/etc/profile-m-z/menulibre.profile b/etc/profile-m-z/menulibre.profile
index 2081b8c96..52808a5b5 100644
--- a/etc/profile-m-z/menulibre.profile
+++ b/etc/profile-m-z/menulibre.profile
@@ -19,13 +19,13 @@ include disable-passwdmgr.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21# Whitelist your system icon directory,varies by distro 21# Whitelist your system icon directory,varies by distro
22whitelist /usr/share/app-info 22allow /usr/share/app-info
23whitelist /usr/share/desktop-directories 23allow /usr/share/desktop-directories
24whitelist /usr/share/icons 24allow /usr/share/icons
25whitelist /usr/share/menulibre 25allow /usr/share/menulibre
26whitelist /var/lib/app-info/icons 26allow /var/lib/app-info/icons
27whitelist /var/lib/flatpak/exports/share/applications 27allow /var/lib/flatpak/exports/share/applications
28whitelist /var/lib/flatpak/exports/share/icons 28allow /var/lib/flatpak/exports/share/icons
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-m-z/meteo-qt.profile b/etc/profile-m-z/meteo-qt.profile
index 85ed7bc74..48f936632 100644
--- a/etc/profile-m-z/meteo-qt.profile
+++ b/etc/profile-m-z/meteo-qt.profile
@@ -6,8 +6,8 @@ include meteo-qt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/autostart 9nodeny ${HOME}/.config/autostart
10noblacklist ${HOME}/.config/meteo-qt 10nodeny ${HOME}/.config/meteo-qt
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python3.inc 13include allow-python3.inc
@@ -22,8 +22,8 @@ include disable-shell.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.config/meteo-qt 24mkdir ${HOME}/.config/meteo-qt
25whitelist ${HOME}/.config/autostart 25allow ${HOME}/.config/autostart
26whitelist ${HOME}/.config/meteo-qt 26allow ${HOME}/.config/meteo-qt
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
29 29
diff --git a/etc/profile-m-z/microsoft-edge-dev.profile b/etc/profile-m-z/microsoft-edge-dev.profile
index 039cd36a8..96465866c 100644
--- a/etc/profile-m-z/microsoft-edge-dev.profile
+++ b/etc/profile-m-z/microsoft-edge-dev.profile
@@ -6,13 +6,13 @@ include microsoft-edge-dev.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/microsoft-edge-dev 9nodeny ${HOME}/.cache/microsoft-edge-dev
10noblacklist ${HOME}/.config/microsoft-edge-dev 10nodeny ${HOME}/.config/microsoft-edge-dev
11 11
12mkdir ${HOME}/.cache/microsoft-edge-dev 12mkdir ${HOME}/.cache/microsoft-edge-dev
13mkdir ${HOME}/.config/microsoft-edge-dev 13mkdir ${HOME}/.config/microsoft-edge-dev
14whitelist ${HOME}/.cache/microsoft-edge-dev 14allow ${HOME}/.cache/microsoft-edge-dev
15whitelist ${HOME}/.config/microsoft-edge-dev 15allow ${HOME}/.config/microsoft-edge-dev
16 16
17private-opt microsoft 17private-opt microsoft
18 18
diff --git a/etc/profile-m-z/midori.profile b/etc/profile-m-z/midori.profile
index e15259608..c4a444e0d 100644
--- a/etc/profile-m-z/midori.profile
+++ b/etc/profile-m-z/midori.profile
@@ -9,17 +9,17 @@ include globals.local
9# noexec ${HOME} breaks DRM binaries. 9# noexec ${HOME} breaks DRM binaries.
10?BROWSER_ALLOW_DRM: ignore noexec ${HOME} 10?BROWSER_ALLOW_DRM: ignore noexec ${HOME}
11 11
12noblacklist ${HOME}/.cache/midori 12nodeny ${HOME}/.cache/midori
13noblacklist ${HOME}/.config/midori 13nodeny ${HOME}/.config/midori
14noblacklist ${HOME}/.local/share/midori 14nodeny ${HOME}/.local/share/midori
15# noblacklist ${HOME}/.local/share/webkit 15# noblacklist ${HOME}/.local/share/webkit
16# noblacklist ${HOME}/.local/share/webkitgtk 16# noblacklist ${HOME}/.local/share/webkitgtk
17noblacklist ${HOME}/.pki 17nodeny ${HOME}/.pki
18noblacklist ${HOME}/.local/share/pki 18nodeny ${HOME}/.local/share/pki
19 19
20noblacklist ${HOME}/.cache/gnome-mplayer 20nodeny ${HOME}/.cache/gnome-mplayer
21noblacklist ${HOME}/.config/gnome-mplayer 21nodeny ${HOME}/.config/gnome-mplayer
22noblacklist ${HOME}/.lastpass 22nodeny ${HOME}/.lastpass
23 23
24include disable-common.inc 24include disable-common.inc
25include disable-devel.inc 25include disable-devel.inc
@@ -36,17 +36,17 @@ mkdir ${HOME}/.local/share/webkit
36mkdir ${HOME}/.local/share/webkitgtk 36mkdir ${HOME}/.local/share/webkitgtk
37mkdir ${HOME}/.pki 37mkdir ${HOME}/.pki
38mkdir ${HOME}/.local/share/pki 38mkdir ${HOME}/.local/share/pki
39whitelist ${DOWNLOADS} 39allow ${DOWNLOADS}
40whitelist ${HOME}/.cache/gnome-mplayer/plugin 40allow ${HOME}/.cache/gnome-mplayer/plugin
41whitelist ${HOME}/.cache/midori 41allow ${HOME}/.cache/midori
42whitelist ${HOME}/.config/gnome-mplayer 42allow ${HOME}/.config/gnome-mplayer
43whitelist ${HOME}/.config/midori 43allow ${HOME}/.config/midori
44whitelist ${HOME}/.lastpass 44allow ${HOME}/.lastpass
45whitelist ${HOME}/.local/share/midori 45allow ${HOME}/.local/share/midori
46whitelist ${HOME}/.local/share/webkit 46allow ${HOME}/.local/share/webkit
47whitelist ${HOME}/.local/share/webkitgtk 47allow ${HOME}/.local/share/webkitgtk
48whitelist ${HOME}/.pki 48allow ${HOME}/.pki
49whitelist ${HOME}/.local/share/pki 49allow ${HOME}/.local/share/pki
50include whitelist-common.inc 50include whitelist-common.inc
51include whitelist-var-common.inc 51include whitelist-var-common.inc
52 52
diff --git a/etc/profile-m-z/min.profile b/etc/profile-m-z/min.profile
index 7f3aeab44..214332184 100644
--- a/etc/profile-m-z/min.profile
+++ b/etc/profile-m-z/min.profile
@@ -6,10 +6,10 @@ include min.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Min 9nodeny ${HOME}/.config/Min
10 10
11mkdir ${HOME}/.config/Min 11mkdir ${HOME}/.config/Min
12whitelist ${HOME}/.config/Min 12allow ${HOME}/.config/Min
13 13
14# Redirect 14# Redirect
15include chromium-common.profile 15include chromium-common.profile
diff --git a/etc/profile-m-z/mindless.profile b/etc/profile-m-z/mindless.profile
index fbf6b58e8..ee8402b87 100644
--- a/etc/profile-m-z/mindless.profile
+++ b/etc/profile-m-z/mindless.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/mindless 18allow /usr/share/mindless
19include whitelist-usr-share-common.inc 19include whitelist-usr-share-common.inc
20include whitelist-var-common.inc 20include whitelist-var-common.inc
21 21
diff --git a/etc/profile-m-z/minecraft-launcher.profile b/etc/profile-m-z/minecraft-launcher.profile
index 2536d0b38..595313851 100644
--- a/etc/profile-m-z/minecraft-launcher.profile
+++ b/etc/profile-m-z/minecraft-launcher.profile
@@ -11,7 +11,7 @@ include globals.local
11 11
12ignore noexec ${HOME} 12ignore noexec ${HOME}
13 13
14noblacklist ${HOME}/.minecraft 14nodeny ${HOME}/.minecraft
15 15
16include allow-java.inc 16include allow-java.inc
17 17
@@ -25,13 +25,12 @@ include disable-shell.inc
25include disable-xdg.inc 25include disable-xdg.inc
26 26
27mkdir ${HOME}/.minecraft 27mkdir ${HOME}/.minecraft
28whitelist ${HOME}/.minecraft 28allow ${HOME}/.minecraft
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
32include whitelist-var-common.inc 32include whitelist-var-common.inc
33 33
34apparmor
35caps.drop all 34caps.drop all
36netfilter 35netfilter
37nodvd 36nodvd
diff --git a/etc/profile-m-z/minetest.profile b/etc/profile-m-z/minetest.profile
index cad1adbda..11d0859b7 100644
--- a/etc/profile-m-z/minetest.profile
+++ b/etc/profile-m-z/minetest.profile
@@ -9,8 +9,8 @@ include globals.local
9# In order to save in-game screenshots to a persistent location edit ~/.minetest/minetest.conf: 9# In order to save in-game screenshots to a persistent location edit ~/.minetest/minetest.conf:
10# screenshot_path = /home/<USER>/.minetest/screenshots 10# screenshot_path = /home/<USER>/.minetest/screenshots
11 11
12noblacklist ${HOME}/.cache/minetest 12nodeny ${HOME}/.cache/minetest
13noblacklist ${HOME}/.minetest 13nodeny ${HOME}/.minetest
14 14
15# Allow lua (blacklisted by disable-interpreters.inc) 15# Allow lua (blacklisted by disable-interpreters.inc)
16include allow-lua.inc 16include allow-lua.inc
@@ -26,10 +26,10 @@ include disable-xdg.inc
26 26
27mkdir ${HOME}/.cache/minetest 27mkdir ${HOME}/.cache/minetest
28mkdir ${HOME}/.minetest 28mkdir ${HOME}/.minetest
29whitelist ${HOME}/.cache/minetest 29allow ${HOME}/.cache/minetest
30whitelist ${HOME}/.minetest 30allow ${HOME}/.minetest
31whitelist /usr/share/games/minetest 31allow /usr/share/games/minetest
32whitelist /usr/share/minetest 32allow /usr/share/minetest
33include whitelist-common.inc 33include whitelist-common.inc
34include whitelist-runuser-common.inc 34include whitelist-runuser-common.inc
35include whitelist-usr-share-common.inc 35include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/minitube.profile b/etc/profile-m-z/minitube.profile
index 3fe3428d0..192913dbf 100644
--- a/etc/profile-m-z/minitube.profile
+++ b/etc/profile-m-z/minitube.profile
@@ -6,10 +6,10 @@ include minitube.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10noblacklist ${HOME}/.cache/Flavio Tordini 10nodeny ${HOME}/.cache/Flavio Tordini
11noblacklist ${HOME}/.config/Flavio Tordini 11nodeny ${HOME}/.config/Flavio Tordini
12noblacklist ${HOME}/.local/share/Flavio Tordini 12nodeny ${HOME}/.local/share/Flavio Tordini
13 13
14include allow-lua.inc 14include allow-lua.inc
15 15
@@ -25,11 +25,11 @@ include disable-xdg.inc
25mkdir ${HOME}/.cache/Flavio Tordini 25mkdir ${HOME}/.cache/Flavio Tordini
26mkdir ${HOME}/.config/Flavio Tordini 26mkdir ${HOME}/.config/Flavio Tordini
27mkdir ${HOME}/.local/share/Flavio Tordini 27mkdir ${HOME}/.local/share/Flavio Tordini
28whitelist ${PICTURES} 28allow ${PICTURES}
29whitelist ${HOME}/.cache/Flavio Tordini 29allow ${HOME}/.cache/Flavio Tordini
30whitelist ${HOME}/.config/Flavio Tordini 30allow ${HOME}/.config/Flavio Tordini
31whitelist ${HOME}/.local/share/Flavio Tordini 31allow ${HOME}/.local/share/Flavio Tordini
32whitelist /usr/share/minitube 32allow /usr/share/minitube
33include whitelist-common.inc 33include whitelist-common.inc
34include whitelist-runuser-common.inc 34include whitelist-runuser-common.inc
35include whitelist-usr-share-common.inc 35include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/mirage.profile b/etc/profile-m-z/mirage.profile
index 505009283..b2f2cc5b1 100644
--- a/etc/profile-m-z/mirage.profile
+++ b/etc/profile-m-z/mirage.profile
@@ -6,10 +6,10 @@ include mirage.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/mirage 9nodeny ${HOME}/.cache/mirage
10noblacklist ${HOME}/.config/mirage 10nodeny ${HOME}/.config/mirage
11noblacklist ${HOME}/.local/share/mirage 11nodeny ${HOME}/.local/share/mirage
12noblacklist /sbin 12nodeny /sbin
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python2.inc 15include allow-python2.inc
@@ -27,10 +27,10 @@ include disable-xdg.inc
27mkdir ${HOME}/.cache/mirage 27mkdir ${HOME}/.cache/mirage
28mkdir ${HOME}/.config/mirage 28mkdir ${HOME}/.config/mirage
29mkdir ${HOME}/.local/share/mirage 29mkdir ${HOME}/.local/share/mirage
30whitelist ${HOME}/.cache/mirage 30allow ${HOME}/.cache/mirage
31whitelist ${HOME}/.config/mirage 31allow ${HOME}/.config/mirage
32whitelist ${HOME}/.local/share/mirage 32allow ${HOME}/.local/share/mirage
33whitelist ${DOWNLOADS} 33allow ${DOWNLOADS}
34include whitelist-common.inc 34include whitelist-common.inc
35include whitelist-runuser-common.inc 35include whitelist-runuser-common.inc
36include whitelist-usr-share-common.inc 36include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/mirrormagic.profile b/etc/profile-m-z/mirrormagic.profile
index 58dfd56f5..d5ebfd4b0 100644
--- a/etc/profile-m-z/mirrormagic.profile
+++ b/etc/profile-m-z/mirrormagic.profile
@@ -6,7 +6,7 @@ include mirrormagic.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.mirrormagic 9nodeny ${HOME}/.mirrormagic
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.mirrormagic 20mkdir ${HOME}/.mirrormagic
21whitelist ${HOME}/.mirrormagic 21allow ${HOME}/.mirrormagic
22whitelist /usr/share/mirrormagic 22allow /usr/share/mirrormagic
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/mocp.profile b/etc/profile-m-z/mocp.profile
index e71ba4569..b734bd7c0 100644
--- a/etc/profile-m-z/mocp.profile
+++ b/etc/profile-m-z/mocp.profile
@@ -7,8 +7,8 @@ include mocp.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.moc 10nodeny ${HOME}/.moc
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/mousepad.profile b/etc/profile-m-z/mousepad.profile
index 98063fa7c..a02b29b61 100644
--- a/etc/profile-m-z/mousepad.profile
+++ b/etc/profile-m-z/mousepad.profile
@@ -6,7 +6,7 @@ include mousepad.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Mousepad 9nodeny ${HOME}/.config/Mousepad
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/mp3splt-gtk.profile b/etc/profile-m-z/mp3splt-gtk.profile
index 37ce60e04..f47384753 100644
--- a/etc/profile-m-z/mp3splt-gtk.profile
+++ b/etc/profile-m-z/mp3splt-gtk.profile
@@ -6,7 +6,7 @@ include mp3splt-gtk.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.mp3splt-gtk 9nodeny ${HOME}/.mp3splt-gtk
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/mp3splt.profile b/etc/profile-m-z/mp3splt.profile
index 070de8451..8a2ab15bd 100644
--- a/etc/profile-m-z/mp3splt.profile
+++ b/etc/profile-m-z/mp3splt.profile
@@ -6,9 +6,9 @@ include mp3splt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/mpDris2.profile b/etc/profile-m-z/mpDris2.profile
index 55a0b5897..6994b0429 100644
--- a/etc/profile-m-z/mpDris2.profile
+++ b/etc/profile-m-z/mpDris2.profile
@@ -6,13 +6,13 @@ include mpDris2.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mpDris2 9nodeny ${HOME}/.config/mpDris2
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
13include allow-python3.inc 13include allow-python3.inc
14 14
15noblacklist ${MUSIC} 15nodeny ${MUSIC}
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
@@ -23,10 +23,10 @@ include disable-programs.inc
23include disable-shell.inc 23include disable-shell.inc
24include disable-xdg.inc 24include disable-xdg.inc
25 25
26whitelist ${MUSIC} 26allow ${MUSIC}
27 27
28mkdir ${HOME}/.config/mpDris2 28mkdir ${HOME}/.config/mpDris2
29whitelist ${HOME}/.config/mpDris2 29allow ${HOME}/.config/mpDris2
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
32 32
diff --git a/etc/profile-m-z/mpd.profile b/etc/profile-m-z/mpd.profile
index b517d4ab2..8b3350ac8 100644
--- a/etc/profile-m-z/mpd.profile
+++ b/etc/profile-m-z/mpd.profile
@@ -6,10 +6,10 @@ include mpd.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mpd 9nodeny ${HOME}/.config/mpd
10noblacklist ${HOME}/.mpd 10nodeny ${HOME}/.mpd
11noblacklist ${HOME}/.mpdconf 11nodeny ${HOME}/.mpdconf
12noblacklist ${MUSIC} 12nodeny ${MUSIC}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/mpg123.profile b/etc/profile-m-z/mpg123.profile
index 25187e894..03bd44daa 100644
--- a/etc/profile-m-z/mpg123.profile
+++ b/etc/profile-m-z/mpg123.profile
@@ -7,7 +7,7 @@ include mpg123.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/mplayer.profile b/etc/profile-m-z/mplayer.profile
index 5d023b7f1..84754aeb2 100644
--- a/etc/profile-m-z/mplayer.profile
+++ b/etc/profile-m-z/mplayer.profile
@@ -6,7 +6,7 @@ include mplayer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.mplayer 9nodeny ${HOME}/.mplayer
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17 17
18read-only ${DESKTOP} 18read-only ${DESKTOP}
19mkdir ${HOME}/.mplayer 19mkdir ${HOME}/.mplayer
20whitelist ${HOME}/.mplayer 20allow ${HOME}/.mplayer
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-player-common.inc 22include whitelist-player-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/mpsyt.profile b/etc/profile-m-z/mpsyt.profile
index bfe57a132..d35519103 100644
--- a/etc/profile-m-z/mpsyt.profile
+++ b/etc/profile-m-z/mpsyt.profile
@@ -6,12 +6,12 @@ include mpsyt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mps-youtube 9nodeny ${HOME}/.config/mps-youtube
10noblacklist ${HOME}/.config/mpv 10nodeny ${HOME}/.config/mpv
11noblacklist ${HOME}/.config/youtube-dl 11nodeny ${HOME}/.config/youtube-dl
12noblacklist ${HOME}/.mplayer 12nodeny ${HOME}/.mplayer
13noblacklist ${HOME}/.netrc 13nodeny ${HOME}/.netrc
14noblacklist ${HOME}/mps 14nodeny ${HOME}/mps
15 15
16# Allow lua (blacklisted by disable-interpreters.inc) 16# Allow lua (blacklisted by disable-interpreters.inc)
17include allow-lua.inc 17include allow-lua.inc
@@ -20,8 +20,8 @@ include allow-lua.inc
20include allow-python2.inc 20include allow-python2.inc
21include allow-python3.inc 21include allow-python3.inc
22 22
23noblacklist ${MUSIC} 23nodeny ${MUSIC}
24noblacklist ${VIDEOS} 24nodeny ${VIDEOS}
25 25
26include disable-common.inc 26include disable-common.inc
27include disable-devel.inc 27include disable-devel.inc
@@ -37,12 +37,12 @@ mkdir ${HOME}/.config/mpv
37mkdir ${HOME}/.config/youtube-dl 37mkdir ${HOME}/.config/youtube-dl
38mkdir ${HOME}/.mplayer 38mkdir ${HOME}/.mplayer
39mkdir ${HOME}/mps 39mkdir ${HOME}/mps
40whitelist ${HOME}/.config/mps-youtube 40allow ${HOME}/.config/mps-youtube
41whitelist ${HOME}/.config/mpv 41allow ${HOME}/.config/mpv
42whitelist ${HOME}/.config/youtube-dl 42allow ${HOME}/.config/youtube-dl
43whitelist ${HOME}/.mplayer 43allow ${HOME}/.mplayer
44whitelist ${HOME}/.netrc 44allow ${HOME}/.netrc
45whitelist ${HOME}/mps 45allow ${HOME}/mps
46include whitelist-common.inc 46include whitelist-common.inc
47include whitelist-player-common.inc 47include whitelist-player-common.inc
48include whitelist-var-common.inc 48include whitelist-var-common.inc
diff --git a/etc/profile-m-z/mpv.profile b/etc/profile-m-z/mpv.profile
index 310f36ea1..4ea2dd348 100644
--- a/etc/profile-m-z/mpv.profile
+++ b/etc/profile-m-z/mpv.profile
@@ -24,9 +24,9 @@ include globals.local
24#include allow-bin-sh.inc 24#include allow-bin-sh.inc
25#private-bin sh 25#private-bin sh
26 26
27noblacklist ${HOME}/.config/mpv 27nodeny ${HOME}/.config/mpv
28noblacklist ${HOME}/.config/youtube-dl 28nodeny ${HOME}/.config/youtube-dl
29noblacklist ${HOME}/.netrc 29nodeny ${HOME}/.netrc
30 30
31# Allow lua (blacklisted by disable-interpreters.inc) 31# Allow lua (blacklisted by disable-interpreters.inc)
32include allow-lua.inc 32include allow-lua.inc
@@ -35,6 +35,8 @@ include allow-lua.inc
35include allow-python2.inc 35include allow-python2.inc
36include allow-python3.inc 36include allow-python3.inc
37 37
38deny /usr/libexec
39
38include disable-common.inc 40include disable-common.inc
39include disable-devel.inc 41include disable-devel.inc
40include disable-exec.inc 42include disable-exec.inc
@@ -47,14 +49,14 @@ read-only ${DESKTOP}
47mkdir ${HOME}/.config/mpv 49mkdir ${HOME}/.config/mpv
48mkdir ${HOME}/.config/youtube-dl 50mkdir ${HOME}/.config/youtube-dl
49mkfile ${HOME}/.netrc 51mkfile ${HOME}/.netrc
50whitelist ${HOME}/.config/mpv 52allow ${HOME}/.config/mpv
51whitelist ${HOME}/.config/youtube-dl 53allow ${HOME}/.config/youtube-dl
52whitelist ${HOME}/.netrc 54allow ${HOME}/.netrc
53include whitelist-common.inc 55include whitelist-common.inc
54include whitelist-player-common.inc 56include whitelist-player-common.inc
55whitelist /usr/share/lua 57allow /usr/share/lua
56whitelist /usr/share/lua* 58allow /usr/share/lua*
57whitelist /usr/share/vulkan 59allow /usr/share/vulkan
58include whitelist-usr-share-common.inc 60include whitelist-usr-share-common.inc
59include whitelist-var-common.inc 61include whitelist-var-common.inc
60 62
diff --git a/etc/profile-m-z/mrrescue.profile b/etc/profile-m-z/mrrescue.profile
index 035a7e625..a8c49a690 100644
--- a/etc/profile-m-z/mrrescue.profile
+++ b/etc/profile-m-z/mrrescue.profile
@@ -6,7 +6,7 @@ include mrrescue.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/love 9nodeny ${HOME}/.local/share/love
10 10
11# Allow /bin/sh (blacklisted by disable-shell.inc) 11# Allow /bin/sh (blacklisted by disable-shell.inc)
12include allow-bin-sh.inc 12include allow-bin-sh.inc
@@ -14,6 +14,8 @@ include allow-bin-sh.inc
14# Allow lua (blacklisted by disable-interpreters.inc) 14# Allow lua (blacklisted by disable-interpreters.inc)
15include allow-lua.inc 15include allow-lua.inc
16 16
17deny /usr/libexec
18
17include disable-common.inc 19include disable-common.inc
18include disable-devel.inc 20include disable-devel.inc
19include disable-exec.inc 21include disable-exec.inc
@@ -24,8 +26,8 @@ include disable-shell.inc
24include disable-xdg.inc 26include disable-xdg.inc
25 27
26mkdir ${HOME}/.local/share/love 28mkdir ${HOME}/.local/share/love
27whitelist ${HOME}/.local/share/love 29allow ${HOME}/.local/share/love
28whitelist /usr/share/mrrescue 30allow /usr/share/mrrescue
29include whitelist-common.inc 31include whitelist-common.inc
30include whitelist-runuser-common.inc 32include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 33include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/ms-excel.profile b/etc/profile-m-z/ms-excel.profile
index db24e8f9b..5fea86ae7 100644
--- a/etc/profile-m-z/ms-excel.profile
+++ b/etc/profile-m-z/ms-excel.profile
@@ -6,7 +6,7 @@ include ms-excel.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/ms-excel-online 9nodeny ${HOME}/.cache/ms-excel-online
10private-bin ms-excel 10private-bin ms-excel
11 11
12# Redirect 12# Redirect
diff --git a/etc/profile-m-z/ms-office.profile b/etc/profile-m-z/ms-office.profile
index 38fc84ecc..4033627f7 100644
--- a/etc/profile-m-z/ms-office.profile
+++ b/etc/profile-m-z/ms-office.profile
@@ -5,8 +5,8 @@ include ms-office.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/ms-office-online 8nodeny ${HOME}/.cache/ms-office-online
9noblacklist ${HOME}/.jak 9nodeny ${HOME}/.jak
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
diff --git a/etc/profile-m-z/ms-onenote.profile b/etc/profile-m-z/ms-onenote.profile
index 9ea0637bd..805de5102 100644
--- a/etc/profile-m-z/ms-onenote.profile
+++ b/etc/profile-m-z/ms-onenote.profile
@@ -6,7 +6,7 @@ include ms-onenote.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/ms-onenote-online 9nodeny ${HOME}/.cache/ms-onenote-online
10private-bin ms-onenote 10private-bin ms-onenote
11 11
12# Redirect 12# Redirect
diff --git a/etc/profile-m-z/ms-outlook.profile b/etc/profile-m-z/ms-outlook.profile
index fc3e7c009..bd14fb7d3 100644
--- a/etc/profile-m-z/ms-outlook.profile
+++ b/etc/profile-m-z/ms-outlook.profile
@@ -6,7 +6,7 @@ include ms-outlook.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/ms-outlook-online 9nodeny ${HOME}/.cache/ms-outlook-online
10private-bin ms-outlook 10private-bin ms-outlook
11 11
12# Redirect 12# Redirect
diff --git a/etc/profile-m-z/ms-powerpoint.profile b/etc/profile-m-z/ms-powerpoint.profile
index dadcd5b1e..02a7424e2 100644
--- a/etc/profile-m-z/ms-powerpoint.profile
+++ b/etc/profile-m-z/ms-powerpoint.profile
@@ -6,7 +6,7 @@ include ms-powerpoint.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/ms-powerpoint-online 9nodeny ${HOME}/.cache/ms-powerpoint-online
10private-bin ms-powerpoint 10private-bin ms-powerpoint
11 11
12# Redirect 12# Redirect
diff --git a/etc/profile-m-z/ms-skype.profile b/etc/profile-m-z/ms-skype.profile
index df1618361..01729f9a2 100644
--- a/etc/profile-m-z/ms-skype.profile
+++ b/etc/profile-m-z/ms-skype.profile
@@ -8,7 +8,7 @@ include ms-skype.local
8 8
9ignore novideo 9ignore novideo
10 10
11noblacklist ${HOME}/.cache/ms-skype-online 11nodeny ${HOME}/.cache/ms-skype-online
12 12
13private-bin ms-skype 13private-bin ms-skype
14 14
diff --git a/etc/profile-m-z/ms-word.profile b/etc/profile-m-z/ms-word.profile
index 5a617a893..34cf02128 100644
--- a/etc/profile-m-z/ms-word.profile
+++ b/etc/profile-m-z/ms-word.profile
@@ -6,7 +6,7 @@ include ms-word.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/ms-word-online 9nodeny ${HOME}/.cache/ms-word-online
10private-bin ms-word 10private-bin ms-word
11 11
12# Redirect 12# Redirect
diff --git a/etc/profile-m-z/mtpaint.profile b/etc/profile-m-z/mtpaint.profile
index 85c3ee9f2..ec7cd5d04 100644
--- a/etc/profile-m-z/mtpaint.profile
+++ b/etc/profile-m-z/mtpaint.profile
@@ -6,7 +6,7 @@ include mtpaint.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/multimc5.profile b/etc/profile-m-z/multimc5.profile
index 6df681df1..447e7753f 100644
--- a/etc/profile-m-z/multimc5.profile
+++ b/etc/profile-m-z/multimc5.profile
@@ -5,9 +5,9 @@ include multimc5.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.local/share/multimc 8nodeny ${HOME}/.local/share/multimc
9noblacklist ${HOME}/.local/share/multimc5 9nodeny ${HOME}/.local/share/multimc5
10noblacklist ${HOME}/.multimc5 10nodeny ${HOME}/.multimc5
11 11
12# Allow java (blacklisted by disable-devel.inc) 12# Allow java (blacklisted by disable-devel.inc)
13include allow-java.inc 13include allow-java.inc
@@ -22,9 +22,9 @@ include disable-programs.inc
22mkdir ${HOME}/.local/share/multimc 22mkdir ${HOME}/.local/share/multimc
23mkdir ${HOME}/.local/share/multimc5 23mkdir ${HOME}/.local/share/multimc5
24mkdir ${HOME}/.multimc5 24mkdir ${HOME}/.multimc5
25whitelist ${HOME}/.local/share/multimc 25allow ${HOME}/.local/share/multimc
26whitelist ${HOME}/.local/share/multimc5 26allow ${HOME}/.local/share/multimc5
27whitelist ${HOME}/.multimc5 27allow ${HOME}/.multimc5
28include whitelist-common.inc 28include whitelist-common.inc
29 29
30caps.drop all 30caps.drop all
diff --git a/etc/profile-m-z/mumble.profile b/etc/profile-m-z/mumble.profile
index c7f59c5ee..1d72e07b8 100644
--- a/etc/profile-m-z/mumble.profile
+++ b/etc/profile-m-z/mumble.profile
@@ -6,9 +6,9 @@ include mumble.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Mumble 9nodeny ${HOME}/.config/Mumble
10noblacklist ${HOME}/.local/share/data/Mumble 10nodeny ${HOME}/.local/share/data/Mumble
11noblacklist ${HOME}/.local/share/Mumble 11nodeny ${HOME}/.local/share/Mumble
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -21,9 +21,9 @@ include disable-shell.inc
21mkdir ${HOME}/.config/Mumble 21mkdir ${HOME}/.config/Mumble
22mkdir ${HOME}/.local/share/data/Mumble 22mkdir ${HOME}/.local/share/data/Mumble
23mkdir ${HOME}/.local/share/Mumble 23mkdir ${HOME}/.local/share/Mumble
24whitelist ${HOME}/.config/Mumble 24allow ${HOME}/.config/Mumble
25whitelist ${HOME}/.local/share/data/Mumble 25allow ${HOME}/.local/share/data/Mumble
26whitelist ${HOME}/.local/share/Mumble 26allow ${HOME}/.local/share/Mumble
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
29 29
diff --git a/etc/profile-m-z/mupdf-gl.profile b/etc/profile-m-z/mupdf-gl.profile
index be94a9083..c208a5e54 100644
--- a/etc/profile-m-z/mupdf-gl.profile
+++ b/etc/profile-m-z/mupdf-gl.profile
@@ -7,7 +7,7 @@ include mupdf-gl.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.mupdf.history 10nodeny ${HOME}/.mupdf.history
11 11
12# Redirect 12# Redirect
13include mupdf.profile 13include mupdf.profile
diff --git a/etc/profile-m-z/mupdf.profile b/etc/profile-m-z/mupdf.profile
index 9e4609c48..e602b1429 100644
--- a/etc/profile-m-z/mupdf.profile
+++ b/etc/profile-m-z/mupdf.profile
@@ -6,7 +6,7 @@ include mupdf.local
6# Persistent global definitions 6# Persistent global definitions
7#include globals.local 7#include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/mupen64plus.profile b/etc/profile-m-z/mupen64plus.profile
index 00983a8f3..ecc7e2957 100644
--- a/etc/profile-m-z/mupen64plus.profile
+++ b/etc/profile-m-z/mupen64plus.profile
@@ -6,8 +6,8 @@ include mupen64plus.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/mupen64plus 9nodeny ${HOME}/.config/mupen64plus
10noblacklist ${HOME}/.local/share/mupen64plus 10nodeny ${HOME}/.local/share/mupen64plus
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-programs.inc
18# you'll need to manually whitelist ROM files 18# you'll need to manually whitelist ROM files
19mkdir ${HOME}/.config/mupen64plus 19mkdir ${HOME}/.config/mupen64plus
20mkdir ${HOME}/.local/share/mupen64plus 20mkdir ${HOME}/.local/share/mupen64plus
21whitelist ${HOME}/.config/mupen64plus 21allow ${HOME}/.config/mupen64plus
22whitelist ${HOME}/.local/share/mupen64plus 22allow ${HOME}/.local/share/mupen64plus
23include whitelist-common.inc 23include whitelist-common.inc
24 24
25caps.drop all 25caps.drop all
diff --git a/etc/profile-m-z/musescore.profile b/etc/profile-m-z/musescore.profile
index 679e82ae8..aa141f9c0 100644
--- a/etc/profile-m-z/musescore.profile
+++ b/etc/profile-m-z/musescore.profile
@@ -6,12 +6,12 @@ include musescore.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/MusE 9nodeny ${HOME}/.config/MusE
10noblacklist ${HOME}/.config/MuseScore 10nodeny ${HOME}/.config/MuseScore
11noblacklist ${HOME}/.local/share/data/MusE 11nodeny ${HOME}/.local/share/data/MusE
12noblacklist ${HOME}/.local/share/data/MuseScore 12nodeny ${HOME}/.local/share/data/MuseScore
13noblacklist ${DOCUMENTS} 13nodeny ${DOCUMENTS}
14noblacklist ${MUSIC} 14nodeny ${MUSIC}
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
diff --git a/etc/profile-m-z/musictube.profile b/etc/profile-m-z/musictube.profile
index 04500ac6a..5ab1303a2 100644
--- a/etc/profile-m-z/musictube.profile
+++ b/etc/profile-m-z/musictube.profile
@@ -6,9 +6,9 @@ include musictube.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Flavio Tordini 9nodeny ${HOME}/.cache/Flavio Tordini
10noblacklist ${HOME}/.config/Flavio Tordini 10nodeny ${HOME}/.config/Flavio Tordini
11noblacklist ${HOME}/.local/share/Flavio Tordini 11nodeny ${HOME}/.local/share/Flavio Tordini
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -22,10 +22,10 @@ include disable-xdg.inc
22mkdir ${HOME}/.cache/Flavio Tordini 22mkdir ${HOME}/.cache/Flavio Tordini
23mkdir ${HOME}/.config/Flavio Tordini 23mkdir ${HOME}/.config/Flavio Tordini
24mkdir ${HOME}/.local/share/Flavio Tordini 24mkdir ${HOME}/.local/share/Flavio Tordini
25whitelist ${HOME}/.cache/Flavio Tordini 25allow ${HOME}/.cache/Flavio Tordini
26whitelist ${HOME}/.config/Flavio Tordini 26allow ${HOME}/.config/Flavio Tordini
27whitelist ${HOME}/.local/share/Flavio Tordini 27allow ${HOME}/.local/share/Flavio Tordini
28whitelist /usr/share/musictube 28allow /usr/share/musictube
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/musixmatch.profile b/etc/profile-m-z/musixmatch.profile
index 74b3e9a5f..9390f9dcf 100644
--- a/etc/profile-m-z/musixmatch.profile
+++ b/etc/profile-m-z/musixmatch.profile
@@ -5,7 +5,7 @@ include musixmatch.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${MUSIC} 8nodeny ${MUSIC}
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-m-z/mutt.profile b/etc/profile-m-z/mutt.profile
index debf81659..91606bdfa 100644
--- a/etc/profile-m-z/mutt.profile
+++ b/etc/profile-m-z/mutt.profile
@@ -7,36 +7,36 @@ include mutt.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist /var/mail 10nodeny /var/mail
11noblacklist /var/spool/mail 11nodeny /var/spool/mail
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13noblacklist ${HOME}/.Mail 13nodeny ${HOME}/.Mail
14noblacklist ${HOME}/.bogofilter 14nodeny ${HOME}/.bogofilter
15noblacklist ${HOME}/.cache/mutt 15nodeny ${HOME}/.cache/mutt
16noblacklist ${HOME}/.config/mutt 16nodeny ${HOME}/.config/mutt
17noblacklist ${HOME}/.config/nano 17nodeny ${HOME}/.config/nano
18noblacklist ${HOME}/.elinks 18nodeny ${HOME}/.elinks
19noblacklist ${HOME}/.emacs 19nodeny ${HOME}/.emacs
20noblacklist ${HOME}/.emacs.d 20nodeny ${HOME}/.emacs.d
21noblacklist ${HOME}/.gnupg 21nodeny ${HOME}/.gnupg
22noblacklist ${HOME}/.mail 22nodeny ${HOME}/.mail
23noblacklist ${HOME}/.mailcap 23nodeny ${HOME}/.mailcap
24noblacklist ${HOME}/.msmtprc 24nodeny ${HOME}/.msmtprc
25noblacklist ${HOME}/.mutt 25nodeny ${HOME}/.mutt
26noblacklist ${HOME}/.muttrc 26nodeny ${HOME}/.muttrc
27noblacklist ${HOME}/.nanorc 27nodeny ${HOME}/.nanorc
28noblacklist ${HOME}/.signature 28nodeny ${HOME}/.signature
29noblacklist ${HOME}/.vim 29nodeny ${HOME}/.vim
30noblacklist ${HOME}/.viminfo 30nodeny ${HOME}/.viminfo
31noblacklist ${HOME}/.vimrc 31nodeny ${HOME}/.vimrc
32noblacklist ${HOME}/.w3m 32nodeny ${HOME}/.w3m
33noblacklist ${HOME}/Mail 33nodeny ${HOME}/Mail
34noblacklist ${HOME}/mail 34nodeny ${HOME}/mail
35noblacklist ${HOME}/postponed 35nodeny ${HOME}/postponed
36noblacklist ${HOME}/sent 36nodeny ${HOME}/sent
37 37
38blacklist /tmp/.X11-unix 38deny /tmp/.X11-unix
39blacklist ${RUNUSER}/wayland-* 39deny ${RUNUSER}/wayland-*
40 40
41# Add the next lines to your mutt.local for oauth.py,S/MIME support. 41# Add the next lines to your mutt.local for oauth.py,S/MIME support.
42#include allow-perl.inc 42#include allow-perl.inc
@@ -75,37 +75,37 @@ mkfile ${HOME}/.nanorc
75mkfile ${HOME}/.signature 75mkfile ${HOME}/.signature
76mkfile ${HOME}/.viminfo 76mkfile ${HOME}/.viminfo
77mkfile ${HOME}/.vimrc 77mkfile ${HOME}/.vimrc
78whitelist ${DOCUMENTS} 78allow ${DOCUMENTS}
79whitelist ${DOWNLOADS} 79allow ${DOWNLOADS}
80whitelist ${HOME}/.Mail 80allow ${HOME}/.Mail
81whitelist ${HOME}/.bogofilter 81allow ${HOME}/.bogofilter
82whitelist ${HOME}/.cache/mutt 82allow ${HOME}/.cache/mutt
83whitelist ${HOME}/.config/mutt 83allow ${HOME}/.config/mutt
84whitelist ${HOME}/.config/nano 84allow ${HOME}/.config/nano
85whitelist ${HOME}/.elinks 85allow ${HOME}/.elinks
86whitelist ${HOME}/.emacs 86allow ${HOME}/.emacs
87whitelist ${HOME}/.emacs.d 87allow ${HOME}/.emacs.d
88whitelist ${HOME}/.gnupg 88allow ${HOME}/.gnupg
89whitelist ${HOME}/.mail 89allow ${HOME}/.mail
90whitelist ${HOME}/.mailcap 90allow ${HOME}/.mailcap
91whitelist ${HOME}/.msmtprc 91allow ${HOME}/.msmtprc
92whitelist ${HOME}/.mutt 92allow ${HOME}/.mutt
93whitelist ${HOME}/.muttrc 93allow ${HOME}/.muttrc
94whitelist ${HOME}/.nanorc 94allow ${HOME}/.nanorc
95whitelist ${HOME}/.signature 95allow ${HOME}/.signature
96whitelist ${HOME}/.vim 96allow ${HOME}/.vim
97whitelist ${HOME}/.viminfo 97allow ${HOME}/.viminfo
98whitelist ${HOME}/.vimrc 98allow ${HOME}/.vimrc
99whitelist ${HOME}/.w3m 99allow ${HOME}/.w3m
100whitelist ${HOME}/Mail 100allow ${HOME}/Mail
101whitelist ${HOME}/mail 101allow ${HOME}/mail
102whitelist ${HOME}/postponed 102allow ${HOME}/postponed
103whitelist ${HOME}/sent 103allow ${HOME}/sent
104whitelist /usr/share/gnupg 104allow /usr/share/gnupg
105whitelist /usr/share/gnupg2 105allow /usr/share/gnupg2
106whitelist /usr/share/mutt 106allow /usr/share/mutt
107whitelist /var/mail 107allow /var/mail
108whitelist /var/spool/mail 108allow /var/spool/mail
109include whitelist-common.inc 109include whitelist-common.inc
110include whitelist-runuser-common.inc 110include whitelist-runuser-common.inc
111include whitelist-usr-share-common.inc 111include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/mypaint.profile b/etc/profile-m-z/mypaint.profile
index d8d487fe7..19af47498 100644
--- a/etc/profile-m-z/mypaint.profile
+++ b/etc/profile-m-z/mypaint.profile
@@ -6,10 +6,10 @@ include mypaint.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/mypaint 9nodeny ${HOME}/.cache/mypaint
10noblacklist ${HOME}/.config/mypaint 10nodeny ${HOME}/.config/mypaint
11noblacklist ${HOME}/.local/share/mypaint 11nodeny ${HOME}/.local/share/mypaint
12noblacklist ${PICTURES} 12nodeny ${PICTURES}
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python2.inc 15include allow-python2.inc
diff --git a/etc/profile-m-z/nano.profile b/etc/profile-m-z/nano.profile
index 4698c2287..f0553bed5 100644
--- a/etc/profile-m-z/nano.profile
+++ b/etc/profile-m-z/nano.profile
@@ -7,10 +7,10 @@ include nano.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12noblacklist ${HOME}/.config/nano 12nodeny ${HOME}/.config/nano
13noblacklist ${HOME}/.nanorc 13nodeny ${HOME}/.nanorc
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-interpreters.inc
19include disable-passwdmgr.inc 19include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22whitelist /usr/share/nano 22allow /usr/share/nano
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24 24
25apparmor 25apparmor
diff --git a/etc/profile-m-z/natron.profile b/etc/profile-m-z/natron.profile
index 5bf152f84..35d152748 100644
--- a/etc/profile-m-z/natron.profile
+++ b/etc/profile-m-z/natron.profile
@@ -5,9 +5,9 @@ include natron.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.Natron 8nodeny ${HOME}/.Natron
9noblacklist ${HOME}/.cache/INRIA/Natron 9nodeny ${HOME}/.cache/INRIA/Natron
10noblacklist ${HOME}/.config/INRIA 10nodeny ${HOME}/.config/INRIA
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-m-z/ncdu.profile b/etc/profile-m-z/ncdu.profile
index 063e30366..38646dc90 100644
--- a/etc/profile-m-z/ncdu.profile
+++ b/etc/profile-m-z/ncdu.profile
@@ -6,7 +6,7 @@ include ncdu.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11include disable-exec.inc 11include disable-exec.inc
12 12
diff --git a/etc/profile-m-z/neochat.profile b/etc/profile-m-z/neochat.profile
index 9f00448c8..ceb885908 100644
--- a/etc/profile-m-z/neochat.profile
+++ b/etc/profile-m-z/neochat.profile
@@ -6,12 +6,12 @@ include neochat.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/KDE/neochat 9nodeny ${HOME}/.cache/KDE/neochat
10noblacklist ${HOME}/.config/KDE 10nodeny ${HOME}/.config/KDE
11noblacklist ${HOME}/.config/KDE/neochat 11nodeny ${HOME}/.config/KDE/neochat
12noblacklist ${HOME}/.config/neochatrc 12nodeny ${HOME}/.config/neochatrc
13noblacklist ${HOME}/.config/neochat.notifyrc 13nodeny ${HOME}/.config/neochat.notifyrc
14noblacklist ${HOME}/.local/share/KDE/neochat 14nodeny ${HOME}/.local/share/KDE/neochat
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -24,9 +24,9 @@ include disable-xdg.inc
24 24
25mkdir ${HOME}/.cache/KDE/neochat 25mkdir ${HOME}/.cache/KDE/neochat
26mkdir ${HOME}/.local/share/KDE/neochat 26mkdir ${HOME}/.local/share/KDE/neochat
27whitelist ${HOME}/.cache/KDE/neochat 27allow ${HOME}/.cache/KDE/neochat
28whitelist ${HOME}/.local/share/KDE/neochat 28allow ${HOME}/.local/share/KDE/neochat
29whitelist ${DOWNLOADS} 29allow ${DOWNLOADS}
30include whitelist-1793-workaround.inc 30include whitelist-1793-workaround.inc
31include whitelist-common.inc 31include whitelist-common.inc
32include whitelist-runuser-common.inc 32include whitelist-runuser-common.inc
diff --git a/etc/profile-m-z/neomutt.profile b/etc/profile-m-z/neomutt.profile
index fafa129e4..939d6f111 100644
--- a/etc/profile-m-z/neomutt.profile
+++ b/etc/profile-m-z/neomutt.profile
@@ -7,38 +7,38 @@ include neomutt.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${HOME}/.Mail 11nodeny ${HOME}/.Mail
12noblacklist ${HOME}/.bogofilter 12nodeny ${HOME}/.bogofilter
13noblacklist ${HOME}/.config/mutt 13nodeny ${HOME}/.config/mutt
14noblacklist ${HOME}/.config/nano 14nodeny ${HOME}/.config/nano
15noblacklist ${HOME}/.config/neomutt 15nodeny ${HOME}/.config/neomutt
16noblacklist ${HOME}/.elinks 16nodeny ${HOME}/.elinks
17noblacklist ${HOME}/.emacs 17nodeny ${HOME}/.emacs
18noblacklist ${HOME}/.emacs.d 18nodeny ${HOME}/.emacs.d
19noblacklist ${HOME}/.gnupg 19nodeny ${HOME}/.gnupg
20noblacklist ${HOME}/.mail 20nodeny ${HOME}/.mail
21noblacklist ${HOME}/.mailcap 21nodeny ${HOME}/.mailcap
22noblacklist ${HOME}/.msmtprc 22nodeny ${HOME}/.msmtprc
23noblacklist ${HOME}/.mutt 23nodeny ${HOME}/.mutt
24noblacklist ${HOME}/.muttrc 24nodeny ${HOME}/.muttrc
25noblacklist ${HOME}/.nanorc 25nodeny ${HOME}/.nanorc
26noblacklist ${HOME}/.neomutt 26nodeny ${HOME}/.neomutt
27noblacklist ${HOME}/.neomuttrc 27nodeny ${HOME}/.neomuttrc
28noblacklist ${HOME}/.signature 28nodeny ${HOME}/.signature
29noblacklist ${HOME}/.vim 29nodeny ${HOME}/.vim
30noblacklist ${HOME}/.viminfo 30nodeny ${HOME}/.viminfo
31noblacklist ${HOME}/.vimrc 31nodeny ${HOME}/.vimrc
32noblacklist ${HOME}/.w3m 32nodeny ${HOME}/.w3m
33noblacklist ${HOME}/Mail 33nodeny ${HOME}/Mail
34noblacklist ${HOME}/mail 34nodeny ${HOME}/mail
35noblacklist ${HOME}/postponed 35nodeny ${HOME}/postponed
36noblacklist ${HOME}/sent 36nodeny ${HOME}/sent
37noblacklist /var/mail 37nodeny /var/mail
38noblacklist /var/spool/mail 38nodeny /var/spool/mail
39 39
40blacklist /tmp/.X11-unix 40deny /tmp/.X11-unix
41blacklist ${RUNUSER}/wayland-* 41deny ${RUNUSER}/wayland-*
42 42
43include allow-lua.inc 43include allow-lua.inc
44 44
@@ -76,39 +76,39 @@ mkfile ${HOME}/.neomuttrc
76mkfile ${HOME}/.signature 76mkfile ${HOME}/.signature
77mkfile ${HOME}/.viminfo 77mkfile ${HOME}/.viminfo
78mkfile ${HOME}/.vimrc 78mkfile ${HOME}/.vimrc
79whitelist ${DOCUMENTS} 79allow ${DOCUMENTS}
80whitelist ${DOWNLOADS} 80allow ${DOWNLOADS}
81whitelist ${HOME}/.Mail 81allow ${HOME}/.Mail
82whitelist ${HOME}/.bogofilter 82allow ${HOME}/.bogofilter
83whitelist ${HOME}/.config/mutt 83allow ${HOME}/.config/mutt
84whitelist ${HOME}/.config/nano 84allow ${HOME}/.config/nano
85whitelist ${HOME}/.config/neomutt 85allow ${HOME}/.config/neomutt
86whitelist ${HOME}/.elinks 86allow ${HOME}/.elinks
87whitelist ${HOME}/.emacs 87allow ${HOME}/.emacs
88whitelist ${HOME}/.emacs.d 88allow ${HOME}/.emacs.d
89whitelist ${HOME}/.gnupg 89allow ${HOME}/.gnupg
90whitelist ${HOME}/.mail 90allow ${HOME}/.mail
91whitelist ${HOME}/.mailcap 91allow ${HOME}/.mailcap
92whitelist ${HOME}/.msmtprc 92allow ${HOME}/.msmtprc
93whitelist ${HOME}/.mutt 93allow ${HOME}/.mutt
94whitelist ${HOME}/.muttrc 94allow ${HOME}/.muttrc
95whitelist ${HOME}/.nanorc 95allow ${HOME}/.nanorc
96whitelist ${HOME}/.neomutt 96allow ${HOME}/.neomutt
97whitelist ${HOME}/.neomuttrc 97allow ${HOME}/.neomuttrc
98whitelist ${HOME}/.signature 98allow ${HOME}/.signature
99whitelist ${HOME}/.vim 99allow ${HOME}/.vim
100whitelist ${HOME}/.viminfo 100allow ${HOME}/.viminfo
101whitelist ${HOME}/.vimrc 101allow ${HOME}/.vimrc
102whitelist ${HOME}/.w3m 102allow ${HOME}/.w3m
103whitelist ${HOME}/Mail 103allow ${HOME}/Mail
104whitelist ${HOME}/mail 104allow ${HOME}/mail
105whitelist ${HOME}/postponed 105allow ${HOME}/postponed
106whitelist ${HOME}/sent 106allow ${HOME}/sent
107whitelist /usr/share/gnupg 107allow /usr/share/gnupg
108whitelist /usr/share/gnupg2 108allow /usr/share/gnupg2
109whitelist /usr/share/neomutt 109allow /usr/share/neomutt
110whitelist /var/mail 110allow /var/mail
111whitelist /var/spool/mail 111allow /var/spool/mail
112include whitelist-common.inc 112include whitelist-common.inc
113include whitelist-runuser-common.inc 113include whitelist-runuser-common.inc
114include whitelist-usr-share-common.inc 114include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/netactview.profile b/etc/profile-m-z/netactview.profile
index 5d45dd7bc..68297c110 100644
--- a/etc/profile-m-z/netactview.profile
+++ b/etc/profile-m-z/netactview.profile
@@ -6,7 +6,7 @@ include netactview.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.netactview 9nodeny ${HOME}/.netactview
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkfile ${HOME}/.netactview 20mkfile ${HOME}/.netactview
21whitelist ${HOME}/.netactview 21allow ${HOME}/.netactview
22whitelist /usr/share/netactview 22allow /usr/share/netactview
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/nethack-vultures.profile b/etc/profile-m-z/nethack-vultures.profile
index c9a537370..d5bf8a52a 100644
--- a/etc/profile-m-z/nethack-vultures.profile
+++ b/etc/profile-m-z/nethack-vultures.profile
@@ -6,7 +6,7 @@ include nethack.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.vultures 9nodeny ${HOME}/.vultures
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,8 +16,8 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18mkdir ${HOME}/.vultures 18mkdir ${HOME}/.vultures
19whitelist ${HOME}/.vultures 19allow ${HOME}/.vultures
20whitelist /var/log/vultures 20allow /var/log/vultures
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-m-z/nethack.profile b/etc/profile-m-z/nethack.profile
index b57abe260..23b57bb52 100644
--- a/etc/profile-m-z/nethack.profile
+++ b/etc/profile-m-z/nethack.profile
@@ -6,7 +6,7 @@ include nethack.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /var/games/nethack 9nodeny /var/games/nethack
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -15,7 +15,7 @@ include disable-interpreters.inc
15include disable-passwdmgr.inc 15include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18whitelist /var/games/nethack 18allow /var/games/nethack
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-var-common.inc 20include whitelist-var-common.inc
21 21
diff --git a/etc/profile-m-z/netsurf.profile b/etc/profile-m-z/netsurf.profile
index 0ddb7bbbe..b099d6f0c 100644
--- a/etc/profile-m-z/netsurf.profile
+++ b/etc/profile-m-z/netsurf.profile
@@ -6,8 +6,8 @@ include netsurf.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/netsurf 9nodeny ${HOME}/.cache/netsurf
10noblacklist ${HOME}/.config/netsurf 10nodeny ${HOME}/.config/netsurf
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -16,9 +16,9 @@ include disable-programs.inc
16 16
17mkdir ${HOME}/.cache/netsurf 17mkdir ${HOME}/.cache/netsurf
18mkdir ${HOME}/.config/netsurf 18mkdir ${HOME}/.config/netsurf
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.cache/netsurf 20allow ${HOME}/.cache/netsurf
21whitelist ${HOME}/.config/netsurf 21allow ${HOME}/.config/netsurf
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-m-z/neverball.profile b/etc/profile-m-z/neverball.profile
index ecfbb14e4..dad90a66c 100644
--- a/etc/profile-m-z/neverball.profile
+++ b/etc/profile-m-z/neverball.profile
@@ -6,7 +6,7 @@ include neverball.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.neverball 9nodeny ${HOME}/.neverball
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.neverball 20mkdir ${HOME}/.neverball
21whitelist ${HOME}/.neverball 21allow ${HOME}/.neverball
22whitelist /usr/share/neverball 22allow /usr/share/neverball
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/newsbeuter.profile b/etc/profile-m-z/newsbeuter.profile
index 6efb19502..c26ba4be0 100644
--- a/etc/profile-m-z/newsbeuter.profile
+++ b/etc/profile-m-z/newsbeuter.profile
@@ -11,15 +11,15 @@ ignore include newsboat.local
11ignore mkdir ${HOME}/.config/newsboat 11ignore mkdir ${HOME}/.config/newsboat
12ignore mkdir ${HOME}/.local/share/newsboat 12ignore mkdir ${HOME}/.local/share/newsboat
13ignore mkdir ${HOME}/.newsboat 13ignore mkdir ${HOME}/.newsboat
14blacklist ${PATH}/newsboat 14deny ${PATH}/newsboat
15 15
16blacklist ${HOME}/.config/newsboat 16deny ${HOME}/.config/newsboat
17blacklist ${HOME}/.local/share/newsboat 17deny ${HOME}/.local/share/newsboat
18blacklist ${HOME}/.newsboat 18deny ${HOME}/.newsboat
19 19
20nowhitelist ${HOME}/.config/newsboat 20noallow ${HOME}/.config/newsboat
21nowhitelist ${HOME}/.local/share/newsboat 21noallow ${HOME}/.local/share/newsboat
22nowhitelist ${HOME}/.newsboat 22noallow ${HOME}/.newsboat
23 23
24mkdir ${HOME}/.config/newsbeuter 24mkdir ${HOME}/.config/newsbeuter
25mkdir ${HOME}/.local/share/newsbeuter 25mkdir ${HOME}/.local/share/newsbeuter
diff --git a/etc/profile-m-z/newsboat.profile b/etc/profile-m-z/newsboat.profile
index 13bc3a615..e34752b55 100644
--- a/etc/profile-m-z/newsboat.profile
+++ b/etc/profile-m-z/newsboat.profile
@@ -6,12 +6,12 @@ include newsboat.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/newsbeuter 9nodeny ${HOME}/.config/newsbeuter
10noblacklist ${HOME}/.config/newsboat 10nodeny ${HOME}/.config/newsboat
11noblacklist ${HOME}/.local/share/newsbeuter 11nodeny ${HOME}/.local/share/newsbeuter
12noblacklist ${HOME}/.local/share/newsboat 12nodeny ${HOME}/.local/share/newsboat
13noblacklist ${HOME}/.newsbeuter 13nodeny ${HOME}/.newsbeuter
14noblacklist ${HOME}/.newsboat 14nodeny ${HOME}/.newsboat
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -24,12 +24,12 @@ include disable-xdg.inc
24mkdir ${HOME}/.config/newsboat 24mkdir ${HOME}/.config/newsboat
25mkdir ${HOME}/.local/share/newsboat 25mkdir ${HOME}/.local/share/newsboat
26mkdir ${HOME}/.newsboat 26mkdir ${HOME}/.newsboat
27whitelist ${HOME}/.config/newsbeuter 27allow ${HOME}/.config/newsbeuter
28whitelist ${HOME}/.config/newsboat 28allow ${HOME}/.config/newsboat
29whitelist ${HOME}/.local/share/newsbeuter 29allow ${HOME}/.local/share/newsbeuter
30whitelist ${HOME}/.local/share/newsboat 30allow ${HOME}/.local/share/newsboat
31whitelist ${HOME}/.newsbeuter 31allow ${HOME}/.newsbeuter
32whitelist ${HOME}/.newsboat 32allow ${HOME}/.newsboat
33include whitelist-common.inc 33include whitelist-common.inc
34include whitelist-runuser-common.inc 34include whitelist-runuser-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
diff --git a/etc/profile-m-z/newsflash.profile b/etc/profile-m-z/newsflash.profile
index 18d8c6ed4..273628ea2 100644
--- a/etc/profile-m-z/newsflash.profile
+++ b/etc/profile-m-z/newsflash.profile
@@ -6,9 +6,9 @@ include newsflash.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/NewsFlashGTK 9nodeny ${HOME}/.cache/NewsFlashGTK
10noblacklist ${HOME}/.config/news-flash 10nodeny ${HOME}/.config/news-flash
11noblacklist ${HOME}/.local/share/news-flash 11nodeny ${HOME}/.local/share/news-flash
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -22,9 +22,9 @@ include disable-xdg.inc
22mkdir ${HOME}/.cache/NewsFlashGTK 22mkdir ${HOME}/.cache/NewsFlashGTK
23mkdir ${HOME}/.config/news-flash 23mkdir ${HOME}/.config/news-flash
24mkdir ${HOME}/.local/share/news-flash 24mkdir ${HOME}/.local/share/news-flash
25whitelist ${HOME}/.cache/NewsFlashGTK 25allow ${HOME}/.cache/NewsFlashGTK
26whitelist ${HOME}/.config/news-flash 26allow ${HOME}/.config/news-flash
27whitelist ${HOME}/.local/share/news-flash 27allow ${HOME}/.local/share/news-flash
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/nextcloud.profile b/etc/profile-m-z/nextcloud.profile
index 9fd76fbe7..7ba46691d 100644
--- a/etc/profile-m-z/nextcloud.profile
+++ b/etc/profile-m-z/nextcloud.profile
@@ -6,9 +6,9 @@ include nextcloud.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/Nextcloud 9nodeny ${HOME}/Nextcloud
10noblacklist ${HOME}/.config/Nextcloud 10nodeny ${HOME}/.config/Nextcloud
11noblacklist ${HOME}/.local/share/Nextcloud 11nodeny ${HOME}/.local/share/Nextcloud
12# Add the next lines to your nextcloud.local to allow sync in more directories. 12# Add the next lines to your nextcloud.local to allow sync in more directories.
13#noblacklist ${DOCUMENTS} 13#noblacklist ${DOCUMENTS}
14#noblacklist ${MUSIC} 14#noblacklist ${MUSIC}
@@ -27,9 +27,9 @@ include disable-xdg.inc
27mkdir ${HOME}/Nextcloud 27mkdir ${HOME}/Nextcloud
28mkdir ${HOME}/.config/Nextcloud 28mkdir ${HOME}/.config/Nextcloud
29mkdir ${HOME}/.local/share/Nextcloud 29mkdir ${HOME}/.local/share/Nextcloud
30whitelist ${HOME}/Nextcloud 30allow ${HOME}/Nextcloud
31whitelist ${HOME}/.config/Nextcloud 31allow ${HOME}/.config/Nextcloud
32whitelist ${HOME}/.local/share/Nextcloud 32allow ${HOME}/.local/share/Nextcloud
33# Add the next lines to your nextcloud.local to allow sync in more directories. 33# Add the next lines to your nextcloud.local to allow sync in more directories.
34#whitelist ${DOCUMENTS} 34#whitelist ${DOCUMENTS}
35#whitelist ${MUSIC} 35#whitelist ${MUSIC}
diff --git a/etc/profile-m-z/nheko.profile b/etc/profile-m-z/nheko.profile
index f8062891c..0149e0737 100644
--- a/etc/profile-m-z/nheko.profile
+++ b/etc/profile-m-z/nheko.profile
@@ -6,9 +6,9 @@ include nheko.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/nheko 9nodeny ${HOME}/.cache/nheko
10noblacklist ${HOME}/.config/nheko 10nodeny ${HOME}/.config/nheko
11noblacklist ${HOME}/.local/share/nheko 11nodeny ${HOME}/.local/share/nheko
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -22,10 +22,10 @@ include disable-xdg.inc
22mkdir ${HOME}/.cache/nheko 22mkdir ${HOME}/.cache/nheko
23mkdir ${HOME}/.config/nheko 23mkdir ${HOME}/.config/nheko
24mkdir ${HOME}/.local/share/nheko 24mkdir ${HOME}/.local/share/nheko
25whitelist ${HOME}/.cache/nheko 25allow ${HOME}/.cache/nheko
26whitelist ${HOME}/.config/nheko 26allow ${HOME}/.config/nheko
27whitelist ${HOME}/.local/share/nheko 27allow ${HOME}/.local/share/nheko
28whitelist ${DOWNLOADS} 28allow ${DOWNLOADS}
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/nicotine.profile b/etc/profile-m-z/nicotine.profile
index 1c7dbc009..b31a7babf 100644
--- a/etc/profile-m-z/nicotine.profile
+++ b/etc/profile-m-z/nicotine.profile
@@ -6,7 +6,7 @@ include nicotine.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.nicotine 9nodeny ${HOME}/.nicotine
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -21,9 +21,9 @@ include disable-shell.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.nicotine 23mkdir ${HOME}/.nicotine
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25whitelist ${HOME}/.nicotine 25allow ${HOME}/.nicotine
26whitelist /usr/share/GeoIP 26allow /usr/share/GeoIP
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/nitroshare.profile b/etc/profile-m-z/nitroshare.profile
index 8dba84f02..70fffd5d4 100644
--- a/etc/profile-m-z/nitroshare.profile
+++ b/etc/profile-m-z/nitroshare.profile
@@ -6,8 +6,8 @@ include nitroshare.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Nathan Osman 9nodeny ${HOME}/.config/Nathan Osman
10noblacklist ${HOME}/.config/NitroShare 10nodeny ${HOME}/.config/NitroShare
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-m-z/nodejs-common.profile b/etc/profile-m-z/nodejs-common.profile
index fa69f9214..7981ba6ae 100644
--- a/etc/profile-m-z/nodejs-common.profile
+++ b/etc/profile-m-z/nodejs-common.profile
@@ -7,22 +7,22 @@ include nodejs-common.local
7# added by caller profile 7# added by caller profile
8#include globals.local 8#include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER} 11deny ${RUNUSER}
12 12
13ignore read-only ${HOME}/.npm-packages 13ignore read-only ${HOME}/.npm-packages
14ignore read-only ${HOME}/.npmrc 14ignore read-only ${HOME}/.npmrc
15ignore read-only ${HOME}/.nvm 15ignore read-only ${HOME}/.nvm
16ignore read-only ${HOME}/.yarnrc 16ignore read-only ${HOME}/.yarnrc
17 17
18noblacklist ${HOME}/.node-gyp 18nodeny ${HOME}/.node-gyp
19noblacklist ${HOME}/.npm 19nodeny ${HOME}/.npm
20noblacklist ${HOME}/.npmrc 20nodeny ${HOME}/.npmrc
21noblacklist ${HOME}/.nvm 21nodeny ${HOME}/.nvm
22noblacklist ${HOME}/.yarn 22nodeny ${HOME}/.yarn
23noblacklist ${HOME}/.yarn-config 23nodeny ${HOME}/.yarn-config
24noblacklist ${HOME}/.yarncache 24nodeny ${HOME}/.yarncache
25noblacklist ${HOME}/.yarnrc 25nodeny ${HOME}/.yarnrc
26 26
27ignore noexec ${HOME} 27ignore noexec ${HOME}
28 28
@@ -58,9 +58,9 @@ include disable-xdg.inc
58#whitelist ${HOME}/Projects 58#whitelist ${HOME}/Projects
59#include whitelist-common.inc 59#include whitelist-common.inc
60 60
61whitelist /usr/share/doc/node 61allow /usr/share/doc/node
62whitelist /usr/share/nvm 62allow /usr/share/nvm
63whitelist /usr/share/systemtap/tapset/node.stp 63allow /usr/share/systemtap/tapset/node.stp
64include whitelist-runuser-common.inc 64include whitelist-runuser-common.inc
65include whitelist-usr-share-common.inc 65include whitelist-usr-share-common.inc
66include whitelist-var-common.inc 66include whitelist-var-common.inc
diff --git a/etc/profile-m-z/nomacs.profile b/etc/profile-m-z/nomacs.profile
index a36dee874..80fbd0fcb 100644
--- a/etc/profile-m-z/nomacs.profile
+++ b/etc/profile-m-z/nomacs.profile
@@ -6,10 +6,10 @@ include nomacs.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/nomacs 9nodeny ${HOME}/.config/nomacs
10noblacklist ${HOME}/.local/share/nomacs 10nodeny ${HOME}/.local/share/nomacs
11noblacklist ${HOME}/.local/share/data/nomacs 11nodeny ${HOME}/.local/share/data/nomacs
12noblacklist ${PICTURES} 12nodeny ${PICTURES}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/notify-send.profile b/etc/profile-m-z/notify-send.profile
index 650118c98..a3bcc040c 100644
--- a/etc/profile-m-z/notify-send.profile
+++ b/etc/profile-m-z/notify-send.profile
@@ -7,7 +7,7 @@ include notify-send.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/nslookup.profile b/etc/profile-m-z/nslookup.profile
index c7a131a2c..b3002ad0e 100644
--- a/etc/profile-m-z/nslookup.profile
+++ b/etc/profile-m-z/nslookup.profile
@@ -7,10 +7,10 @@ include nslookup.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER} 11deny ${RUNUSER}
12 12
13noblacklist ${PATH}/nslookup 13nodeny ${PATH}/nslookup
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -20,7 +20,7 @@ include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23whitelist ${HOME}/.nslookuprc 23allow ${HOME}/.nslookuprc
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-m-z/nuclear.profile b/etc/profile-m-z/nuclear.profile
index 886403b9e..67f54f9fc 100644
--- a/etc/profile-m-z/nuclear.profile
+++ b/etc/profile-m-z/nuclear.profile
@@ -8,12 +8,12 @@ include globals.local
8 8
9ignore dbus-user 9ignore dbus-user
10 10
11noblacklist ${HOME}/.config/nuclear 11nodeny ${HOME}/.config/nuclear
12 12
13include disable-shell.inc 13include disable-shell.inc
14 14
15mkdir ${HOME}/.config/nuclear 15mkdir ${HOME}/.config/nuclear
16whitelist ${HOME}/.config/nuclear 16allow ${HOME}/.config/nuclear
17 17
18no3d 18no3d
19 19
diff --git a/etc/profile-m-z/nylas.profile b/etc/profile-m-z/nylas.profile
index fe0c2116b..ee7710b9c 100644
--- a/etc/profile-m-z/nylas.profile
+++ b/etc/profile-m-z/nylas.profile
@@ -5,8 +5,8 @@ include nylas.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/Nylas Mail 8nodeny ${HOME}/.config/Nylas Mail
9noblacklist ${HOME}/.nylas-mail 9nodeny ${HOME}/.nylas-mail
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,9 +16,9 @@ include disable-programs.inc
16 16
17mkdir ${HOME}/.config/Nylas Mail 17mkdir ${HOME}/.config/Nylas Mail
18mkdir ${HOME}/.nylas-mail 18mkdir ${HOME}/.nylas-mail
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.config/Nylas Mail 20allow ${HOME}/.config/Nylas Mail
21whitelist ${HOME}/.nylas-mail 21allow ${HOME}/.nylas-mail
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-m-z/nyx.profile b/etc/profile-m-z/nyx.profile
index d040d42af..1d606f70c 100644
--- a/etc/profile-m-z/nyx.profile
+++ b/etc/profile-m-z/nyx.profile
@@ -10,7 +10,7 @@ include globals.local
10include allow-python2.inc 10include allow-python2.inc
11include allow-python3.inc 11include allow-python3.inc
12 12
13noblacklist ${HOME}/.nyx 13nodeny ${HOME}/.nyx
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -22,7 +22,7 @@ include disable-shell.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.nyx 24mkdir ${HOME}/.nyx
25whitelist ${HOME}/.nyx 25allow ${HOME}/.nyx
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
28 28
diff --git a/etc/profile-m-z/obs.profile b/etc/profile-m-z/obs.profile
index 9345cee4f..f70bdc55a 100644
--- a/etc/profile-m-z/obs.profile
+++ b/etc/profile-m-z/obs.profile
@@ -5,10 +5,10 @@ include obs.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/obs-studio 8nodeny ${HOME}/.config/obs-studio
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10noblacklist ${PICTURES} 10nodeny ${PICTURES}
11noblacklist ${VIDEOS} 11nodeny ${VIDEOS}
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
diff --git a/etc/profile-m-z/ocenaudio.profile b/etc/profile-m-z/ocenaudio.profile
index 7be68a201..792c2ffc6 100644
--- a/etc/profile-m-z/ocenaudio.profile
+++ b/etc/profile-m-z/ocenaudio.profile
@@ -6,9 +6,9 @@ include ocenaudio.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/ocenaudio 9nodeny ${HOME}/.local/share/ocenaudio
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/odt2txt.profile b/etc/profile-m-z/odt2txt.profile
index 6163d2e22..61b71ec10 100644
--- a/etc/profile-m-z/odt2txt.profile
+++ b/etc/profile-m-z/odt2txt.profile
@@ -6,9 +6,9 @@ include odt2txt.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/okular.profile b/etc/profile-m-z/okular.profile
index ab8ccf623..feeed86cb 100644
--- a/etc/profile-m-z/okular.profile
+++ b/etc/profile-m-z/okular.profile
@@ -6,18 +6,18 @@ include okular.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/okular 9nodeny ${HOME}/.cache/okular
10noblacklist ${HOME}/.config/okularpartrc 10nodeny ${HOME}/.config/okularpartrc
11noblacklist ${HOME}/.config/okularrc 11nodeny ${HOME}/.config/okularrc
12noblacklist ${HOME}/.kde/share/apps/okular 12nodeny ${HOME}/.kde/share/apps/okular
13noblacklist ${HOME}/.kde/share/config/okularpartrc 13nodeny ${HOME}/.kde/share/config/okularpartrc
14noblacklist ${HOME}/.kde/share/config/okularrc 14nodeny ${HOME}/.kde/share/config/okularrc
15noblacklist ${HOME}/.kde4/share/apps/okular 15nodeny ${HOME}/.kde4/share/apps/okular
16noblacklist ${HOME}/.kde4/share/config/okularpartrc 16nodeny ${HOME}/.kde4/share/config/okularpartrc
17noblacklist ${HOME}/.kde4/share/config/okularrc 17nodeny ${HOME}/.kde4/share/config/okularrc
18noblacklist ${HOME}/.local/share/kxmlgui5/okular 18nodeny ${HOME}/.local/share/kxmlgui5/okular
19noblacklist ${HOME}/.local/share/okular 19nodeny ${HOME}/.local/share/okular
20noblacklist ${DOCUMENTS} 20nodeny ${DOCUMENTS}
21 21
22include disable-common.inc 22include disable-common.inc
23include disable-devel.inc 23include disable-devel.inc
@@ -28,15 +28,15 @@ include disable-programs.inc
28include disable-shell.inc 28include disable-shell.inc
29include disable-xdg.inc 29include disable-xdg.inc
30 30
31whitelist /usr/share/config.kcfg/gssettings.kcfg 31allow /usr/share/config.kcfg/gssettings.kcfg
32whitelist /usr/share/config.kcfg/pdfsettings.kcfg 32allow /usr/share/config.kcfg/pdfsettings.kcfg
33whitelist /usr/share/config.kcfg/okular.kcfg 33allow /usr/share/config.kcfg/okular.kcfg
34whitelist /usr/share/config.kcfg/okular_core.kcfg 34allow /usr/share/config.kcfg/okular_core.kcfg
35whitelist /usr/share/ghostscript 35allow /usr/share/ghostscript
36whitelist /usr/share/kconf_update/okular.upd 36allow /usr/share/kconf_update/okular.upd
37whitelist /usr/share/kxmlgui5/okular 37allow /usr/share/kxmlgui5/okular
38whitelist /usr/share/okular 38allow /usr/share/okular
39whitelist /usr/share/poppler 39allow /usr/share/poppler
40include whitelist-runuser-common.inc 40include whitelist-runuser-common.inc
41include whitelist-usr-share-common.inc 41include whitelist-usr-share-common.inc
42include whitelist-var-common.inc 42include whitelist-var-common.inc
diff --git a/etc/profile-m-z/onboard.profile b/etc/profile-m-z/onboard.profile
index 5b367b639..748d17995 100644
--- a/etc/profile-m-z/onboard.profile
+++ b/etc/profile-m-z/onboard.profile
@@ -6,7 +6,7 @@ include onboard.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/onboard 9nodeny ${HOME}/.config/onboard
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -22,8 +22,8 @@ include disable-shell.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.config/onboard 24mkdir ${HOME}/.config/onboard
25whitelist ${HOME}/.config/onboard 25allow ${HOME}/.config/onboard
26whitelist /usr/share/onboard 26allow /usr/share/onboard
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
diff --git a/etc/profile-m-z/onionshare-gui.profile b/etc/profile-m-z/onionshare-gui.profile
index 960df9034..188818a7f 100644
--- a/etc/profile-m-z/onionshare-gui.profile
+++ b/etc/profile-m-z/onionshare-gui.profile
@@ -5,7 +5,7 @@ include onionshare-gui.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/onionshare 8nodeny ${HOME}/.config/onionshare
9 9
10# Allow python (blacklisted by disable-interpreters.inc) 10# Allow python (blacklisted by disable-interpreters.inc)
11include allow-python3.inc 11include allow-python3.inc
diff --git a/etc/profile-m-z/open-invaders.profile b/etc/profile-m-z/open-invaders.profile
index 7a840d4a9..6e2b31def 100644
--- a/etc/profile-m-z/open-invaders.profile
+++ b/etc/profile-m-z/open-invaders.profile
@@ -6,7 +6,7 @@ include open-invaders.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.openinvaders 9nodeny ${HOME}/.openinvaders
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19mkdir ${HOME}/.openinvaders 19mkdir ${HOME}/.openinvaders
20whitelist ${HOME}/.openinvaders 20allow ${HOME}/.openinvaders
21include whitelist-common.inc 21include whitelist-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-m-z/openarena.profile b/etc/profile-m-z/openarena.profile
index 36ce0316f..dfc78e5a9 100644
--- a/etc/profile-m-z/openarena.profile
+++ b/etc/profile-m-z/openarena.profile
@@ -6,7 +6,7 @@ include openarena.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.openarena 9nodeny ${HOME}/.openarena
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.openarena 19mkdir ${HOME}/.openarena
20whitelist ${HOME}/.openarena 20allow ${HOME}/.openarena
21whitelist /usr/share/openarena 21allow /usr/share/openarena
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-runuser-common.inc 23include whitelist-runuser-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/openbox.profile b/etc/profile-m-z/openbox.profile
index b49fd9932..5a6b378f0 100644
--- a/etc/profile-m-z/openbox.profile
+++ b/etc/profile-m-z/openbox.profile
@@ -7,7 +7,7 @@ include openbox.local
7include globals.local 7include globals.local
8 8
9# all applications started in openbox will run in this profile 9# all applications started in openbox will run in this profile
10noblacklist ${HOME}/.config/openbox 10nodeny ${HOME}/.config/openbox
11include disable-common.inc 11include disable-common.inc
12 12
13caps.drop all 13caps.drop all
diff --git a/etc/profile-m-z/opencity.profile b/etc/profile-m-z/opencity.profile
index a3d371e15..268e7cee3 100644
--- a/etc/profile-m-z/opencity.profile
+++ b/etc/profile-m-z/opencity.profile
@@ -6,7 +6,7 @@ include opencity.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.opencity 9nodeny ${HOME}/.opencity
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.opencity 20mkdir ${HOME}/.opencity
21whitelist ${HOME}/.opencity 21allow ${HOME}/.opencity
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/openclonk.profile b/etc/profile-m-z/openclonk.profile
index 32b40df42..588191cb3 100644
--- a/etc/profile-m-z/openclonk.profile
+++ b/etc/profile-m-z/openclonk.profile
@@ -6,7 +6,7 @@ include openclonk.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.clonk 9nodeny ${HOME}/.clonk
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.clonk 20mkdir ${HOME}/.clonk
21whitelist ${HOME}/.clonk 21allow ${HOME}/.clonk
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/openmw.profile b/etc/profile-m-z/openmw.profile
index d1fe67aed..95d507c98 100644
--- a/etc/profile-m-z/openmw.profile
+++ b/etc/profile-m-z/openmw.profile
@@ -6,8 +6,8 @@ include openmw.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/openmw 9nodeny ${HOME}/.config/openmw
10noblacklist ${HOME}/.local/share/openmw 10nodeny ${HOME}/.local/share/openmw
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -21,11 +21,11 @@ include disable-xdg.inc
21 21
22mkdir ${HOME}/.config/openmw 22mkdir ${HOME}/.config/openmw
23mkdir ${HOME}/.local/share/openmw 23mkdir ${HOME}/.local/share/openmw
24whitelist ${HOME}/.config/openmw 24allow ${HOME}/.config/openmw
25# Copy Morrowind data files into ${HOME}/.local/share/openmw or load them from /mnt. 25# Copy Morrowind data files into ${HOME}/.local/share/openmw or load them from /mnt.
26# Alternatively you can whitelist custom paths in your openmw.local. 26# Alternatively you can whitelist custom paths in your openmw.local.
27whitelist ${HOME}/.local/share/openmw 27allow ${HOME}/.local/share/openmw
28whitelist /usr/share/openmw 28allow /usr/share/openmw
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-runuser-common.inc 30include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 31include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/openshot.profile b/etc/profile-m-z/openshot.profile
index 6118630c4..ebb536b3e 100644
--- a/etc/profile-m-z/openshot.profile
+++ b/etc/profile-m-z/openshot.profile
@@ -6,8 +6,8 @@ include openshot.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.openshot 9nodeny ${HOME}/.openshot
10noblacklist ${HOME}/.openshot_qt 10nodeny ${HOME}/.openshot_qt
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python3.inc 13include allow-python3.inc
@@ -19,8 +19,8 @@ include disable-interpreters.inc
19include disable-passwdmgr.inc 19include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22whitelist /usr/share/blender 22allow /usr/share/blender
23whitelist /usr/share/inkscape 23allow /usr/share/inkscape
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-m-z/openttd.profile b/etc/profile-m-z/openttd.profile
index 546958bb7..79c1f8ffa 100644
--- a/etc/profile-m-z/openttd.profile
+++ b/etc/profile-m-z/openttd.profile
@@ -6,7 +6,7 @@ include openttd.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.openttd 9nodeny ${HOME}/.openttd
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.openttd 20mkdir ${HOME}/.openttd
21whitelist ${HOME}/.openttd 21allow ${HOME}/.openttd
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/opera-beta.profile b/etc/profile-m-z/opera-beta.profile
index 551f1aba4..548afc0b4 100644
--- a/etc/profile-m-z/opera-beta.profile
+++ b/etc/profile-m-z/opera-beta.profile
@@ -10,13 +10,13 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/opera 13nodeny ${HOME}/.cache/opera
14noblacklist ${HOME}/.config/opera-beta 14nodeny ${HOME}/.config/opera-beta
15 15
16mkdir ${HOME}/.cache/opera 16mkdir ${HOME}/.cache/opera
17mkdir ${HOME}/.config/opera-beta 17mkdir ${HOME}/.config/opera-beta
18whitelist ${HOME}/.cache/opera 18allow ${HOME}/.cache/opera
19whitelist ${HOME}/.config/opera-beta 19allow ${HOME}/.config/opera-beta
20 20
21# Redirect 21# Redirect
22include chromium-common.profile 22include chromium-common.profile
diff --git a/etc/profile-m-z/opera.profile b/etc/profile-m-z/opera.profile
index 2c7c5fc35..5a3fe064e 100644
--- a/etc/profile-m-z/opera.profile
+++ b/etc/profile-m-z/opera.profile
@@ -11,16 +11,16 @@ ignore whitelist /usr/share/chromium
11ignore include whitelist-runuser-common.inc 11ignore include whitelist-runuser-common.inc
12ignore include whitelist-usr-share-common.inc 12ignore include whitelist-usr-share-common.inc
13 13
14noblacklist ${HOME}/.cache/opera 14nodeny ${HOME}/.cache/opera
15noblacklist ${HOME}/.config/opera 15nodeny ${HOME}/.config/opera
16noblacklist ${HOME}/.opera 16nodeny ${HOME}/.opera
17 17
18mkdir ${HOME}/.cache/opera 18mkdir ${HOME}/.cache/opera
19mkdir ${HOME}/.config/opera 19mkdir ${HOME}/.config/opera
20mkdir ${HOME}/.opera 20mkdir ${HOME}/.opera
21whitelist ${HOME}/.cache/opera 21allow ${HOME}/.cache/opera
22whitelist ${HOME}/.config/opera 22allow ${HOME}/.config/opera
23whitelist ${HOME}/.opera 23allow ${HOME}/.opera
24 24
25# Redirect 25# Redirect
26include chromium-common.profile 26include chromium-common.profile
diff --git a/etc/profile-m-z/orage.profile b/etc/profile-m-z/orage.profile
index 4e4d8bea5..a49cbdb91 100644
--- a/etc/profile-m-z/orage.profile
+++ b/etc/profile-m-z/orage.profile
@@ -6,8 +6,8 @@ include orage.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/orage 9nodeny ${HOME}/.config/orage
10noblacklist ${HOME}/.local/share/orage 10nodeny ${HOME}/.local/share/orage
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/ostrichriders.profile b/etc/profile-m-z/ostrichriders.profile
index 310b90919..ed881816e 100644
--- a/etc/profile-m-z/ostrichriders.profile
+++ b/etc/profile-m-z/ostrichriders.profile
@@ -6,7 +6,7 @@ include ostrichriders.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.ostrichriders 9nodeny ${HOME}/.ostrichriders
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.ostrichriders 20mkdir ${HOME}/.ostrichriders
21whitelist ${HOME}/.ostrichriders 21allow ${HOME}/.ostrichriders
22whitelist /usr/share/ostrichriders 22allow /usr/share/ostrichriders
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/otter-browser.profile b/etc/profile-m-z/otter-browser.profile
index 20a4e25ed..bc9e730a1 100644
--- a/etc/profile-m-z/otter-browser.profile
+++ b/etc/profile-m-z/otter-browser.profile
@@ -8,10 +8,10 @@ include globals.local
8 8
9?BROWSER_ALLOW_DRM: ignore noexec ${HOME} 9?BROWSER_ALLOW_DRM: ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.cache/Otter 11nodeny ${HOME}/.cache/Otter
12noblacklist ${HOME}/.config/otter 12nodeny ${HOME}/.config/otter
13noblacklist ${HOME}/.pki 13nodeny ${HOME}/.pki
14noblacklist ${HOME}/.local/share/pki 14nodeny ${HOME}/.local/share/pki
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -25,12 +25,12 @@ mkdir ${HOME}/.cache/Otter
25mkdir ${HOME}/.config/otter 25mkdir ${HOME}/.config/otter
26mkdir ${HOME}/.pki 26mkdir ${HOME}/.pki
27mkdir ${HOME}/.local/share/pki 27mkdir ${HOME}/.local/share/pki
28whitelist ${DOWNLOADS} 28allow ${DOWNLOADS}
29whitelist ${HOME}/.cache/Otter 29allow ${HOME}/.cache/Otter
30whitelist ${HOME}/.config/otter 30allow ${HOME}/.config/otter
31whitelist ${HOME}/.pki 31allow ${HOME}/.pki
32whitelist ${HOME}/.local/share/pki 32allow ${HOME}/.local/share/pki
33whitelist /usr/share/otter-browser 33allow /usr/share/otter-browser
34include whitelist-common.inc 34include whitelist-common.inc
35include whitelist-runuser-common.inc 35include whitelist-runuser-common.inc
36include whitelist-usr-share-common.inc 36include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/palemoon.profile b/etc/profile-m-z/palemoon.profile
index acb2ce176..503c141d8 100644
--- a/etc/profile-m-z/palemoon.profile
+++ b/etc/profile-m-z/palemoon.profile
@@ -5,13 +5,13 @@ include palemoon.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/moonchild productions/pale moon 8nodeny ${HOME}/.cache/moonchild productions/pale moon
9noblacklist ${HOME}/.moonchild productions/pale moon 9nodeny ${HOME}/.moonchild productions/pale moon
10 10
11mkdir ${HOME}/.cache/moonchild productions/pale moon 11mkdir ${HOME}/.cache/moonchild productions/pale moon
12mkdir ${HOME}/.moonchild productions 12mkdir ${HOME}/.moonchild productions
13whitelist ${HOME}/.cache/moonchild productions/pale moon 13allow ${HOME}/.cache/moonchild productions/pale moon
14whitelist ${HOME}/.moonchild productions 14allow ${HOME}/.moonchild productions
15 15
16# Palemoon can use the full firejail seccomp filter (unlike firefox >= 60) 16# Palemoon can use the full firejail seccomp filter (unlike firefox >= 60)
17seccomp 17seccomp
diff --git a/etc/profile-m-z/pandoc.profile b/etc/profile-m-z/pandoc.profile
index 513b4119e..a59f53298 100644
--- a/etc/profile-m-z/pandoc.profile
+++ b/etc/profile-m-z/pandoc.profile
@@ -7,9 +7,9 @@ include pandoc.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/parole.profile b/etc/profile-m-z/parole.profile
index 0a4422a73..a277d1cbc 100644
--- a/etc/profile-m-z/parole.profile
+++ b/etc/profile-m-z/parole.profile
@@ -6,8 +6,8 @@ include parole.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10noblacklist ${VIDEOS} 10nodeny ${VIDEOS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/patch.profile b/etc/profile-m-z/patch.profile
index 0de968185..156c3956d 100644
--- a/etc/profile-m-z/patch.profile
+++ b/etc/profile-m-z/patch.profile
@@ -7,9 +7,9 @@ include patch.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/pavucontrol-qt.profile b/etc/profile-m-z/pavucontrol-qt.profile
index f96ba14d2..dcd69cdd0 100644
--- a/etc/profile-m-z/pavucontrol-qt.profile
+++ b/etc/profile-m-z/pavucontrol-qt.profile
@@ -7,10 +7,10 @@ include pavucontrol-qt.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.config/pavucontrol-qt 10nodeny ${HOME}/.config/pavucontrol-qt
11 11
12mkdir ${HOME}/.config/pavucontrol-qt 12mkdir ${HOME}/.config/pavucontrol-qt
13whitelist ${HOME}/.config/pavucontrol-qt 13allow ${HOME}/.config/pavucontrol-qt
14 14
15private-bin pavucontrol-qt 15private-bin pavucontrol-qt
16ignore private-lib 16ignore private-lib
diff --git a/etc/profile-m-z/pavucontrol.profile b/etc/profile-m-z/pavucontrol.profile
index b46fb3026..f44730c33 100644
--- a/etc/profile-m-z/pavucontrol.profile
+++ b/etc/profile-m-z/pavucontrol.profile
@@ -6,7 +6,7 @@ include pavucontrol.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/pavucontrol.ini 9nodeny ${HOME}/.config/pavucontrol.ini
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-xdg.inc
19# whitelisting in ${HOME} is broken, see #3112 19# whitelisting in ${HOME} is broken, see #3112
20#mkfile ${HOME}/.config/pavucontrol.ini 20#mkfile ${HOME}/.config/pavucontrol.ini
21#whitelist ${HOME}/.config/pavucontrol.ini 21#whitelist ${HOME}/.config/pavucontrol.ini
22whitelist /usr/share/pavucontrol 22allow /usr/share/pavucontrol
23whitelist /usr/share/pavucontrol-qt 23allow /usr/share/pavucontrol-qt
24#include whitelist-common.inc 24#include whitelist-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
diff --git a/etc/profile-m-z/pcsxr.profile b/etc/profile-m-z/pcsxr.profile
index a6dab2a9a..3f920ced8 100644
--- a/etc/profile-m-z/pcsxr.profile
+++ b/etc/profile-m-z/pcsxr.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9# Note: you must whitelist your games folder in your pcsxr.local 9# Note: you must whitelist your games folder in your pcsxr.local
10 10
11noblacklist ${HOME}/.pcsxr 11nodeny ${HOME}/.pcsxr
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -21,7 +21,7 @@ include disable-write-mnt.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.pcsxr 23mkdir ${HOME}/.pcsxr
24whitelist ${HOME}/.pcsxr 24allow ${HOME}/.pcsxr
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/pdfchain.profile b/etc/profile-m-z/pdfchain.profile
index d72417914..13a011072 100644
--- a/etc/profile-m-z/pdfchain.profile
+++ b/etc/profile-m-z/pdfchain.profile
@@ -5,7 +5,7 @@ include pdfchain.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${DOCUMENTS} 8nodeny ${DOCUMENTS}
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-m-z/pdfmod.profile b/etc/profile-m-z/pdfmod.profile
index a19826555..e49ce8073 100644
--- a/etc/profile-m-z/pdfmod.profile
+++ b/etc/profile-m-z/pdfmod.profile
@@ -6,9 +6,9 @@ include pdfmod.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/pdfmod 9nodeny ${HOME}/.cache/pdfmod
10noblacklist ${HOME}/.config/pdfmod 10nodeny ${HOME}/.config/pdfmod
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/pdfsam.profile b/etc/profile-m-z/pdfsam.profile
index e2808d4d2..67c14bbc3 100644
--- a/etc/profile-m-z/pdfsam.profile
+++ b/etc/profile-m-z/pdfsam.profile
@@ -6,7 +6,7 @@ include pdfsam.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10 10
11# Allow java (blacklisted by disable-devel.inc) 11# Allow java (blacklisted by disable-devel.inc)
12include allow-java.inc 12include allow-java.inc
diff --git a/etc/profile-m-z/pdftotext.profile b/etc/profile-m-z/pdftotext.profile
index d3902a51c..1c7ebfad5 100644
--- a/etc/profile-m-z/pdftotext.profile
+++ b/etc/profile-m-z/pdftotext.profile
@@ -6,9 +6,9 @@ include pdftotext.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER} 9deny ${RUNUSER}
10 10
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,9 +19,9 @@ include disable-programs.inc
19include disable-shell.inc 19include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22whitelist ${DOCUMENTS} 22allow ${DOCUMENTS}
23whitelist ${DOWNLOADS} 23allow ${DOWNLOADS}
24whitelist /usr/share/poppler 24allow /usr/share/poppler
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-m-z/peek.profile b/etc/profile-m-z/peek.profile
index c33953687..e809625ad 100644
--- a/etc/profile-m-z/peek.profile
+++ b/etc/profile-m-z/peek.profile
@@ -5,9 +5,9 @@ include peek.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/peek 8nodeny ${HOME}/.cache/peek
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10noblacklist ${VIDEOS} 10nodeny ${VIDEOS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/penguin-command.profile b/etc/profile-m-z/penguin-command.profile
index f5ad0321d..5ebd7b462 100644
--- a/etc/profile-m-z/penguin-command.profile
+++ b/etc/profile-m-z/penguin-command.profile
@@ -6,7 +6,7 @@ include penguin-command.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.penguin-command 9nodeny ${HOME}/.penguin-command
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18 18
19whitelist ${HOME}/.penguin-command 19allow ${HOME}/.penguin-command
20include whitelist-common.inc 20include whitelist-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
22 22
diff --git a/etc/profile-m-z/photoflare.profile b/etc/profile-m-z/photoflare.profile
index 40068ff78..8dd506850 100644
--- a/etc/profile-m-z/photoflare.profile
+++ b/etc/profile-m-z/photoflare.profile
@@ -6,7 +6,7 @@ include photoflare.local
6# Persistent global definitions 6# Persistent global definitions
7include photoflare.local 7include photoflare.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/picard.profile b/etc/profile-m-z/picard.profile
index a5ea47088..ac178ee6c 100644
--- a/etc/profile-m-z/picard.profile
+++ b/etc/profile-m-z/picard.profile
@@ -6,9 +6,9 @@ include picard.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/MusicBrainz 9nodeny ${HOME}/.cache/MusicBrainz
10noblacklist ${HOME}/.config/MusicBrainz 10nodeny ${HOME}/.config/MusicBrainz
11noblacklist ${MUSIC} 11nodeny ${MUSIC}
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
diff --git a/etc/profile-m-z/pidgin.profile b/etc/profile-m-z/pidgin.profile
index 26872e9a1..a65abeb2e 100644
--- a/etc/profile-m-z/pidgin.profile
+++ b/etc/profile-m-z/pidgin.profile
@@ -9,7 +9,7 @@ include globals.local
9ignore noexec ${RUNUSER} 9ignore noexec ${RUNUSER}
10ignore noexec /dev/shm 10ignore noexec /dev/shm
11 11
12noblacklist ${HOME}/.purple 12nodeny ${HOME}/.purple
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-programs.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.purple 22mkdir ${HOME}/.purple
23whitelist ${HOME}/.purple 23allow ${HOME}/.purple
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25whitelist ${PICTURES} 25allow ${PICTURES}
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
diff --git a/etc/profile-m-z/pinball.profile b/etc/profile-m-z/pinball.profile
index 2e17be2ce..41e4fb6c0 100644
--- a/etc/profile-m-z/pinball.profile
+++ b/etc/profile-m-z/pinball.profile
@@ -6,7 +6,7 @@ include pinball.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/emilia 9nodeny ${HOME}/.config/emilia
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,11 +18,11 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/emilia 20mkdir ${HOME}/.config/emilia
21whitelist ${HOME}/.config/emilia 21allow ${HOME}/.config/emilia
22 22
23whitelist /usr/share/pinball 23allow /usr/share/pinball
24# on debian games are stored under /usr/share/games 24# on debian games are stored under /usr/share/games
25whitelist /usr/share/games/pinball 25allow /usr/share/games/pinball
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/ping.profile b/etc/profile-m-z/ping.profile
index e914007c0..65e77abfa 100644
--- a/etc/profile-m-z/ping.profile
+++ b/etc/profile-m-z/ping.profile
@@ -7,8 +7,8 @@ include ping.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER} 11deny ${RUNUSER}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/pingus.profile b/etc/profile-m-z/pingus.profile
index 3889d87d2..aa2cfe203 100644
--- a/etc/profile-m-z/pingus.profile
+++ b/etc/profile-m-z/pingus.profile
@@ -6,11 +6,13 @@ include pingus.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.pingus 9nodeny ${HOME}/.pingus
10 10
11# Allow /bin/sh (blacklisted by disable-shell.inc) 11# Allow /bin/sh (blacklisted by disable-shell.inc)
12include allow-bin-sh.inc 12include allow-bin-sh.inc
13 13
14deny /usr/libexec
15
14include disable-common.inc 16include disable-common.inc
15include disable-devel.inc 17include disable-devel.inc
16include disable-exec.inc 18include disable-exec.inc
@@ -21,8 +23,8 @@ include disable-shell.inc
21include disable-xdg.inc 23include disable-xdg.inc
22 24
23mkdir ${HOME}/.pingus 25mkdir ${HOME}/.pingus
24whitelist ${HOME}/.pingus 26allow ${HOME}/.pingus
25whitelist /usr/share/pingus 27allow /usr/share/pingus
26include whitelist-common.inc 28include whitelist-common.inc
27include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/pinta.profile b/etc/profile-m-z/pinta.profile
index 19406c399..d0d4f1fce 100644
--- a/etc/profile-m-z/pinta.profile
+++ b/etc/profile-m-z/pinta.profile
@@ -6,9 +6,9 @@ include pinta.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Pinta 9nodeny ${HOME}/.config/Pinta
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11noblacklist ${PICTURES} 11nodeny ${PICTURES}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/pioneer.profile b/etc/profile-m-z/pioneer.profile
index 721b3944a..6cfea28b6 100644
--- a/etc/profile-m-z/pioneer.profile
+++ b/etc/profile-m-z/pioneer.profile
@@ -6,7 +6,7 @@ include pioneer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.pioneer 9nodeny ${HOME}/.pioneer
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.pioneer 20mkdir ${HOME}/.pioneer
21whitelist ${HOME}/.pioneer 21allow ${HOME}/.pioneer
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/pipe-viewer.profile b/etc/profile-m-z/pipe-viewer.profile
new file mode 100644
index 000000000..acd7eeaf2
--- /dev/null
+++ b/etc/profile-m-z/pipe-viewer.profile
@@ -0,0 +1,21 @@
1# Firejail profile for pipe-viewer
2# Description: Fork of youtube-viewer, scrapes youtube directly and with invidious
3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations
6include pipe-viewer.local
7# Persistent global definitions
8include globals.local
9
10nodeny ${HOME}/.cache/pipe-viewer
11nodeny ${HOME}/.config/pipe-viewer
12
13mkdir ${HOME}/.config/pipe-viewer
14mkdir ${HOME}/.cache/pipe-viewer
15allow ${HOME}/.cache/pipe-viewer
16allow ${HOME}/.config/pipe-viewer
17
18private-bin gtk-pipe-viewer,pipe-viewer
19
20# Redirect
21include youtube-viewers-common.profile
diff --git a/etc/profile-m-z/pitivi.profile b/etc/profile-m-z/pitivi.profile
index a2dd809c4..abce4c911 100644
--- a/etc/profile-m-z/pitivi.profile
+++ b/etc/profile-m-z/pitivi.profile
@@ -6,7 +6,7 @@ include pitivi.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/pitivi 9nodeny ${HOME}/.config/pitivi
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
diff --git a/etc/profile-m-z/pix.profile b/etc/profile-m-z/pix.profile
index 81d3e9370..63451d352 100644
--- a/etc/profile-m-z/pix.profile
+++ b/etc/profile-m-z/pix.profile
@@ -5,10 +5,10 @@ include pix.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/pix 8nodeny ${HOME}/.config/pix
9noblacklist ${HOME}/.local/share/pix 9nodeny ${HOME}/.local/share/pix
10noblacklist ${HOME}/.Steam 10nodeny ${HOME}/.Steam
11noblacklist ${HOME}/.steam 11nodeny ${HOME}/.steam
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/pkglog.profile b/etc/profile-m-z/pkglog.profile
index 4eb41b3bd..13d7db7f7 100644
--- a/etc/profile-m-z/pkglog.profile
+++ b/etc/profile-m-z/pkglog.profile
@@ -17,9 +17,9 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist /var/log/apt/history.log 20allow /var/log/apt/history.log
21whitelist /var/log/dnf.rpm.log 21allow /var/log/dnf.rpm.log
22whitelist /var/log/pacman.log 22allow /var/log/pacman.log
23 23
24apparmor 24apparmor
25caps.drop all 25caps.drop all
diff --git a/etc/profile-m-z/playonlinux.profile b/etc/profile-m-z/playonlinux.profile
index 8e98905b5..9c23841e2 100644
--- a/etc/profile-m-z/playonlinux.profile
+++ b/etc/profile-m-z/playonlinux.profile
@@ -7,10 +7,10 @@ include playonlinux.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.PlayOnLinux 10nodeny ${HOME}/.PlayOnLinux
11 11
12# nc is needed to run playonlinux 12# nc is needed to run playonlinux
13noblacklist ${PATH}/nc 13nodeny ${PATH}/nc
14 14
15# Allow perl (blacklisted by disable-interpreters.inc) 15# Allow perl (blacklisted by disable-interpreters.inc)
16include allow-perl.inc 16include allow-perl.inc
diff --git a/etc/profile-m-z/pluma.profile b/etc/profile-m-z/pluma.profile
index 10e12e5b1..ab7e0c64b 100644
--- a/etc/profile-m-z/pluma.profile
+++ b/etc/profile-m-z/pluma.profile
@@ -6,8 +6,8 @@ include pluma.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/enchant 9nodeny ${HOME}/.config/enchant
10noblacklist ${HOME}/.config/pluma 10nodeny ${HOME}/.config/pluma
11 11
12# Allows files commonly used by IDEs 12# Allows files commonly used by IDEs
13include allow-common-devel.inc 13include allow-common-devel.inc
diff --git a/etc/profile-m-z/plv.profile b/etc/profile-m-z/plv.profile
index 5201fd853..02cb83ef6 100644
--- a/etc/profile-m-z/plv.profile
+++ b/etc/profile-m-z/plv.profile
@@ -6,7 +6,7 @@ include plv.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/PacmanLogViewer 9nodeny ${HOME}/.config/PacmanLogViewer
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.config/PacmanLogViewer 19mkdir ${HOME}/.config/PacmanLogViewer
20whitelist ${HOME}/.config/PacmanLogViewer 20allow ${HOME}/.config/PacmanLogViewer
21whitelist /var/log/pacman.log 21allow /var/log/pacman.log
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
diff --git a/etc/profile-m-z/pngquant.profile b/etc/profile-m-z/pngquant.profile
index 8a181d5a8..2c4dda43e 100644
--- a/etc/profile-m-z/pngquant.profile
+++ b/etc/profile-m-z/pngquant.profile
@@ -7,9 +7,9 @@ include pngquant.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${PICTURES} 10nodeny ${PICTURES}
11 11
12blacklist ${RUNUSER}/wayland-* 12deny ${RUNUSER}/wayland-*
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/polari.profile b/etc/profile-m-z/polari.profile
index a3d4f9851..115ac36ab 100644
--- a/etc/profile-m-z/polari.profile
+++ b/etc/profile-m-z/polari.profile
@@ -21,12 +21,12 @@ mkdir ${HOME}/.local/share/Empathy
21mkdir ${HOME}/.local/share/TpLogger 21mkdir ${HOME}/.local/share/TpLogger
22mkdir ${HOME}/.local/share/telepathy 22mkdir ${HOME}/.local/share/telepathy
23mkdir ${HOME}/.purple 23mkdir ${HOME}/.purple
24whitelist ${HOME}/.cache/telepathy 24allow ${HOME}/.cache/telepathy
25whitelist ${HOME}/.config/telepathy-account-widgets 25allow ${HOME}/.config/telepathy-account-widgets
26whitelist ${HOME}/.local/share/Empathy 26allow ${HOME}/.local/share/Empathy
27whitelist ${HOME}/.local/share/TpLogger 27allow ${HOME}/.local/share/TpLogger
28whitelist ${HOME}/.local/share/telepathy 28allow ${HOME}/.local/share/telepathy
29whitelist ${HOME}/.purple 29allow ${HOME}/.purple
30include whitelist-common.inc 30include whitelist-common.inc
31include whitelist-runuser-common.inc 31include whitelist-runuser-common.inc
32 32
diff --git a/etc/profile-m-z/ppsspp.profile b/etc/profile-m-z/ppsspp.profile
index 1f73c1d89..10c59ea32 100644
--- a/etc/profile-m-z/ppsspp.profile
+++ b/etc/profile-m-z/ppsspp.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9# Note: you must whitelist your games folder in your ppsspp.local. 9# Note: you must whitelist your games folder in your ppsspp.local.
10 10
11noblacklist ${HOME}/.config/ppsspp 11nodeny ${HOME}/.config/ppsspp
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -20,8 +20,8 @@ include disable-write-mnt.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.config/ppsspp 22mkdir ${HOME}/.config/ppsspp
23whitelist ${HOME}/.config/ppsspp 23allow ${HOME}/.config/ppsspp
24whitelist /usr/share/ppsspp 24allow /usr/share/ppsspp
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/pragha.profile b/etc/profile-m-z/pragha.profile
index f138d785e..9b03bf632 100644
--- a/etc/profile-m-z/pragha.profile
+++ b/etc/profile-m-z/pragha.profile
@@ -6,8 +6,8 @@ include pragha.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/pragha 9nodeny ${HOME}/.config/pragha
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/profanity.profile b/etc/profile-m-z/profanity.profile
index 743458725..137b4cb20 100644
--- a/etc/profile-m-z/profanity.profile
+++ b/etc/profile-m-z/profanity.profile
@@ -7,8 +7,8 @@ include profanity.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.config/profanity 10nodeny ${HOME}/.config/profanity
11noblacklist ${HOME}/.local/share/profanity 11nodeny ${HOME}/.local/share/profanity
12 12
13# Allow Python 13# Allow Python
14include allow-python2.inc 14include allow-python2.inc
diff --git a/etc/profile-m-z/psi-plus.profile b/etc/profile-m-z/psi-plus.profile
index 5ac58b0ac..b0e28baf7 100644
--- a/etc/profile-m-z/psi-plus.profile
+++ b/etc/profile-m-z/psi-plus.profile
@@ -6,8 +6,8 @@ include psi-plus.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/psi+ 9nodeny ${HOME}/.config/psi+
10noblacklist ${HOME}/.local/share/psi+ 10nodeny ${HOME}/.local/share/psi+
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,10 +19,10 @@ include disable-programs.inc
19mkdir ${HOME}/.cache/psi+ 19mkdir ${HOME}/.cache/psi+
20mkdir ${HOME}/.config/psi+ 20mkdir ${HOME}/.config/psi+
21mkdir ${HOME}/.local/share/psi+ 21mkdir ${HOME}/.local/share/psi+
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist ${HOME}/.cache/psi+ 23allow ${HOME}/.cache/psi+
24whitelist ${HOME}/.config/psi+ 24allow ${HOME}/.config/psi+
25whitelist ${HOME}/.local/share/psi+ 25allow ${HOME}/.local/share/psi+
26include whitelist-common.inc 26include whitelist-common.inc
27 27
28caps.drop all 28caps.drop all
diff --git a/etc/profile-m-z/psi.profile b/etc/profile-m-z/psi.profile
index 7e0ef99fc..2588c3b75 100644
--- a/etc/profile-m-z/psi.profile
+++ b/etc/profile-m-z/psi.profile
@@ -8,11 +8,11 @@ include globals.local
8 8
9# Add the next line to your psi.local to enable GPG support. 9# Add the next line to your psi.local to enable GPG support.
10#noblacklist ${HOME}/.gnupg 10#noblacklist ${HOME}/.gnupg
11noblacklist ${HOME}/.cache/psi 11nodeny ${HOME}/.cache/psi
12noblacklist ${HOME}/.cache/Psi 12nodeny ${HOME}/.cache/Psi
13noblacklist ${HOME}/.config/psi 13nodeny ${HOME}/.config/psi
14noblacklist ${HOME}/.local/share/psi 14nodeny ${HOME}/.local/share/psi
15noblacklist ${HOME}/.local/share/Psi 15nodeny ${HOME}/.local/share/Psi
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
@@ -32,16 +32,16 @@ mkdir ${HOME}/.local/share/psi
32mkdir ${HOME}/.local/share/Psi 32mkdir ${HOME}/.local/share/Psi
33# Add the next line to your psi.local to enable GPG support. 33# Add the next line to your psi.local to enable GPG support.
34#whitelist ${HOME}/.gnupg 34#whitelist ${HOME}/.gnupg
35whitelist ${HOME}/.cache/psi 35allow ${HOME}/.cache/psi
36whitelist ${HOME}/.cache/Psi 36allow ${HOME}/.cache/Psi
37whitelist ${HOME}/.config/psi 37allow ${HOME}/.config/psi
38whitelist ${HOME}/.local/share/psi 38allow ${HOME}/.local/share/psi
39whitelist ${HOME}/.local/share/Psi 39allow ${HOME}/.local/share/Psi
40whitelist ${DOWNLOADS} 40allow ${DOWNLOADS}
41# Add the next lines to your psi.local to enable GPG support. 41# Add the next lines to your psi.local to enable GPG support.
42#whitelist /usr/share/gnupg 42#whitelist /usr/share/gnupg
43#whitelist /usr/share/gnupg2 43#whitelist /usr/share/gnupg2
44whitelist /usr/share/psi 44allow /usr/share/psi
45# Add the next lines to your psi.local to enable GPG support. 45# Add the next lines to your psi.local to enable GPG support.
46#whitelist ${RUNUSER}/gnupg 46#whitelist ${RUNUSER}/gnupg
47#whitelist ${RUNUSER}/keyring 47#whitelist ${RUNUSER}/keyring
diff --git a/etc/profile-m-z/pybitmessage.profile b/etc/profile-m-z/pybitmessage.profile
index 60ae37930..1f0e83ab6 100644
--- a/etc/profile-m-z/pybitmessage.profile
+++ b/etc/profile-m-z/pybitmessage.profile
@@ -5,9 +5,9 @@ include pybitmessage.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist /sbin 8nodeny /sbin
9noblacklist /usr/local/sbin 9nodeny /usr/local/sbin
10noblacklist /usr/sbin 10nodeny /usr/sbin
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-m-z/pycharm-community.profile b/etc/profile-m-z/pycharm-community.profile
index 00d7239ae..b6c08290e 100644
--- a/etc/profile-m-z/pycharm-community.profile
+++ b/etc/profile-m-z/pycharm-community.profile
@@ -5,7 +5,7 @@ include pycharm-community.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.PyCharmCE* 8nodeny ${HOME}/.PyCharmCE*
9 9
10# Allow java (blacklisted by disable-devel.inc) 10# Allow java (blacklisted by disable-devel.inc)
11include allow-java.inc 11include allow-java.inc
diff --git a/etc/profile-m-z/pycharm-professional.profile b/etc/profile-m-z/pycharm-professional.profile
index b754a18c9..fa0932cc0 100644
--- a/etc/profile-m-z/pycharm-professional.profile
+++ b/etc/profile-m-z/pycharm-professional.profile
@@ -6,7 +6,7 @@ include pyucharm-professional.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.PyCharm* 9nodeny ${HOME}/.PyCharm*
10 10
11# Redirect 11# Redirect
12include pycharm-community.profile 12include pycharm-community.profile
diff --git a/etc/profile-m-z/qbittorrent.profile b/etc/profile-m-z/qbittorrent.profile
index 506b738cc..fb8e622b0 100644
--- a/etc/profile-m-z/qbittorrent.profile
+++ b/etc/profile-m-z/qbittorrent.profile
@@ -6,10 +6,10 @@ include qbittorrent.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/qBittorrent 9nodeny ${HOME}/.cache/qBittorrent
10noblacklist ${HOME}/.config/qBittorrent 10nodeny ${HOME}/.config/qBittorrent
11noblacklist ${HOME}/.config/qBittorrentrc 11nodeny ${HOME}/.config/qBittorrentrc
12noblacklist ${HOME}/.local/share/data/qBittorrent 12nodeny ${HOME}/.local/share/data/qBittorrent
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python2.inc 15include allow-python2.inc
@@ -27,11 +27,11 @@ mkdir ${HOME}/.cache/qBittorrent
27mkdir ${HOME}/.config/qBittorrent 27mkdir ${HOME}/.config/qBittorrent
28mkfile ${HOME}/.config/qBittorrentrc 28mkfile ${HOME}/.config/qBittorrentrc
29mkdir ${HOME}/.local/share/data/qBittorrent 29mkdir ${HOME}/.local/share/data/qBittorrent
30whitelist ${DOWNLOADS} 30allow ${DOWNLOADS}
31whitelist ${HOME}/.cache/qBittorrent 31allow ${HOME}/.cache/qBittorrent
32whitelist ${HOME}/.config/qBittorrent 32allow ${HOME}/.config/qBittorrent
33whitelist ${HOME}/.config/qBittorrentrc 33allow ${HOME}/.config/qBittorrentrc
34whitelist ${HOME}/.local/share/data/qBittorrent 34allow ${HOME}/.local/share/data/qBittorrent
35include whitelist-common.inc 35include whitelist-common.inc
36include whitelist-var-common.inc 36include whitelist-var-common.inc
37 37
diff --git a/etc/profile-m-z/qcomicbook.profile b/etc/profile-m-z/qcomicbook.profile
new file mode 100644
index 000000000..7bcc4b065
--- /dev/null
+++ b/etc/profile-m-z/qcomicbook.profile
@@ -0,0 +1,68 @@
1# Firejail profile for qcomicbook
2# Description: A comic book and manga viewer in QT
3# This file is overwritten after every install/update
4# Persistent local customizations
5include qcomicbook.local
6# Persistent global definitions
7include globals.local
8
9nodeny ${HOME}/.cache/PawelStolowski
10nodeny ${HOME}/.config/PawelStolowski
11nodeny ${HOME}/.local/share/PawelStolowski
12nodeny ${DOCUMENTS}
13
14# Allow /bin/sh (blacklisted by disable-shell.inc)
15include allow-bin-sh.inc
16
17include disable-common.inc
18include disable-devel.inc
19include disable-exec.inc
20include disable-interpreters.inc
21include disable-passwdmgr.inc
22include disable-programs.inc
23include disable-shell.inc
24include disable-write-mnt.inc
25include disable-xdg.inc
26
27mkdir ${HOME}/.cache/PawelStolowski
28mkdir ${HOME}/.config/PawelStolowski
29mkdir ${HOME}/.local/share/PawelStolowski
30allow /usr/share/qcomicbook
31include whitelist-runuser-common.inc
32include whitelist-usr-share-common.inc
33include whitelist-var-common.inc
34
35apparmor
36caps.drop all
37machine-id
38net none
39nodvd
40nogroups
41noinput
42nonewprivs
43noroot
44nosound
45notv
46nou2f
47novideo
48protocol unix
49seccomp
50seccomp.block-secondary
51shell none
52tracelog
53
54private-bin 7z,7zr,qcomicbook,rar,sh,tar,unace,unrar,unzip
55private-cache
56private-dev
57private-etc alternatives,fonts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,machine-id,mime.types,pango,passwd,Trolltech.conf,X11,xdg
58private-tmp
59
60dbus-user none
61dbus-system none
62
63read-only ${HOME}
64read-write ${HOME}/.cache/PawelStolowski
65read-write ${HOME}/.config/PawelStolowski
66read-write ${HOME}/.local/share/PawelStolowski
67#to allow ${HOME}/.local/share/recently-used.xbel
68read-write ${HOME}/.local/share
diff --git a/etc/profile-m-z/qemu-launcher.profile b/etc/profile-m-z/qemu-launcher.profile
index ac60384fd..d527a2b82 100644
--- a/etc/profile-m-z/qemu-launcher.profile
+++ b/etc/profile-m-z/qemu-launcher.profile
@@ -5,7 +5,7 @@ include qemu-launcher.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.qemu-launcher 8nodeny ${HOME}/.qemu-launcher
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-passwdmgr.inc 11include disable-passwdmgr.inc
diff --git a/etc/profile-m-z/qgis.profile b/etc/profile-m-z/qgis.profile
index 2e97daea2..e99140c22 100644
--- a/etc/profile-m-z/qgis.profile
+++ b/etc/profile-m-z/qgis.profile
@@ -6,10 +6,10 @@ include qgis.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/QGIS 9nodeny ${HOME}/.config/QGIS
10noblacklist ${HOME}/.local/share/QGIS 10nodeny ${HOME}/.local/share/QGIS
11noblacklist ${HOME}/.qgis2 11nodeny ${HOME}/.qgis2
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python3.inc 15include allow-python3.inc
@@ -25,10 +25,10 @@ include disable-xdg.inc
25mkdir ${HOME}/.local/share/QGIS 25mkdir ${HOME}/.local/share/QGIS
26mkdir ${HOME}/.qgis2 26mkdir ${HOME}/.qgis2
27mkdir ${HOME}/.config/QGIS 27mkdir ${HOME}/.config/QGIS
28whitelist ${HOME}/.local/share/QGIS 28allow ${HOME}/.local/share/QGIS
29whitelist ${HOME}/.qgis2 29allow ${HOME}/.qgis2
30whitelist ${HOME}/.config/QGIS 30allow ${HOME}/.config/QGIS
31whitelist ${DOCUMENTS} 31allow ${DOCUMENTS}
32include whitelist-common.inc 32include whitelist-common.inc
33include whitelist-var-common.inc 33include whitelist-var-common.inc
34 34
diff --git a/etc/profile-m-z/qlipper.profile b/etc/profile-m-z/qlipper.profile
index 6e94d5845..75dc58ae4 100644
--- a/etc/profile-m-z/qlipper.profile
+++ b/etc/profile-m-z/qlipper.profile
@@ -6,7 +6,7 @@ include qlipper.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Qlipper 9nodeny ${HOME}/.config/Qlipper
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/qmmp.profile b/etc/profile-m-z/qmmp.profile
index c3d982c17..d37fce997 100644
--- a/etc/profile-m-z/qmmp.profile
+++ b/etc/profile-m-z/qmmp.profile
@@ -6,8 +6,8 @@ include qmmp.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.qmmp 9nodeny ${HOME}/.qmmp
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/qnapi.profile b/etc/profile-m-z/qnapi.profile
index ca11df5be..f12340052 100644
--- a/etc/profile-m-z/qnapi.profile
+++ b/etc/profile-m-z/qnapi.profile
@@ -6,7 +6,7 @@ include qnapi.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/qnapi.ini 9nodeny ${HOME}/.config/qnapi.ini
10 10
11ignore noexec /tmp 11ignore noexec /tmp
12 12
@@ -20,8 +20,8 @@ include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkfile ${HOME}/.config/qnapi.ini 22mkfile ${HOME}/.config/qnapi.ini
23whitelist ${HOME}/.config/qnapi.ini 23allow ${HOME}/.config/qnapi.ini
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
diff --git a/etc/profile-m-z/qpdfview.profile b/etc/profile-m-z/qpdfview.profile
index be690ffa4..62fae324c 100644
--- a/etc/profile-m-z/qpdfview.profile
+++ b/etc/profile-m-z/qpdfview.profile
@@ -6,9 +6,9 @@ include qpdfview.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/qpdfview 9nodeny ${HOME}/.config/qpdfview
10noblacklist ${HOME}/.local/share/qpdfview 10nodeny ${HOME}/.local/share/qpdfview
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/qrencode.profile b/etc/profile-m-z/qrencode.profile
index 6cbf8519f..5f0aec804 100644
--- a/etc/profile-m-z/qrencode.profile
+++ b/etc/profile-m-z/qrencode.profile
@@ -7,7 +7,7 @@ include qrencode.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/qtox.profile b/etc/profile-m-z/qtox.profile
index 8ffe24d11..1ad46814e 100644
--- a/etc/profile-m-z/qtox.profile
+++ b/etc/profile-m-z/qtox.profile
@@ -6,8 +6,8 @@ include qtox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Tox 9nodeny ${HOME}/.cache/Tox
10noblacklist ${HOME}/.config/tox 10nodeny ${HOME}/.config/tox
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-shell.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21mkdir ${HOME}/.config/tox 21mkdir ${HOME}/.config/tox
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist ${HOME}/.config/tox 23allow ${HOME}/.config/tox
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-m-z/quadrapassel.profile b/etc/profile-m-z/quadrapassel.profile
index 91e0d9d0d..aee24925c 100644
--- a/etc/profile-m-z/quadrapassel.profile
+++ b/etc/profile-m-z/quadrapassel.profile
@@ -6,11 +6,11 @@ include quadrapassel.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/quadrapassel 9nodeny ${HOME}/.local/share/quadrapassel
10 10
11mkdir ${HOME}/.local/share/quadrapassel 11mkdir ${HOME}/.local/share/quadrapassel
12whitelist ${HOME}/.local/share/quadrapassel 12allow ${HOME}/.local/share/quadrapassel
13whitelist /usr/share/quadrapassel 13allow /usr/share/quadrapassel
14 14
15private-bin quadrapassel 15private-bin quadrapassel
16 16
diff --git a/etc/profile-m-z/quaternion.profile b/etc/profile-m-z/quaternion.profile
index 1d146aa39..a319e1e12 100644
--- a/etc/profile-m-z/quaternion.profile
+++ b/etc/profile-m-z/quaternion.profile
@@ -6,8 +6,8 @@ include quaternion.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Quotient/quaternion 9nodeny ${HOME}/.cache/Quotient/quaternion
10noblacklist ${HOME}/.config/Quotient 10nodeny ${HOME}/.config/Quotient
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,10 +20,10 @@ include disable-xdg.inc
20 20
21mkdir ${HOME}/.cache/Quotient/quaternion 21mkdir ${HOME}/.cache/Quotient/quaternion
22mkdir ${HOME}/.config/Quotient 22mkdir ${HOME}/.config/Quotient
23whitelist ${HOME}/.cache/Quotient/quaternion 23allow ${HOME}/.cache/Quotient/quaternion
24whitelist ${HOME}/.config/Quotient 24allow ${HOME}/.config/Quotient
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26whitelist /usr/share/Quotient/quaternion 26allow /usr/share/Quotient/quaternion
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/quiterss.profile b/etc/profile-m-z/quiterss.profile
index 9490089b2..2693f2ed5 100644
--- a/etc/profile-m-z/quiterss.profile
+++ b/etc/profile-m-z/quiterss.profile
@@ -6,10 +6,10 @@ include quiterss.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/QuiteRss 9nodeny ${HOME}/.cache/QuiteRss
10noblacklist ${HOME}/.config/QuiteRss 10nodeny ${HOME}/.config/QuiteRss
11noblacklist ${HOME}/.config/QuiteRssrc 11nodeny ${HOME}/.config/QuiteRssrc
12noblacklist ${HOME}/.local/share/QuiteRss 12nodeny ${HOME}/.local/share/QuiteRss
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -25,12 +25,12 @@ mkdir ${HOME}/.local/share/data
25mkdir ${HOME}/.local/share/data/QuiteRss 25mkdir ${HOME}/.local/share/data/QuiteRss
26mkdir ${HOME}/.local/share/QuiteRss 26mkdir ${HOME}/.local/share/QuiteRss
27mkfile ${HOME}/quiterssfeeds.opml 27mkfile ${HOME}/quiterssfeeds.opml
28whitelist ${HOME}/.cache/QuiteRss 28allow ${HOME}/.cache/QuiteRss
29whitelist ${HOME}/.config/QuiteRss 29allow ${HOME}/.config/QuiteRss
30whitelist ${HOME}/.config/QuiteRssrc 30allow ${HOME}/.config/QuiteRssrc
31whitelist ${HOME}/.local/share/data/QuiteRss 31allow ${HOME}/.local/share/data/QuiteRss
32whitelist ${HOME}/.local/share/QuiteRss 32allow ${HOME}/.local/share/QuiteRss
33whitelist ${HOME}/quiterssfeeds.opml 33allow ${HOME}/quiterssfeeds.opml
34include whitelist-common.inc 34include whitelist-common.inc
35 35
36caps.drop all 36caps.drop all
diff --git a/etc/profile-m-z/quodlibet.profile b/etc/profile-m-z/quodlibet.profile
index 92b02b2bf..52c120c08 100644
--- a/etc/profile-m-z/quodlibet.profile
+++ b/etc/profile-m-z/quodlibet.profile
@@ -6,10 +6,10 @@ include quodlibet.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/quodlibet 9nodeny ${HOME}/.cache/quodlibet
10noblacklist ${HOME}/.config/quodlibet 10nodeny ${HOME}/.config/quodlibet
11noblacklist ${HOME}/.quodlibet 11nodeny ${HOME}/.quodlibet
12noblacklist ${MUSIC} 12nodeny ${MUSIC}
13 13
14include allow-bin-sh.inc 14include allow-bin-sh.inc
15 15
@@ -30,11 +30,11 @@ mkdir ${HOME}/.cache/quodlibet
30mkdir ${HOME}/.config/quodlibet 30mkdir ${HOME}/.config/quodlibet
31mkdir ${HOME}/.quodlibet 31mkdir ${HOME}/.quodlibet
32 32
33whitelist ${HOME}/.cache/quodlibet 33allow ${HOME}/.cache/quodlibet
34whitelist ${HOME}/.config/quodlibet 34allow ${HOME}/.config/quodlibet
35whitelist ${HOME}/.quodlibet 35allow ${HOME}/.quodlibet
36whitelist ${DOWNLOADS} 36allow ${DOWNLOADS}
37whitelist ${MUSIC} 37allow ${MUSIC}
38include whitelist-common.inc 38include whitelist-common.inc
39include whitelist-runuser-common.inc 39include whitelist-runuser-common.inc
40include whitelist-usr-share-common.inc 40include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/qupzilla.profile b/etc/profile-m-z/qupzilla.profile
index 7aa71c848..9bc91808b 100644
--- a/etc/profile-m-z/qupzilla.profile
+++ b/etc/profile-m-z/qupzilla.profile
@@ -6,8 +6,8 @@ include qupzilla.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.cache/qupzilla 9nodeny ${HOME}/.cache/qupzilla
10noblacklist ${HOME}/.config/qupzilla 10nodeny ${HOME}/.config/qupzilla
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-programs.inc
18 18
19mkdir ${HOME}/.cache/qupzilla 19mkdir ${HOME}/.cache/qupzilla
20mkdir ${HOME}/.config/qupzilla 20mkdir ${HOME}/.config/qupzilla
21whitelist ${HOME}/.cache/qupzilla 21allow ${HOME}/.cache/qupzilla
22whitelist ${HOME}/.config/qupzilla 22allow ${HOME}/.config/qupzilla
23 23
24# Redirect 24# Redirect
25include falkon.profile 25include falkon.profile
diff --git a/etc/profile-m-z/qutebrowser.profile b/etc/profile-m-z/qutebrowser.profile
index fc910b589..a342e2acd 100644
--- a/etc/profile-m-z/qutebrowser.profile
+++ b/etc/profile-m-z/qutebrowser.profile
@@ -6,9 +6,9 @@ include qutebrowser.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/qutebrowser 9nodeny ${HOME}/.cache/qutebrowser
10noblacklist ${HOME}/.config/qutebrowser 10nodeny ${HOME}/.config/qutebrowser
11noblacklist ${HOME}/.local/share/qutebrowser 11nodeny ${HOME}/.local/share/qutebrowser
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
@@ -22,10 +22,10 @@ include disable-programs.inc
22mkdir ${HOME}/.cache/qutebrowser 22mkdir ${HOME}/.cache/qutebrowser
23mkdir ${HOME}/.config/qutebrowser 23mkdir ${HOME}/.config/qutebrowser
24mkdir ${HOME}/.local/share/qutebrowser 24mkdir ${HOME}/.local/share/qutebrowser
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26whitelist ${HOME}/.cache/qutebrowser 26allow ${HOME}/.cache/qutebrowser
27whitelist ${HOME}/.config/qutebrowser 27allow ${HOME}/.config/qutebrowser
28whitelist ${HOME}/.local/share/qutebrowser 28allow ${HOME}/.local/share/qutebrowser
29include whitelist-common.inc 29include whitelist-common.inc
30 30
31caps.drop all 31caps.drop all
diff --git a/etc/profile-m-z/rambox.profile b/etc/profile-m-z/rambox.profile
index ffa2022ee..b1059cee8 100644
--- a/etc/profile-m-z/rambox.profile
+++ b/etc/profile-m-z/rambox.profile
@@ -6,9 +6,9 @@ include rambox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Rambox 9nodeny ${HOME}/.config/Rambox
10noblacklist ${HOME}/.pki 10nodeny ${HOME}/.pki
11noblacklist ${HOME}/.local/share/pki 11nodeny ${HOME}/.local/share/pki
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -18,10 +18,10 @@ include disable-programs.inc
18mkdir ${HOME}/.config/Rambox 18mkdir ${HOME}/.config/Rambox
19mkdir ${HOME}/.pki 19mkdir ${HOME}/.pki
20mkdir ${HOME}/.local/share/pki 20mkdir ${HOME}/.local/share/pki
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22whitelist ${HOME}/.config/Rambox 22allow ${HOME}/.config/Rambox
23whitelist ${HOME}/.pki 23allow ${HOME}/.pki
24whitelist ${HOME}/.local/share/pki 24allow ${HOME}/.local/share/pki
25include whitelist-common.inc 25include whitelist-common.inc
26 26
27caps.drop all 27caps.drop all
diff --git a/etc/profile-m-z/redeclipse.profile b/etc/profile-m-z/redeclipse.profile
index 9bc196a16..3b56f651f 100644
--- a/etc/profile-m-z/redeclipse.profile
+++ b/etc/profile-m-z/redeclipse.profile
@@ -6,7 +6,7 @@ include redeclipse.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.redeclipse 9nodeny ${HOME}/.redeclipse
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.redeclipse 19mkdir ${HOME}/.redeclipse
20whitelist ${HOME}/.redeclipse 20allow ${HOME}/.redeclipse
21whitelist /usr/share/redeclipse 21allow /usr/share/redeclipse
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-runuser-common.inc 23include whitelist-runuser-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/redshift.profile b/etc/profile-m-z/redshift.profile
index f87c5f67c..3035e1d74 100644
--- a/etc/profile-m-z/redshift.profile
+++ b/etc/profile-m-z/redshift.profile
@@ -7,8 +7,8 @@ include redshift.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.config/redshift 10nodeny ${HOME}/.config/redshift
11noblacklist ${HOME}/.config/redshift.conf 11nodeny ${HOME}/.config/redshift.conf
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-programs.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21mkdir ${HOME}/.config/redshift 21mkdir ${HOME}/.config/redshift
22whitelist ${HOME}/.config/redshift 22allow ${HOME}/.config/redshift
23whitelist ${HOME}/.config/redshift.conf 23allow ${HOME}/.config/redshift.conf
24include whitelist-var-common.inc 24include whitelist-var-common.inc
25 25
26apparmor 26apparmor
diff --git a/etc/profile-m-z/regextester.profile b/etc/profile-m-z/regextester.profile
index f5131c5d0..82feafab9 100644
--- a/etc/profile-m-z/regextester.profile
+++ b/etc/profile-m-z/regextester.profile
@@ -15,7 +15,7 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/com.github.artemanufrij.regextester 18allow /usr/share/com.github.artemanufrij.regextester
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
diff --git a/etc/profile-m-z/remmina.profile b/etc/profile-m-z/remmina.profile
index aca22f187..3f385f602 100644
--- a/etc/profile-m-z/remmina.profile
+++ b/etc/profile-m-z/remmina.profile
@@ -6,9 +6,9 @@ include remmina.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.remmina 9nodeny ${HOME}/.remmina
10noblacklist ${HOME}/.config/remmina 10nodeny ${HOME}/.config/remmina
11noblacklist ${HOME}/.local/share/remmina 11nodeny ${HOME}/.local/share/remmina
12 12
13# Allow ssh (blacklisted by disable-common.inc) 13# Allow ssh (blacklisted by disable-common.inc)
14include allow-ssh.inc 14include allow-ssh.inc
diff --git a/etc/profile-m-z/rhythmbox.profile b/etc/profile-m-z/rhythmbox.profile
index 970e8ffba..c532d3dc1 100644
--- a/etc/profile-m-z/rhythmbox.profile
+++ b/etc/profile-m-z/rhythmbox.profile
@@ -6,9 +6,9 @@ include rhythmbox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10noblacklist ${HOME}/.cache/rhythmbox 10nodeny ${HOME}/.cache/rhythmbox
11noblacklist ${HOME}/.local/share/rhythmbox 11nodeny ${HOME}/.local/share/rhythmbox
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
@@ -26,10 +26,10 @@ include disable-programs.inc
26include disable-shell.inc 26include disable-shell.inc
27include disable-xdg.inc 27include disable-xdg.inc
28 28
29whitelist /usr/share/rhythmbox 29allow /usr/share/rhythmbox
30whitelist /usr/share/lua 30allow /usr/share/lua
31whitelist /usr/share/libquvi-scripts 31allow /usr/share/libquvi-scripts
32whitelist /usr/share/tracker 32allow /usr/share/tracker
33include whitelist-runuser-common.inc 33include whitelist-runuser-common.inc
34include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc 35include whitelist-var-common.inc
diff --git a/etc/profile-m-z/ricochet.profile b/etc/profile-m-z/ricochet.profile
index b664a2be3..c3ee57ef3 100644
--- a/etc/profile-m-z/ricochet.profile
+++ b/etc/profile-m-z/ricochet.profile
@@ -5,7 +5,7 @@ include ricochet.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.local/share/Ricochet 8nodeny ${HOME}/.local/share/Ricochet
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
@@ -16,8 +16,8 @@ include disable-programs.inc
16include disable-shell.inc 16include disable-shell.inc
17 17
18mkdir ${HOME}/.local/share/Ricochet 18mkdir ${HOME}/.local/share/Ricochet
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20whitelist ${HOME}/.local/share/Ricochet 20allow ${HOME}/.local/share/Ricochet
21include whitelist-common.inc 21include whitelist-common.inc
22 22
23caps.drop all 23caps.drop all
diff --git a/etc/profile-m-z/riot-web.profile b/etc/profile-m-z/riot-web.profile
index 687c943b0..782396a50 100644
--- a/etc/profile-m-z/riot-web.profile
+++ b/etc/profile-m-z/riot-web.profile
@@ -8,11 +8,11 @@ include globals.local
8 8
9ignore noexec /tmp 9ignore noexec /tmp
10 10
11noblacklist ${HOME}/.config/Riot 11nodeny ${HOME}/.config/Riot
12 12
13mkdir ${HOME}/.config/Riot 13mkdir ${HOME}/.config/Riot
14whitelist ${HOME}/.config/Riot 14allow ${HOME}/.config/Riot
15whitelist /usr/share/webapps/element 15allow /usr/share/webapps/element
16 16
17# Redirect 17# Redirect
18include electron.profile 18include electron.profile
diff --git a/etc/profile-m-z/ripperx.profile b/etc/profile-m-z/ripperx.profile
index be815e714..c97ac8090 100644
--- a/etc/profile-m-z/ripperx.profile
+++ b/etc/profile-m-z/ripperx.profile
@@ -6,8 +6,8 @@ include ripperx.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.ripperXrc 9nodeny ${HOME}/.ripperXrc
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/ristretto.profile b/etc/profile-m-z/ristretto.profile
index 5572cab5a..109d2f8f1 100644
--- a/etc/profile-m-z/ristretto.profile
+++ b/etc/profile-m-z/ristretto.profile
@@ -6,9 +6,9 @@ include ristretto.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/ristretto 9nodeny ${HOME}/.config/ristretto
10noblacklist ${HOME}/.Steam 10nodeny ${HOME}/.Steam
11noblacklist ${HOME}/.steam 11nodeny ${HOME}/.steam
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/rocketchat.profile b/etc/profile-m-z/rocketchat.profile
index 8d3607c75..1a76c4211 100644
--- a/etc/profile-m-z/rocketchat.profile
+++ b/etc/profile-m-z/rocketchat.profile
@@ -21,10 +21,10 @@ ignore private-cache
21ignore private-dev 21ignore private-dev
22ignore private-tmp 22ignore private-tmp
23 23
24noblacklist ${HOME}/.config/Rocket.Chat 24nodeny ${HOME}/.config/Rocket.Chat
25 25
26mkdir ${HOME}/.config/Rocket.Chat 26mkdir ${HOME}/.config/Rocket.Chat
27whitelist ${HOME}/.config/Rocket.Chat 27allow ${HOME}/.config/Rocket.Chat
28 28
29# Redirect 29# Redirect
30include electron.profile 30include electron.profile
diff --git a/etc/profile-m-z/rsync-download_only.profile b/etc/profile-m-z/rsync-download_only.profile
index 690b44bb1..4807b7d36 100644
--- a/etc/profile-m-z/rsync-download_only.profile
+++ b/etc/profile-m-z/rsync-download_only.profile
@@ -11,8 +11,8 @@ include globals.local
11# not as a daemon (rsync --daemon) nor to create backups. 11# not as a daemon (rsync --daemon) nor to create backups.
12# Usage: firejail --profile=rsync-download_only rsync 12# Usage: firejail --profile=rsync-download_only rsync
13 13
14blacklist /tmp/.X11-unix 14deny /tmp/.X11-unix
15blacklist ${RUNUSER} 15deny ${RUNUSER}
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
diff --git a/etc/profile-m-z/rtin.profile b/etc/profile-m-z/rtin.profile
new file mode 100644
index 000000000..cd84ce05e
--- /dev/null
+++ b/etc/profile-m-z/rtin.profile
@@ -0,0 +1,8 @@
1# Firejail profile for rtin
2# Description: ncurses-based Usenet newsreader
3# symlink to tin, same as `tin -r`
4# This file is overwritten after every install/update
5# Persistent local customizations
6include rtin.local
7
8include tin.profile
diff --git a/etc/profile-m-z/rtv-addons.profile b/etc/profile-m-z/rtv-addons.profile
index c9da0b628..6b7d6b155 100644
--- a/etc/profile-m-z/rtv-addons.profile
+++ b/etc/profile-m-z/rtv-addons.profile
@@ -11,13 +11,18 @@ ignore nosound
11ignore private-bin 11ignore private-bin
12ignore dbus-user none 12ignore dbus-user none
13 13
14noblacklist ${HOME}/.config/mpv 14nodeny ${HOME}/.config/mpv
15noblacklist ${HOME}/.mailcap 15nodeny ${HOME}/.mailcap
16noblacklist ${HOME}/.netrc 16nodeny ${HOME}/.netrc
17noblacklist ${HOME}/.w3m 17nodeny ${HOME}/.w3m
18 18
19whitelist ${HOME}/.cache/youtube-dl/youtube-sigfuncs 19allow ${HOME}/.cache/youtube-dl/youtube-sigfuncs
20whitelist ${HOME}/.config/mpv 20allow ${HOME}/.config/mpv
21whitelist ${HOME}/.mailcap 21allow ${HOME}/.mailcap
22whitelist ${HOME}/.netrc 22allow ${HOME}/.netrc
23whitelist ${HOME}/.w3m 23allow ${HOME}/.w3m
24
25#private-bin w3m,mpv,youtube-dl
26
27# tells rtv, which browser to use
28#env RTV_BROWSER=w3m
diff --git a/etc/profile-m-z/rtv.profile b/etc/profile-m-z/rtv.profile
index f0b8d31e9..074050792 100644
--- a/etc/profile-m-z/rtv.profile
+++ b/etc/profile-m-z/rtv.profile
@@ -6,11 +6,14 @@ include rtv.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist /tmp/.X11-unix 9deny /tmp/.X11-unix
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12noblacklist ${HOME}/.config/rtv 12nodeny ${HOME}/.config/rtv
13noblacklist ${HOME}/.local/share/rtv 13nodeny ${HOME}/.local/share/rtv
14
15# Allow /bin/sh (blacklisted by disable-shell.inc)
16include allow-bin-sh.inc
14 17
15# Allow python (blacklisted by disable-interpreters.inc) 18# Allow python (blacklisted by disable-interpreters.inc)
16include allow-python2.inc 19include allow-python2.inc
@@ -30,8 +33,8 @@ include disable-xdg.inc
30 33
31mkdir ${HOME}/.config/rtv 34mkdir ${HOME}/.config/rtv
32mkdir ${HOME}/.local/share/rtv 35mkdir ${HOME}/.local/share/rtv
33whitelist ${HOME}/.config/rtv 36allow ${HOME}/.config/rtv
34whitelist ${HOME}/.local/share/rtv 37allow ${HOME}/.local/share/rtv
35include whitelist-var-common.inc 38include whitelist-var-common.inc
36 39
37apparmor 40apparmor
@@ -54,10 +57,10 @@ shell none
54tracelog 57tracelog
55 58
56disable-mnt 59disable-mnt
57private-bin python*,rtv,sh,xdg-settings 60private-bin less,python*,rtv,sh,xdg-settings
58private-cache 61private-cache
59private-dev 62private-dev
60private-etc alternatives,ca-certificates,crypto-policies,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,mime.types,nsswitch.conf,pki,protocols,resolv.conf,rpc,services,ssl,terminfo,xdg 63private-etc alternatives,ca-certificates,crypto-policies,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,localtime,mailcap,mime.types,nsswitch.conf,pki,protocols,resolv.conf,rpc,services,ssl,terminfo,xdg
61 64
62dbus-user none 65dbus-user none
63dbus-system none 66dbus-system none
diff --git a/etc/profile-m-z/sayonara.profile b/etc/profile-m-z/sayonara.profile
index de79913cc..963f5da02 100644
--- a/etc/profile-m-z/sayonara.profile
+++ b/etc/profile-m-z/sayonara.profile
@@ -5,8 +5,8 @@ include sayonara.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.Sayonara 8nodeny ${HOME}/.Sayonara
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/scallion.profile b/etc/profile-m-z/scallion.profile
index eb8468c3b..26550b5e0 100644
--- a/etc/profile-m-z/scallion.profile
+++ b/etc/profile-m-z/scallion.profile
@@ -6,10 +6,10 @@ include scallion.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PATH}/llvm* 9nodeny ${PATH}/llvm*
10noblacklist ${PATH}/openssl 10nodeny ${PATH}/openssl
11noblacklist ${PATH}/openssl-1.0 11nodeny ${PATH}/openssl-1.0
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-exec.inc 15include disable-exec.inc
diff --git a/etc/profile-m-z/scorched3d.profile b/etc/profile-m-z/scorched3d.profile
index aac3e721f..921efb49e 100644
--- a/etc/profile-m-z/scorched3d.profile
+++ b/etc/profile-m-z/scorched3d.profile
@@ -6,7 +6,7 @@ include scorched3d.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.scorched3d 9nodeny ${HOME}/.scorched3d
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,9 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.scorched3d 19mkdir ${HOME}/.scorched3d
20whitelist ${HOME}/.scorched3d 20allow ${HOME}/.scorched3d
21whitelist /usr/share/scorched3d 21allow /usr/share/scorched3d
22allow /usr/share/games/scorched3d
22include whitelist-common.inc 23include whitelist-common.inc
23include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
24include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/scorchwentbonkers.profile b/etc/profile-m-z/scorchwentbonkers.profile
index 2cb1df6b5..54a6c3a01 100644
--- a/etc/profile-m-z/scorchwentbonkers.profile
+++ b/etc/profile-m-z/scorchwentbonkers.profile
@@ -6,7 +6,7 @@ include scorchwentbonkers.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.swb.ini 9nodeny ${HOME}/.swb.ini
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.swb.ini 20mkdir ${HOME}/.swb.ini
21whitelist ${HOME}/.swb.ini 21allow ${HOME}/.swb.ini
22whitelist /usr/share/scorchwentbonkers 22allow /usr/share/scorchwentbonkers
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/scribus.profile b/etc/profile-m-z/scribus.profile
index 1fdeaa145..6519f8e87 100644
--- a/etc/profile-m-z/scribus.profile
+++ b/etc/profile-m-z/scribus.profile
@@ -7,24 +7,24 @@ include scribus.local
7include globals.local 7include globals.local
8 8
9# Support for PDF readers comes with Scribus 1.5 and higher 9# Support for PDF readers comes with Scribus 1.5 and higher
10noblacklist ${HOME}/.cache/okular 10nodeny ${HOME}/.cache/okular
11noblacklist ${HOME}/.config/GIMP 11nodeny ${HOME}/.config/GIMP
12noblacklist ${HOME}/.config/okularpartrc 12nodeny ${HOME}/.config/okularpartrc
13noblacklist ${HOME}/.config/okularrc 13nodeny ${HOME}/.config/okularrc
14noblacklist ${HOME}/.config/scribus 14nodeny ${HOME}/.config/scribus
15noblacklist ${HOME}/.config/scribusrc 15nodeny ${HOME}/.config/scribusrc
16noblacklist ${HOME}/.gimp* 16nodeny ${HOME}/.gimp*
17noblacklist ${HOME}/.kde/share/apps/okular 17nodeny ${HOME}/.kde/share/apps/okular
18noblacklist ${HOME}/.kde/share/config/okularpartrc 18nodeny ${HOME}/.kde/share/config/okularpartrc
19noblacklist ${HOME}/.kde/share/config/okularrc 19nodeny ${HOME}/.kde/share/config/okularrc
20noblacklist ${HOME}/.kde4/share/apps/okular 20nodeny ${HOME}/.kde4/share/apps/okular
21noblacklist ${HOME}/.kde4/share/config/okularpartrc 21nodeny ${HOME}/.kde4/share/config/okularpartrc
22noblacklist ${HOME}/.kde4/share/config/okularrc 22nodeny ${HOME}/.kde4/share/config/okularrc
23noblacklist ${HOME}/.local/share/okular 23nodeny ${HOME}/.local/share/okular
24noblacklist ${HOME}/.local/share/scribus 24nodeny ${HOME}/.local/share/scribus
25noblacklist ${HOME}/.scribus 25nodeny ${HOME}/.scribus
26noblacklist ${DOCUMENTS} 26nodeny ${DOCUMENTS}
27noblacklist ${PICTURES} 27nodeny ${PICTURES}
28 28
29# Allow python (blacklisted by disable-interpreters.inc) 29# Allow python (blacklisted by disable-interpreters.inc)
30include allow-python2.inc 30include allow-python2.inc
diff --git a/etc/profile-m-z/seahorse-adventures.profile b/etc/profile-m-z/seahorse-adventures.profile
index 131dcbb68..95cedac3f 100644
--- a/etc/profile-m-z/seahorse-adventures.profile
+++ b/etc/profile-m-z/seahorse-adventures.profile
@@ -6,6 +6,9 @@ include seahorse-adventures.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9# Allow /bin/sh (blacklisted by disable-shell.inc)
10include allow-bin-sh.inc
11
9# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
10include allow-python2.inc 13include allow-python2.inc
11include allow-python3.inc 14include allow-python3.inc
@@ -19,7 +22,8 @@ include disable-programs.inc
19include disable-shell.inc 22include disable-shell.inc
20include disable-xdg.inc 23include disable-xdg.inc
21 24
22whitelist /usr/share/seahorse-adventures 25allow /usr/share/seahorse-adventures
26allow /usr/share/games/seahorse-adventures
23include whitelist-common.inc 27include whitelist-common.inc
24include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 29include whitelist-var-common.inc
@@ -42,7 +46,7 @@ tracelog
42 46
43disable-mnt 47disable-mnt
44private 48private
45private-bin python*,seahorse-adventures 49private-bin bash,dash,python*,seahorse-adventures,sh
46private-cache 50private-cache
47private-dev 51private-dev
48private-etc machine-id 52private-etc machine-id
diff --git a/etc/profile-m-z/seahorse.profile b/etc/profile-m-z/seahorse.profile
index d3d8e453f..66605173b 100644
--- a/etc/profile-m-z/seahorse.profile
+++ b/etc/profile-m-z/seahorse.profile
@@ -6,9 +6,9 @@ include seahorse.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist /tmp/.X11-unix 9deny /tmp/.X11-unix
10 10
11noblacklist ${HOME}/.gnupg 11nodeny ${HOME}/.gnupg
12 12
13# Allow ssh (blacklisted by disable-common.inc) 13# Allow ssh (blacklisted by disable-common.inc)
14include allow-ssh.inc 14include allow-ssh.inc
@@ -27,13 +27,13 @@ include disable-xdg.inc
27#mkdir ${HOME}/.ssh 27#mkdir ${HOME}/.ssh
28#whitelist ${HOME}/.gnupg 28#whitelist ${HOME}/.gnupg
29#whitelist ${HOME}/.ssh 29#whitelist ${HOME}/.ssh
30whitelist /tmp/ssh-* 30allow /tmp/ssh-*
31whitelist /usr/share/gnupg 31allow /usr/share/gnupg
32whitelist /usr/share/gnupg2 32allow /usr/share/gnupg2
33whitelist /usr/share/seahorse 33allow /usr/share/seahorse
34whitelist /usr/share/seahorse-nautilus 34allow /usr/share/seahorse-nautilus
35whitelist ${RUNUSER}/gnupg 35allow ${RUNUSER}/gnupg
36whitelist ${RUNUSER}/keyring 36allow ${RUNUSER}/keyring
37#include whitelist-common.inc 37#include whitelist-common.inc
38include whitelist-runuser-common.inc 38include whitelist-runuser-common.inc
39include whitelist-usr-share-common.inc 39include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/seamonkey.profile b/etc/profile-m-z/seamonkey.profile
index 807effbeb..c9867719a 100644
--- a/etc/profile-m-z/seamonkey.profile
+++ b/etc/profile-m-z/seamonkey.profile
@@ -6,10 +6,10 @@ include seamonkey.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/mozilla 9nodeny ${HOME}/.cache/mozilla
10noblacklist ${HOME}/.mozilla 10nodeny ${HOME}/.mozilla
11noblacklist ${HOME}/.pki 11nodeny ${HOME}/.pki
12noblacklist ${HOME}/.local/share/pki 12nodeny ${HOME}/.local/share/pki
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -20,25 +20,25 @@ mkdir ${HOME}/.cache/mozilla
20mkdir ${HOME}/.mozilla 20mkdir ${HOME}/.mozilla
21mkdir ${HOME}/.pki 21mkdir ${HOME}/.pki
22mkdir ${HOME}/.local/share/pki 22mkdir ${HOME}/.local/share/pki
23whitelist ${DOWNLOADS} 23allow ${DOWNLOADS}
24whitelist ${HOME}/.cache/gnome-mplayer/plugin 24allow ${HOME}/.cache/gnome-mplayer/plugin
25whitelist ${HOME}/.cache/mozilla 25allow ${HOME}/.cache/mozilla
26whitelist ${HOME}/.config/gnome-mplayer 26allow ${HOME}/.config/gnome-mplayer
27whitelist ${HOME}/.config/pipelight-silverlight5.1 27allow ${HOME}/.config/pipelight-silverlight5.1
28whitelist ${HOME}/.config/pipelight-widevine 28allow ${HOME}/.config/pipelight-widevine
29whitelist ${HOME}/.keysnail.js 29allow ${HOME}/.keysnail.js
30whitelist ${HOME}/.lastpass 30allow ${HOME}/.lastpass
31whitelist ${HOME}/.mozilla 31allow ${HOME}/.mozilla
32whitelist ${HOME}/.pentadactyl 32allow ${HOME}/.pentadactyl
33whitelist ${HOME}/.pentadactylrc 33allow ${HOME}/.pentadactylrc
34whitelist ${HOME}/.pki 34allow ${HOME}/.pki
35whitelist ${HOME}/.local/share/pki 35allow ${HOME}/.local/share/pki
36whitelist ${HOME}/.vimperator 36allow ${HOME}/.vimperator
37whitelist ${HOME}/.vimperatorrc 37allow ${HOME}/.vimperatorrc
38whitelist ${HOME}/.wine-pipelight 38allow ${HOME}/.wine-pipelight
39whitelist ${HOME}/.wine-pipelight64 39allow ${HOME}/.wine-pipelight64
40whitelist ${HOME}/.zotero 40allow ${HOME}/.zotero
41whitelist ${HOME}/dwhelper 41allow ${HOME}/dwhelper
42include whitelist-common.inc 42include whitelist-common.inc
43 43
44caps.drop all 44caps.drop all
diff --git a/etc/profile-m-z/server.profile b/etc/profile-m-z/server.profile
index 7d56684db..23f464637 100644
--- a/etc/profile-m-z/server.profile
+++ b/etc/profile-m-z/server.profile
@@ -32,12 +32,12 @@ include globals.local
32# it allows /sbin and /usr/sbin directories - this is where servers are installed 32# it allows /sbin and /usr/sbin directories - this is where servers are installed
33# depending on your usage, you can enable some of the commands below: 33# depending on your usage, you can enable some of the commands below:
34 34
35noblacklist /sbin 35nodeny /sbin
36noblacklist /usr/sbin 36nodeny /usr/sbin
37# noblacklist /var/opt 37# noblacklist /var/opt
38 38
39blacklist /tmp/.X11-unix 39deny /tmp/.X11-unix
40blacklist ${RUNUSER}/wayland-* 40deny ${RUNUSER}/wayland-*
41 41
42include disable-common.inc 42include disable-common.inc
43# include disable-devel.inc 43# include disable-devel.inc
diff --git a/etc/profile-m-z/shellcheck.profile b/etc/profile-m-z/shellcheck.profile
index b7f398f45..0cb9de45a 100644
--- a/etc/profile-m-z/shellcheck.profile
+++ b/etc/profile-m-z/shellcheck.profile
@@ -7,9 +7,9 @@ include shellcheck.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12noblacklist ${DOCUMENTS} 12nodeny ${DOCUMENTS}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -19,7 +19,7 @@ include disable-passwdmgr.inc
19include disable-programs.inc 19include disable-programs.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22whitelist /usr/share/shellcheck 22allow /usr/share/shellcheck
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-var-common.inc 24include whitelist-var-common.inc
25 25
diff --git a/etc/profile-m-z/shortwave.profile b/etc/profile-m-z/shortwave.profile
index d629240ec..a8e5f6b18 100644
--- a/etc/profile-m-z/shortwave.profile
+++ b/etc/profile-m-z/shortwave.profile
@@ -6,8 +6,8 @@ include shortwave.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Shortwave 9nodeny ${HOME}/.cache/Shortwave
10noblacklist ${HOME}/.local/share/Shortwave 10nodeny ${HOME}/.local/share/Shortwave
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,9 +19,9 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.cache/Shortwave 20mkdir ${HOME}/.cache/Shortwave
21mkdir ${HOME}/.local/share/Shortwave 21mkdir ${HOME}/.local/share/Shortwave
22whitelist ${HOME}/.cache/Shortwave 22allow ${HOME}/.cache/Shortwave
23whitelist ${HOME}/.local/share/Shortwave 23allow ${HOME}/.local/share/Shortwave
24whitelist /usr/share/shortwave 24allow /usr/share/shortwave
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/shotcut.profile b/etc/profile-m-z/shotcut.profile
index 63af4d367..1f3c39c46 100644
--- a/etc/profile-m-z/shotcut.profile
+++ b/etc/profile-m-z/shotcut.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.config/Meltytech 11nodeny ${HOME}/.config/Meltytech
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/shotwell.profile b/etc/profile-m-z/shotwell.profile
index ddc8a7743..b653930c3 100644
--- a/etc/profile-m-z/shotwell.profile
+++ b/etc/profile-m-z/shotwell.profile
@@ -6,10 +6,10 @@ include shotwell.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/shotwell 9nodeny ${HOME}/.cache/shotwell
10noblacklist ${HOME}/.local/share/shotwell 10nodeny ${HOME}/.local/share/shotwell
11 11
12noblacklist ${PICTURES} 12nodeny ${PICTURES}
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
15include disable-exec.inc 15include disable-exec.inc
@@ -21,9 +21,9 @@ include disable-xdg.inc
21 21
22mkdir ${HOME}/.cache/shotwell 22mkdir ${HOME}/.cache/shotwell
23mkdir ${HOME}/.local/share/shotwell 23mkdir ${HOME}/.local/share/shotwell
24whitelist ${HOME}/.cache/shotwell 24allow ${HOME}/.cache/shotwell
25whitelist ${HOME}/.local/share/shotwell 25allow ${HOME}/.local/share/shotwell
26whitelist ${PICTURES} 26allow ${PICTURES}
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/signal-cli.profile b/etc/profile-m-z/signal-cli.profile
index 478377344..8a46899f1 100644
--- a/etc/profile-m-z/signal-cli.profile
+++ b/etc/profile-m-z/signal-cli.profile
@@ -6,10 +6,10 @@ include signal-cli.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist /tmp/.X11-unix 9deny /tmp/.X11-unix
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12noblacklist ${HOME}/.local/share/signal-cli 12nodeny ${HOME}/.local/share/signal-cli
13 13
14include allow-java.inc 14include allow-java.inc
15 15
@@ -22,7 +22,7 @@ include disable-programs.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24mkdir ${HOME}/.local/share/signal-cli 24mkdir ${HOME}/.local/share/signal-cli
25whitelist ${HOME}/.local/share/signal-cli 25allow ${HOME}/.local/share/signal-cli
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
28 28
diff --git a/etc/profile-m-z/signal-desktop.profile b/etc/profile-m-z/signal-desktop.profile
index 77a7f5b38..a12080748 100644
--- a/etc/profile-m-z/signal-desktop.profile
+++ b/etc/profile-m-z/signal-desktop.profile
@@ -9,15 +9,15 @@ ignore novideo
9 9
10ignore noexec /tmp 10ignore noexec /tmp
11 11
12noblacklist ${HOME}/.config/Signal 12nodeny ${HOME}/.config/Signal
13 13
14# These lines are needed to allow Firefox to open links 14# These lines are needed to allow Firefox to open links
15noblacklist ${HOME}/.mozilla 15nodeny ${HOME}/.mozilla
16whitelist ${HOME}/.mozilla/firefox/profiles.ini 16allow ${HOME}/.mozilla/firefox/profiles.ini
17read-only ${HOME}/.mozilla/firefox/profiles.ini 17read-only ${HOME}/.mozilla/firefox/profiles.ini
18 18
19mkdir ${HOME}/.config/Signal 19mkdir ${HOME}/.config/Signal
20whitelist ${HOME}/.config/Signal 20allow ${HOME}/.config/Signal
21 21
22private-etc alternatives,ca-certificates,crypto-policies,fonts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,localtime,machine-id,nsswitch.conf,pki,resolv.conf,ssl 22private-etc alternatives,ca-certificates,crypto-policies,fonts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,localtime,machine-id,nsswitch.conf,pki,resolv.conf,ssl
23 23
diff --git a/etc/profile-m-z/simple-scan.profile b/etc/profile-m-z/simple-scan.profile
index 17920677b..589a44ffc 100644
--- a/etc/profile-m-z/simple-scan.profile
+++ b/etc/profile-m-z/simple-scan.profile
@@ -6,8 +6,8 @@ include simple-scan.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/simple-scan 9nodeny ${HOME}/.cache/simple-scan
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -16,8 +16,8 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19whitelist /usr/share/hplip 19allow /usr/share/hplip
20whitelist /usr/share/simple-scan 20allow /usr/share/simple-scan
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-m-z/simplescreenrecorder.profile b/etc/profile-m-z/simplescreenrecorder.profile
index d664f8bf5..83f833508 100644
--- a/etc/profile-m-z/simplescreenrecorder.profile
+++ b/etc/profile-m-z/simplescreenrecorder.profile
@@ -6,8 +6,8 @@ include simplescreenrecorder.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${VIDEOS} 9nodeny ${VIDEOS}
10noblacklist ${HOME}/.ssr 10nodeny ${HOME}/.ssr
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist /usr/share/simplescreenrecorder 20allow /usr/share/simplescreenrecorder
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-m-z/simutrans.profile b/etc/profile-m-z/simutrans.profile
index afaa0f6d8..1d7f41579 100644
--- a/etc/profile-m-z/simutrans.profile
+++ b/etc/profile-m-z/simutrans.profile
@@ -6,7 +6,7 @@ include simutrans.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.simutrans 9nodeny ${HOME}/.simutrans
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -16,7 +16,7 @@ include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18mkdir ${HOME}/.simutrans 18mkdir ${HOME}/.simutrans
19whitelist ${HOME}/.simutrans 19allow ${HOME}/.simutrans
20include whitelist-common.inc 20include whitelist-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
22 22
diff --git a/etc/profile-m-z/skanlite.profile b/etc/profile-m-z/skanlite.profile
index 093a61398..98ed624f9 100644
--- a/etc/profile-m-z/skanlite.profile
+++ b/etc/profile-m-z/skanlite.profile
@@ -6,7 +6,7 @@ include skanlite.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/skypeforlinux.profile b/etc/profile-m-z/skypeforlinux.profile
index ed04eda8e..e7f70eebe 100644
--- a/etc/profile-m-z/skypeforlinux.profile
+++ b/etc/profile-m-z/skypeforlinux.profile
@@ -21,7 +21,7 @@ ignore dbus-system none
21ignore apparmor 21ignore apparmor
22ignore noexec /tmp 22ignore noexec /tmp
23 23
24noblacklist ${HOME}/.config/skypeforlinux 24nodeny ${HOME}/.config/skypeforlinux
25 25
26# private-dev - needs /dev/disk 26# private-dev - needs /dev/disk
27 27
diff --git a/etc/profile-m-z/slack.profile b/etc/profile-m-z/slack.profile
index 9ad772cd5..b8299add3 100644
--- a/etc/profile-m-z/slack.profile
+++ b/etc/profile-m-z/slack.profile
@@ -16,14 +16,16 @@ ignore private-tmp
16ignore dbus-user none 16ignore dbus-user none
17ignore dbus-system none 17ignore dbus-system none
18 18
19noblacklist ${HOME}/.config/Slack 19nodeny ${HOME}/.config/Slack
20
21include allow-bin-sh.inc
20 22
21include disable-shell.inc 23include disable-shell.inc
22 24
23mkdir ${HOME}/.config/Slack 25mkdir ${HOME}/.config/Slack
24whitelist ${HOME}/.config/Slack 26allow ${HOME}/.config/Slack
25 27
26private-bin locale,slack 28private-bin electron,electron[0-9],electron[0-9][0-9],locale,sh,slack
27private-etc alternatives,asound.conf,ca-certificates,crypto-policies,debian_version,fedora-release,fonts,group,ld.so.cache,ld.so.conf,localtime,machine-id,os-release,passwd,pki,pulse,redhat-release,resolv.conf,ssl,system-release,system-release-cpe 29private-etc alternatives,asound.conf,ca-certificates,crypto-policies,debian_version,fedora-release,fonts,group,ld.so.cache,ld.so.conf,localtime,machine-id,os-release,passwd,pki,pulse,redhat-release,resolv.conf,ssl,system-release,system-release-cpe
28 30
29# Redirect 31# Redirect
diff --git a/etc/profile-m-z/slashem.profile b/etc/profile-m-z/slashem.profile
index c5a31c237..36a0044dc 100644
--- a/etc/profile-m-z/slashem.profile
+++ b/etc/profile-m-z/slashem.profile
@@ -6,7 +6,7 @@ include slashem.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /var/games/slashem 9nodeny /var/games/slashem
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -15,7 +15,7 @@ include disable-interpreters.inc
15include disable-passwdmgr.inc 15include disable-passwdmgr.inc
16include disable-programs.inc 16include disable-programs.inc
17 17
18whitelist /var/games/slashem 18allow /var/games/slashem
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-var-common.inc 20include whitelist-var-common.inc
21 21
diff --git a/etc/profile-m-z/smplayer.profile b/etc/profile-m-z/smplayer.profile
index 01547e5c1..4e4334dc0 100644
--- a/etc/profile-m-z/smplayer.profile
+++ b/etc/profile-m-z/smplayer.profile
@@ -6,9 +6,9 @@ include smplayer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/smplayer 9nodeny ${HOME}/.config/smplayer
10noblacklist ${HOME}/.config/youtube-dl 10nodeny ${HOME}/.config/youtube-dl
11noblacklist ${HOME}/.mplayer 11nodeny ${HOME}/.mplayer
12 12
13# Allow lua (blacklisted by disable-interpreters.inc) 13# Allow lua (blacklisted by disable-interpreters.inc)
14include allow-lua.inc 14include allow-lua.inc
@@ -17,8 +17,8 @@ include allow-lua.inc
17include allow-python2.inc 17include allow-python2.inc
18include allow-python3.inc 18include allow-python3.inc
19 19
20noblacklist ${MUSIC} 20nodeny ${MUSIC}
21noblacklist ${VIDEOS} 21nodeny ${VIDEOS}
22 22
23include disable-common.inc 23include disable-common.inc
24include disable-devel.inc 24include disable-devel.inc
@@ -29,9 +29,9 @@ include disable-programs.inc
29include disable-shell.inc 29include disable-shell.inc
30include disable-xdg.inc 30include disable-xdg.inc
31 31
32whitelist /usr/share/lua* 32allow /usr/share/lua*
33whitelist /usr/share/smplayer 33allow /usr/share/smplayer
34whitelist /usr/share/vulkan 34allow /usr/share/vulkan
35include whitelist-usr-share-common.inc 35include whitelist-usr-share-common.inc
36include whitelist-var-common.inc 36include whitelist-var-common.inc
37 37
diff --git a/etc/profile-m-z/smtube.profile b/etc/profile-m-z/smtube.profile
index 196950eaf..99d02ffdf 100644
--- a/etc/profile-m-z/smtube.profile
+++ b/etc/profile-m-z/smtube.profile
@@ -6,14 +6,14 @@ include smtube.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/smplayer 9nodeny ${HOME}/.config/smplayer
10noblacklist ${HOME}/.config/smtube 10nodeny ${HOME}/.config/smtube
11noblacklist ${HOME}/.config/mpv 11nodeny ${HOME}/.config/mpv
12noblacklist ${HOME}/.mplayer 12nodeny ${HOME}/.mplayer
13noblacklist ${HOME}/.config/vlc 13nodeny ${HOME}/.config/vlc
14noblacklist ${HOME}/.local/share/vlc 14nodeny ${HOME}/.local/share/vlc
15noblacklist ${MUSIC} 15nodeny ${MUSIC}
16noblacklist ${VIDEOS} 16nodeny ${VIDEOS}
17 17
18include disable-common.inc 18include disable-common.inc
19include disable-devel.inc 19include disable-devel.inc
@@ -23,8 +23,8 @@ include disable-passwdmgr.inc
23include disable-programs.inc 23include disable-programs.inc
24include disable-xdg.inc 24include disable-xdg.inc
25 25
26whitelist /usr/share/smplayer 26allow /usr/share/smplayer
27whitelist /usr/share/smtube 27allow /usr/share/smtube
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
30 30
diff --git a/etc/profile-m-z/smuxi-frontend-gnome.profile b/etc/profile-m-z/smuxi-frontend-gnome.profile
index c3a9bb858..3a79890cc 100644
--- a/etc/profile-m-z/smuxi-frontend-gnome.profile
+++ b/etc/profile-m-z/smuxi-frontend-gnome.profile
@@ -6,9 +6,9 @@ include smuxi-frontend-gnome.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/smuxi 9nodeny ${HOME}/.cache/smuxi
10noblacklist ${HOME}/.config/smuxi 10nodeny ${HOME}/.config/smuxi
11noblacklist ${HOME}/.local/share/smuxi 11nodeny ${HOME}/.local/share/smuxi
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -21,10 +21,10 @@ include disable-xdg.inc
21mkdir ${HOME}/.cache/smuxi 21mkdir ${HOME}/.cache/smuxi
22mkdir ${HOME}/.config/smuxi 22mkdir ${HOME}/.config/smuxi
23mkdir ${HOME}/.local/share/smuxi 23mkdir ${HOME}/.local/share/smuxi
24whitelist ${HOME}/.cache/smuxi 24allow ${HOME}/.cache/smuxi
25whitelist ${HOME}/.config/smuxi 25allow ${HOME}/.config/smuxi
26whitelist ${HOME}/.local/share/smuxi 26allow ${HOME}/.local/share/smuxi
27whitelist ${DOWNLOADS} 27allow ${DOWNLOADS}
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/snox.profile b/etc/profile-m-z/snox.profile
index 83493652c..1d315404e 100644
--- a/etc/profile-m-z/snox.profile
+++ b/etc/profile-m-z/snox.profile
@@ -10,15 +10,15 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/snox 13nodeny ${HOME}/.cache/snox
14noblacklist ${HOME}/.config/snox 14nodeny ${HOME}/.config/snox
15 15
16#mkdir ${HOME}/.cache/dnox 16#mkdir ${HOME}/.cache/dnox
17#mkdir ${HOME}/.config/dnox 17#mkdir ${HOME}/.config/dnox
18mkdir ${HOME}/.cache/snox 18mkdir ${HOME}/.cache/snox
19mkdir ${HOME}/.config/snox 19mkdir ${HOME}/.config/snox
20whitelist ${HOME}/.cache/snox 20allow ${HOME}/.cache/snox
21whitelist ${HOME}/.config/snox 21allow ${HOME}/.config/snox
22 22
23# Redirect 23# Redirect
24include chromium-common.profile 24include chromium-common.profile
diff --git a/etc/profile-m-z/softmaker-common.profile b/etc/profile-m-z/softmaker-common.profile
index 83315231f..bd4991e81 100644
--- a/etc/profile-m-z/softmaker-common.profile
+++ b/etc/profile-m-z/softmaker-common.profile
@@ -10,7 +10,7 @@ include softmaker-common.local
10# with an absolute Exec line. These files are NOT handelt by firecfg, 10# with an absolute Exec line. These files are NOT handelt by firecfg,
11# therefore you must manualy copy them in you home and remove '/usr/bin/'. 11# therefore you must manualy copy them in you home and remove '/usr/bin/'.
12 12
13noblacklist ${HOME}/SoftMaker 13nodeny ${HOME}/SoftMaker
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-interpreters.inc
19include disable-passwdmgr.inc 19include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22whitelist /usr/share/office2018 22allow /usr/share/office2018
23whitelist /usr/share/freeoffice2018 23allow /usr/share/freeoffice2018
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-m-z/sound-juicer.profile b/etc/profile-m-z/sound-juicer.profile
index ef00fdfff..16ee39e09 100644
--- a/etc/profile-m-z/sound-juicer.profile
+++ b/etc/profile-m-z/sound-juicer.profile
@@ -6,8 +6,8 @@ include sound-juicer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/sound-juicer 9nodeny ${HOME}/.config/sound-juicer
10noblacklist ${MUSIC} 10nodeny ${MUSIC}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/soundconverter.profile b/etc/profile-m-z/soundconverter.profile
index 4dbf34100..46da7a453 100644
--- a/etc/profile-m-z/soundconverter.profile
+++ b/etc/profile-m-z/soundconverter.profile
@@ -10,7 +10,7 @@ include globals.local
10include allow-python2.inc 10include allow-python2.inc
11include allow-python3.inc 11include allow-python3.inc
12 12
13noblacklist ${MUSIC} 13nodeny ${MUSIC}
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23whitelist ${DOWNLOADS} 23allow ${DOWNLOADS}
24whitelist ${MUSIC} 24allow ${MUSIC}
25whitelist /usr/share/soundconverter 25allow /usr/share/soundconverter
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
diff --git a/etc/profile-m-z/spectacle.profile b/etc/profile-m-z/spectacle.profile
index 4468f21e7..08adb5861 100644
--- a/etc/profile-m-z/spectacle.profile
+++ b/etc/profile-m-z/spectacle.profile
@@ -12,8 +12,8 @@ include globals.local
12#private-etc ca-certificates,crypto-policies,pki,resolv.conf,ssl 12#private-etc ca-certificates,crypto-policies,pki,resolv.conf,ssl
13#protocol unix,inet,inet6 13#protocol unix,inet,inet6
14 14
15noblacklist ${HOME}/.config/spectaclerc 15nodeny ${HOME}/.config/spectaclerc
16noblacklist ${PICTURES} 16nodeny ${PICTURES}
17 17
18include disable-common.inc 18include disable-common.inc
19include disable-devel.inc 19include disable-devel.inc
@@ -24,10 +24,10 @@ include disable-programs.inc
24include disable-xdg.inc 24include disable-xdg.inc
25 25
26mkfile ${HOME}/.config/spectaclerc 26mkfile ${HOME}/.config/spectaclerc
27whitelist ${HOME}/.config/spectaclerc 27allow ${HOME}/.config/spectaclerc
28whitelist ${PICTURES} 28allow ${PICTURES}
29whitelist /usr/share/kconf_update/spectacle_newConfig.upd 29allow /usr/share/kconf_update/spectacle_newConfig.upd
30whitelist /usr/share/kconf_update/spectacle_shortcuts.upd 30allow /usr/share/kconf_update/spectacle_shortcuts.upd
31include whitelist-common.inc 31include whitelist-common.inc
32include whitelist-runuser-common.inc 32include whitelist-runuser-common.inc
33include whitelist-usr-share-common.inc 33include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/spectral.profile b/etc/profile-m-z/spectral.profile
index 283674517..4c1b2d3e1 100644
--- a/etc/profile-m-z/spectral.profile
+++ b/etc/profile-m-z/spectral.profile
@@ -6,8 +6,8 @@ include spectral.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/ENCOM/Spectral 9nodeny ${HOME}/.cache/ENCOM/Spectral
10noblacklist ${HOME}/.config/ENCOM 10nodeny ${HOME}/.config/ENCOM
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -20,9 +20,9 @@ include disable-xdg.inc
20 20
21mkdir ${HOME}/.cache/ENCOM/Spectral 21mkdir ${HOME}/.cache/ENCOM/Spectral
22mkdir ${HOME}/.config/ENCOM 22mkdir ${HOME}/.config/ENCOM
23whitelist ${HOME}/.cache/ENCOM/Spectral 23allow ${HOME}/.cache/ENCOM/Spectral
24whitelist ${HOME}/.config/ENCOM 24allow ${HOME}/.config/ENCOM
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/spectre-meltdown-checker.profile b/etc/profile-m-z/spectre-meltdown-checker.profile
index 984461f90..3a3fd838d 100644
--- a/etc/profile-m-z/spectre-meltdown-checker.profile
+++ b/etc/profile-m-z/spectre-meltdown-checker.profile
@@ -6,10 +6,10 @@ include spectre-meltdown-checker.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9blacklist ${RUNUSER}/wayland-* 9deny ${RUNUSER}/wayland-*
10 10
11noblacklist ${PATH}/mount 11nodeny ${PATH}/mount
12noblacklist ${PATH}/umount 12nodeny ${PATH}/umount
13 13
14# Allow perl (blacklisted by disable-interpreters.inc) 14# Allow perl (blacklisted by disable-interpreters.inc)
15include allow-perl.inc 15include allow-perl.inc
diff --git a/etc/profile-m-z/spotify.profile b/etc/profile-m-z/spotify.profile
index 01bc2bc05..e1c830268 100644
--- a/etc/profile-m-z/spotify.profile
+++ b/etc/profile-m-z/spotify.profile
@@ -5,11 +5,11 @@ include spotify.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/spotify 8nodeny ${HOME}/.cache/spotify
9noblacklist ${HOME}/.config/spotify 9nodeny ${HOME}/.config/spotify
10noblacklist ${HOME}/.local/share/spotify 10nodeny ${HOME}/.local/share/spotify
11 11
12blacklist ${HOME}/.bashrc 12deny ${HOME}/.bashrc
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -21,9 +21,9 @@ include disable-programs.inc
21mkdir ${HOME}/.cache/spotify 21mkdir ${HOME}/.cache/spotify
22mkdir ${HOME}/.config/spotify 22mkdir ${HOME}/.config/spotify
23mkdir ${HOME}/.local/share/spotify 23mkdir ${HOME}/.local/share/spotify
24whitelist ${HOME}/.cache/spotify 24allow ${HOME}/.cache/spotify
25whitelist ${HOME}/.config/spotify 25allow ${HOME}/.config/spotify
26whitelist ${HOME}/.local/share/spotify 26allow ${HOME}/.local/share/spotify
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-var-common.inc 28include whitelist-var-common.inc
29 29
diff --git a/etc/profile-m-z/sqlitebrowser.profile b/etc/profile-m-z/sqlitebrowser.profile
index 4dd2c7262..aa577b63a 100644
--- a/etc/profile-m-z/sqlitebrowser.profile
+++ b/etc/profile-m-z/sqlitebrowser.profile
@@ -6,8 +6,8 @@ include sqlitebrowser.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/sqlitebrowser 9nodeny ${HOME}/.config/sqlitebrowser
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/ssh-agent.profile b/etc/profile-m-z/ssh-agent.profile
index 5802299a3..e456ebe07 100644
--- a/etc/profile-m-z/ssh-agent.profile
+++ b/etc/profile-m-z/ssh-agent.profile
@@ -9,8 +9,8 @@ include globals.local
9# Allow ssh (blacklisted by disable-common.inc) 9# Allow ssh (blacklisted by disable-common.inc)
10include allow-ssh.inc 10include allow-ssh.inc
11 11
12blacklist /tmp/.X11-unix 12deny /tmp/.X11-unix
13blacklist ${RUNUSER}/wayland-* 13deny ${RUNUSER}/wayland-*
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-passwdmgr.inc 16include disable-passwdmgr.inc
diff --git a/etc/profile-m-z/ssh.profile b/etc/profile-m-z/ssh.profile
index a58642192..8a0d86150 100644
--- a/etc/profile-m-z/ssh.profile
+++ b/etc/profile-m-z/ssh.profile
@@ -8,8 +8,8 @@ include ssh.local
8include globals.local 8include globals.local
9 9
10# nc can be used as ProxyCommand, e.g. when using tor 10# nc can be used as ProxyCommand, e.g. when using tor
11noblacklist ${PATH}/nc 11nodeny ${PATH}/nc
12noblacklist ${PATH}/ncat 12nodeny ${PATH}/ncat
13 13
14# Allow ssh (blacklisted by disable-common.inc) 14# Allow ssh (blacklisted by disable-common.inc)
15include allow-ssh.inc 15include allow-ssh.inc
@@ -19,8 +19,8 @@ include disable-exec.inc
19include disable-passwdmgr.inc 19include disable-passwdmgr.inc
20include disable-programs.inc 20include disable-programs.inc
21 21
22whitelist ${RUNUSER}/gnupg/S.gpg-agent.ssh 22allow ${RUNUSER}/gnupg/S.gpg-agent.ssh
23whitelist ${RUNUSER}/keyring/ssh 23allow ${RUNUSER}/keyring/ssh
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
26 26
diff --git a/etc/profile-m-z/standardnotes-desktop.profile b/etc/profile-m-z/standardnotes-desktop.profile
index 48a532876..75de118ab 100644
--- a/etc/profile-m-z/standardnotes-desktop.profile
+++ b/etc/profile-m-z/standardnotes-desktop.profile
@@ -5,8 +5,8 @@ include standardnotes-desktop.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/Standard Notes Backups 8nodeny ${HOME}/Standard Notes Backups
9noblacklist ${HOME}/.config/Standard Notes 9nodeny ${HOME}/.config/Standard Notes
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17 17
18mkdir ${HOME}/Standard Notes Backups 18mkdir ${HOME}/Standard Notes Backups
19mkdir ${HOME}/.config/Standard Notes 19mkdir ${HOME}/.config/Standard Notes
20whitelist ${HOME}/Standard Notes Backups 20allow ${HOME}/Standard Notes Backups
21whitelist ${HOME}/.config/Standard Notes 21allow ${HOME}/.config/Standard Notes
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
24apparmor 24apparmor
diff --git a/etc/profile-m-z/start-tor-browser.desktop.profile b/etc/profile-m-z/start-tor-browser.desktop.profile
index 2f73c9fee..8f75365e8 100644
--- a/etc/profile-m-z/start-tor-browser.desktop.profile
+++ b/etc/profile-m-z/start-tor-browser.desktop.profile
@@ -6,71 +6,71 @@ include start-tor-browser.desktop.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser* 9nodeny ${HOME}/.tor-browser*
10 10
11whitelist ${HOME}/.tor-browser-ar 11allow ${HOME}/.tor-browser-ar
12whitelist ${HOME}/.tor-browser-ca 12allow ${HOME}/.tor-browser-ca
13whitelist ${HOME}/.tor-browser-cs 13allow ${HOME}/.tor-browser-cs
14whitelist ${HOME}/.tor-browser-da 14allow ${HOME}/.tor-browser-da
15whitelist ${HOME}/.tor-browser-de 15allow ${HOME}/.tor-browser-de
16whitelist ${HOME}/.tor-browser-el 16allow ${HOME}/.tor-browser-el
17whitelist ${HOME}/.tor-browser-en 17allow ${HOME}/.tor-browser-en
18whitelist ${HOME}/.tor-browser-en-us 18allow ${HOME}/.tor-browser-en-us
19whitelist ${HOME}/.tor-browser-es 19allow ${HOME}/.tor-browser-es
20whitelist ${HOME}/.tor-browser-es-es 20allow ${HOME}/.tor-browser-es-es
21whitelist ${HOME}/.tor-browser-fa 21allow ${HOME}/.tor-browser-fa
22whitelist ${HOME}/.tor-browser-fr 22allow ${HOME}/.tor-browser-fr
23whitelist ${HOME}/.tor-browser-ga-ie 23allow ${HOME}/.tor-browser-ga-ie
24whitelist ${HOME}/.tor-browser-he 24allow ${HOME}/.tor-browser-he
25whitelist ${HOME}/.tor-browser-hu 25allow ${HOME}/.tor-browser-hu
26whitelist ${HOME}/.tor-browser-id 26allow ${HOME}/.tor-browser-id
27whitelist ${HOME}/.tor-browser-is 27allow ${HOME}/.tor-browser-is
28whitelist ${HOME}/.tor-browser-it 28allow ${HOME}/.tor-browser-it
29whitelist ${HOME}/.tor-browser-ja 29allow ${HOME}/.tor-browser-ja
30whitelist ${HOME}/.tor-browser-ka 30allow ${HOME}/.tor-browser-ka
31whitelist ${HOME}/.tor-browser-ko 31allow ${HOME}/.tor-browser-ko
32whitelist ${HOME}/.tor-browser-nb 32allow ${HOME}/.tor-browser-nb
33whitelist ${HOME}/.tor-browser-nl 33allow ${HOME}/.tor-browser-nl
34whitelist ${HOME}/.tor-browser-pl 34allow ${HOME}/.tor-browser-pl
35whitelist ${HOME}/.tor-browser-pt-br 35allow ${HOME}/.tor-browser-pt-br
36whitelist ${HOME}/.tor-browser-ru 36allow ${HOME}/.tor-browser-ru
37whitelist ${HOME}/.tor-browser-sv-se 37allow ${HOME}/.tor-browser-sv-se
38whitelist ${HOME}/.tor-browser-tr 38allow ${HOME}/.tor-browser-tr
39whitelist ${HOME}/.tor-browser-vi 39allow ${HOME}/.tor-browser-vi
40whitelist ${HOME}/.tor-browser-zh-cn 40allow ${HOME}/.tor-browser-zh-cn
41whitelist ${HOME}/.tor-browser-zh-tw 41allow ${HOME}/.tor-browser-zh-tw
42 42
43whitelist ${HOME}/.tor-browser_ar 43allow ${HOME}/.tor-browser_ar
44whitelist ${HOME}/.tor-browser_ca 44allow ${HOME}/.tor-browser_ca
45whitelist ${HOME}/.tor-browser_cs 45allow ${HOME}/.tor-browser_cs
46whitelist ${HOME}/.tor-browser_da 46allow ${HOME}/.tor-browser_da
47whitelist ${HOME}/.tor-browser_de 47allow ${HOME}/.tor-browser_de
48whitelist ${HOME}/.tor-browser_el 48allow ${HOME}/.tor-browser_el
49whitelist ${HOME}/.tor-browser_en 49allow ${HOME}/.tor-browser_en
50whitelist ${HOME}/.tor-browser_en_US 50allow ${HOME}/.tor-browser_en_US
51whitelist ${HOME}/.tor-browser_es 51allow ${HOME}/.tor-browser_es
52whitelist ${HOME}/.tor-browser_es-ES 52allow ${HOME}/.tor-browser_es-ES
53whitelist ${HOME}/.tor-browser_fa 53allow ${HOME}/.tor-browser_fa
54whitelist ${HOME}/.tor-browser_fr 54allow ${HOME}/.tor-browser_fr
55whitelist ${HOME}/.tor-browser_ga-IE 55allow ${HOME}/.tor-browser_ga-IE
56whitelist ${HOME}/.tor-browser_he 56allow ${HOME}/.tor-browser_he
57whitelist ${HOME}/.tor-browser_hu 57allow ${HOME}/.tor-browser_hu
58whitelist ${HOME}/.tor-browser_id 58allow ${HOME}/.tor-browser_id
59whitelist ${HOME}/.tor-browser_is 59allow ${HOME}/.tor-browser_is
60whitelist ${HOME}/.tor-browser_it 60allow ${HOME}/.tor-browser_it
61whitelist ${HOME}/.tor-browser_ja 61allow ${HOME}/.tor-browser_ja
62whitelist ${HOME}/.tor-browser_ka 62allow ${HOME}/.tor-browser_ka
63whitelist ${HOME}/.tor-browser_ko 63allow ${HOME}/.tor-browser_ko
64whitelist ${HOME}/.tor-browser_nb 64allow ${HOME}/.tor-browser_nb
65whitelist ${HOME}/.tor-browser_nl 65allow ${HOME}/.tor-browser_nl
66whitelist ${HOME}/.tor-browser_pl 66allow ${HOME}/.tor-browser_pl
67whitelist ${HOME}/.tor-browser_pt-BR 67allow ${HOME}/.tor-browser_pt-BR
68whitelist ${HOME}/.tor-browser_ru 68allow ${HOME}/.tor-browser_ru
69whitelist ${HOME}/.tor-browser_sv-SE 69allow ${HOME}/.tor-browser_sv-SE
70whitelist ${HOME}/.tor-browser_tr 70allow ${HOME}/.tor-browser_tr
71whitelist ${HOME}/.tor-browser_vi 71allow ${HOME}/.tor-browser_vi
72whitelist ${HOME}/.tor-browser_zh-CN 72allow ${HOME}/.tor-browser_zh-CN
73whitelist ${HOME}/.tor-browser_zh-TW 73allow ${HOME}/.tor-browser_zh-TW
74 74
75# Redirect 75# Redirect
76include torbrowser-launcher.profile 76include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/steam.profile b/etc/profile-m-z/steam.profile
index 06d08f3a2..09e29373d 100644
--- a/etc/profile-m-z/steam.profile
+++ b/etc/profile-m-z/steam.profile
@@ -6,40 +6,40 @@ include steam.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Epic 9nodeny ${HOME}/.config/Epic
10noblacklist ${HOME}/.config/Loop_Hero 10nodeny ${HOME}/.config/Loop_Hero
11noblacklist ${HOME}/.config/ModTheSpire 11nodeny ${HOME}/.config/ModTheSpire
12noblacklist ${HOME}/.config/RogueLegacy 12nodeny ${HOME}/.config/RogueLegacy
13noblacklist ${HOME}/.config/RogueLegacyStorageContainer 13nodeny ${HOME}/.config/RogueLegacyStorageContainer
14noblacklist ${HOME}/.killingfloor 14nodeny ${HOME}/.killingfloor
15noblacklist ${HOME}/.klei 15nodeny ${HOME}/.klei
16noblacklist ${HOME}/.local/share/3909/PapersPlease 16nodeny ${HOME}/.local/share/3909/PapersPlease
17noblacklist ${HOME}/.local/share/aspyr-media 17nodeny ${HOME}/.local/share/aspyr-media
18noblacklist ${HOME}/.local/share/bohemiainteractive 18nodeny ${HOME}/.local/share/bohemiainteractive
19noblacklist ${HOME}/.local/share/cdprojektred 19nodeny ${HOME}/.local/share/cdprojektred
20noblacklist ${HOME}/.local/share/Dredmor 20nodeny ${HOME}/.local/share/Dredmor
21noblacklist ${HOME}/.local/share/FasterThanLight 21nodeny ${HOME}/.local/share/FasterThanLight
22noblacklist ${HOME}/.local/share/feral-interactive 22nodeny ${HOME}/.local/share/feral-interactive
23noblacklist ${HOME}/.local/share/IntoTheBreach 23nodeny ${HOME}/.local/share/IntoTheBreach
24noblacklist ${HOME}/.local/share/Paradox Interactive 24nodeny ${HOME}/.local/share/Paradox Interactive
25noblacklist ${HOME}/.local/share/PillarsOfEternity 25nodeny ${HOME}/.local/share/PillarsOfEternity
26noblacklist ${HOME}/.local/share/RogueLegacy 26nodeny ${HOME}/.local/share/RogueLegacy
27noblacklist ${HOME}/.local/share/RogueLegacyStorageContainer 27nodeny ${HOME}/.local/share/RogueLegacyStorageContainer
28noblacklist ${HOME}/.local/share/Steam 28nodeny ${HOME}/.local/share/Steam
29noblacklist ${HOME}/.local/share/SteamWorldDig 29nodeny ${HOME}/.local/share/SteamWorldDig
30noblacklist ${HOME}/.local/share/SteamWorld Dig 2 30nodeny ${HOME}/.local/share/SteamWorld Dig 2
31noblacklist ${HOME}/.local/share/SuperHexagon 31nodeny ${HOME}/.local/share/SuperHexagon
32noblacklist ${HOME}/.local/share/Terraria 32nodeny ${HOME}/.local/share/Terraria
33noblacklist ${HOME}/.local/share/vpltd 33nodeny ${HOME}/.local/share/vpltd
34noblacklist ${HOME}/.local/share/vulkan 34nodeny ${HOME}/.local/share/vulkan
35noblacklist ${HOME}/.mbwarband 35nodeny ${HOME}/.mbwarband
36noblacklist ${HOME}/.paradoxinteractive 36nodeny ${HOME}/.paradoxinteractive
37noblacklist ${HOME}/.steam 37nodeny ${HOME}/.steam
38noblacklist ${HOME}/.steampath 38nodeny ${HOME}/.steampath
39noblacklist ${HOME}/.steampid 39nodeny ${HOME}/.steampid
40# needed for STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 to work 40# needed for STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 to work
41noblacklist /sbin 41nodeny /sbin
42noblacklist /usr/sbin 42nodeny /usr/sbin
43 43
44# Allow java (blacklisted by disable-devel.inc) 44# Allow java (blacklisted by disable-devel.inc)
45include allow-java.inc 45include allow-java.inc
@@ -84,38 +84,38 @@ mkdir ${HOME}/.paradoxinteractive
84mkdir ${HOME}/.steam 84mkdir ${HOME}/.steam
85mkfile ${HOME}/.steampath 85mkfile ${HOME}/.steampath
86mkfile ${HOME}/.steampid 86mkfile ${HOME}/.steampid
87whitelist ${HOME}/.config/Epic 87allow ${HOME}/.config/Epic
88whitelist ${HOME}/.config/Loop_Hero 88allow ${HOME}/.config/Loop_Hero
89whitelist ${HOME}/.config/ModTheSpire 89allow ${HOME}/.config/ModTheSpire
90whitelist ${HOME}/.config/RogueLegacy 90allow ${HOME}/.config/RogueLegacy
91whitelist ${HOME}/.config/RogueLegacyStorageContainer 91allow ${HOME}/.config/RogueLegacyStorageContainer
92whitelist ${HOME}/.config/unity3d 92allow ${HOME}/.config/unity3d
93whitelist ${HOME}/.killingfloor 93allow ${HOME}/.killingfloor
94whitelist ${HOME}/.klei 94allow ${HOME}/.klei
95whitelist ${HOME}/.local/share/3909/PapersPlease 95allow ${HOME}/.local/share/3909/PapersPlease
96whitelist ${HOME}/.local/share/aspyr-media 96allow ${HOME}/.local/share/aspyr-media
97whitelist ${HOME}/.local/share/bohemiainteractive 97allow ${HOME}/.local/share/bohemiainteractive
98whitelist ${HOME}/.local/share/cdprojektred 98allow ${HOME}/.local/share/cdprojektred
99whitelist ${HOME}/.local/share/Dredmor 99allow ${HOME}/.local/share/Dredmor
100whitelist ${HOME}/.local/share/FasterThanLight 100allow ${HOME}/.local/share/FasterThanLight
101whitelist ${HOME}/.local/share/feral-interactive 101allow ${HOME}/.local/share/feral-interactive
102whitelist ${HOME}/.local/share/IntoTheBreach 102allow ${HOME}/.local/share/IntoTheBreach
103whitelist ${HOME}/.local/share/Paradox Interactive 103allow ${HOME}/.local/share/Paradox Interactive
104whitelist ${HOME}/.local/share/PillarsOfEternity 104allow ${HOME}/.local/share/PillarsOfEternity
105whitelist ${HOME}/.local/share/RogueLegacy 105allow ${HOME}/.local/share/RogueLegacy
106whitelist ${HOME}/.local/share/RogueLegacyStorageContainer 106allow ${HOME}/.local/share/RogueLegacyStorageContainer
107whitelist ${HOME}/.local/share/Steam 107allow ${HOME}/.local/share/Steam
108whitelist ${HOME}/.local/share/SteamWorldDig 108allow ${HOME}/.local/share/SteamWorldDig
109whitelist ${HOME}/.local/share/SteamWorld Dig 2 109allow ${HOME}/.local/share/SteamWorld Dig 2
110whitelist ${HOME}/.local/share/SuperHexagon 110allow ${HOME}/.local/share/SuperHexagon
111whitelist ${HOME}/.local/share/Terraria 111allow ${HOME}/.local/share/Terraria
112whitelist ${HOME}/.local/share/vpltd 112allow ${HOME}/.local/share/vpltd
113whitelist ${HOME}/.local/share/vulkan 113allow ${HOME}/.local/share/vulkan
114whitelist ${HOME}/.mbwarband 114allow ${HOME}/.mbwarband
115whitelist ${HOME}/.paradoxinteractive 115allow ${HOME}/.paradoxinteractive
116whitelist ${HOME}/.steam 116allow ${HOME}/.steam
117whitelist ${HOME}/.steampath 117allow ${HOME}/.steampath
118whitelist ${HOME}/.steampid 118allow ${HOME}/.steampid
119include whitelist-common.inc 119include whitelist-common.inc
120include whitelist-var-common.inc 120include whitelist-var-common.inc
121 121
diff --git a/etc/profile-m-z/stellarium.profile b/etc/profile-m-z/stellarium.profile
index a752ab53c..003d3a079 100644
--- a/etc/profile-m-z/stellarium.profile
+++ b/etc/profile-m-z/stellarium.profile
@@ -6,8 +6,8 @@ include stellarium.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/stellarium 9nodeny ${HOME}/.config/stellarium
10noblacklist ${HOME}/.stellarium 10nodeny ${HOME}/.stellarium
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-shell.inc
19 19
20mkdir ${HOME}/.config/stellarium 20mkdir ${HOME}/.config/stellarium
21mkdir ${HOME}/.stellarium 21mkdir ${HOME}/.stellarium
22whitelist ${HOME}/.config/stellarium 22allow ${HOME}/.config/stellarium
23whitelist ${HOME}/.stellarium 23allow ${HOME}/.stellarium
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-m-z/straw-viewer.profile b/etc/profile-m-z/straw-viewer.profile
index f8108c9d6..dd643bc20 100644
--- a/etc/profile-m-z/straw-viewer.profile
+++ b/etc/profile-m-z/straw-viewer.profile
@@ -1,64 +1,21 @@
1# Firejail profile for straw-viewer 1# Firejail profile for straw-viewer
2# Description: Fork of youtube-viewer acts like an invidious frontend 2# Description: Fork of youtube-viewer acts like an invidious frontend
3quiet
4# This file is overwritten after every install/update 3# This file is overwritten after every install/update
4quiet
5# Persistent local customizations 5# Persistent local customizations
6include straw-viewer.local 6include straw-viewer.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.cache/straw-viewer 10nodeny ${HOME}/.cache/straw-viewer
11noblacklist ${HOME}/.config/straw-viewer 11nodeny ${HOME}/.config/straw-viewer
12
13# Allow lua (blacklisted by disable-interpreters.inc)
14include allow-lua.inc
15
16# Allow perl (blacklisted by disable-interpreters.inc)
17include allow-perl.inc
18
19# Allow python (blacklisted by disable-interpreters.inc)
20include allow-python2.inc
21include allow-python3.inc
22
23include disable-common.inc
24include disable-devel.inc
25include disable-exec.inc
26include disable-interpreters.inc
27include disable-passwdmgr.inc
28include disable-programs.inc
29include disable-xdg.inc
30 12
31mkdir ${HOME}/.config/straw-viewer 13mkdir ${HOME}/.config/straw-viewer
32mkdir ${HOME}/.cache/straw-viewer 14mkdir ${HOME}/.cache/straw-viewer
33whitelist ${HOME}/.cache/straw-viewer 15allow ${HOME}/.cache/straw-viewer
34whitelist ${HOME}/.config/straw-viewer 16allow ${HOME}/.config/straw-viewer
35whitelist ${DOWNLOADS}
36include whitelist-common.inc
37include whitelist-usr-share-common.inc
38include whitelist-var-common.inc
39
40apparmor
41caps.drop all
42netfilter
43nodvd
44nogroups
45noinput
46nonewprivs
47noroot
48notv
49nou2f
50novideo
51protocol unix,inet,inet6
52seccomp
53shell none
54tracelog
55 17
56disable-mnt 18private-bin gtk-straw-viewer,straw-viewer
57private-bin bash,ffmpeg,ffprobe,gtk-straw-viewer,mpv,perl,python*,sh,smplayer,straw-viewer,stty,vlc,wget,which,youtube-dl
58private-cache
59private-dev
60private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,machine-id,mime.types,nsswitch.conf,passwd,pki,pulse,resolv.conf,ssl,X11,xdg
61private-tmp
62 19
63dbus-user none 20# Redirect
64dbus-system none 21include youtube-viewers-common.profile \ No newline at end of file
diff --git a/etc/profile-m-z/strawberry.profile b/etc/profile-m-z/strawberry.profile
index b87906f55..aed0b7910 100644
--- a/etc/profile-m-z/strawberry.profile
+++ b/etc/profile-m-z/strawberry.profile
@@ -6,10 +6,10 @@ include strawberry.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/strawberry 9nodeny ${HOME}/.cache/strawberry
10noblacklist ${HOME}/.config/strawberry 10nodeny ${HOME}/.config/strawberry
11noblacklist ${HOME}/.local/share/strawberry 11nodeny ${HOME}/.local/share/strawberry
12noblacklist ${MUSIC} 12nodeny ${MUSIC}
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/strings.profile b/etc/profile-m-z/strings.profile
index 1ebcded7f..5c820ef81 100644
--- a/etc/profile-m-z/strings.profile
+++ b/etc/profile-m-z/strings.profile
@@ -7,7 +7,7 @@ include strings.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER} 10deny ${RUNUSER}
11 11
12#include disable-common.inc 12#include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/subdownloader.profile b/etc/profile-m-z/subdownloader.profile
index bbe92fd38..0d07b5ea7 100644
--- a/etc/profile-m-z/subdownloader.profile
+++ b/etc/profile-m-z/subdownloader.profile
@@ -6,8 +6,8 @@ include subdownloader.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/SubDownloader 9nodeny ${HOME}/.config/SubDownloader
10noblacklist ${VIDEOS} 10nodeny ${VIDEOS}
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
diff --git a/etc/profile-m-z/supertux2.profile b/etc/profile-m-z/supertux2.profile
index dd456f085..8cc547805 100644
--- a/etc/profile-m-z/supertux2.profile
+++ b/etc/profile-m-z/supertux2.profile
@@ -6,7 +6,7 @@ include supertux2.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/supertux2 9nodeny ${HOME}/.local/share/supertux2
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,9 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.local/share/supertux2 20mkdir ${HOME}/.local/share/supertux2
21whitelist ${HOME}/.local/share/supertux2 21allow ${HOME}/.local/share/supertux2
22whitelist /usr/share/supertux2 22allow /usr/share/supertux2
23allow /usr/share/games/supertux2 # Debian version
23include whitelist-common.inc 24include whitelist-common.inc
24include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/supertuxkart.profile b/etc/profile-m-z/supertuxkart.profile
index 6a0ed46e0..44dc1524f 100644
--- a/etc/profile-m-z/supertuxkart.profile
+++ b/etc/profile-m-z/supertuxkart.profile
@@ -6,9 +6,11 @@ include supertuxkart.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/supertuxkart 9nodeny ${HOME}/.config/supertuxkart
10noblacklist ${HOME}/.cache/supertuxkart 10nodeny ${HOME}/.cache/supertuxkart
11noblacklist ${HOME}/.local/share/supertuxkart 11nodeny ${HOME}/.local/share/supertuxkart
12
13deny /usr/libexec
12 14
13include disable-common.inc 15include disable-common.inc
14include disable-devel.inc 16include disable-devel.inc
@@ -22,10 +24,11 @@ include disable-xdg.inc
22mkdir ${HOME}/.config/supertuxkart 24mkdir ${HOME}/.config/supertuxkart
23mkdir ${HOME}/.cache/supertuxkart 25mkdir ${HOME}/.cache/supertuxkart
24mkdir ${HOME}/.local/share/supertuxkart 26mkdir ${HOME}/.local/share/supertuxkart
25whitelist ${HOME}/.config/supertuxkart 27allow ${HOME}/.config/supertuxkart
26whitelist ${HOME}/.cache/supertuxkart 28allow ${HOME}/.cache/supertuxkart
27whitelist ${HOME}/.local/share/supertuxkart 29allow ${HOME}/.local/share/supertuxkart
28whitelist /usr/share/supertuxkart 30allow /usr/share/supertuxkart
31allow /usr/share/games/supertuxkart # Debian version
29include whitelist-common.inc 32include whitelist-common.inc
30include whitelist-runuser-common.inc 33include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 34include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/surf.profile b/etc/profile-m-z/surf.profile
index 8db7d2433..fd1e7f9e9 100644
--- a/etc/profile-m-z/surf.profile
+++ b/etc/profile-m-z/surf.profile
@@ -6,7 +6,7 @@ include surf.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.surf 9nodeny ${HOME}/.surf
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -15,8 +15,8 @@ include disable-passwdmgr.inc
15include disable-programs.inc 15include disable-programs.inc
16 16
17mkdir ${HOME}/.surf 17mkdir ${HOME}/.surf
18whitelist ${HOME}/.surf 18allow ${HOME}/.surf
19whitelist ${DOWNLOADS} 19allow ${DOWNLOADS}
20include whitelist-common.inc 20include whitelist-common.inc
21 21
22caps.drop all 22caps.drop all
diff --git a/etc/profile-m-z/swell-foop.profile b/etc/profile-m-z/swell-foop.profile
index 9efae815d..55cd0965a 100644
--- a/etc/profile-m-z/swell-foop.profile
+++ b/etc/profile-m-z/swell-foop.profile
@@ -6,12 +6,12 @@ include swell-foop.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.local/share/swell-foop 9nodeny ${HOME}/.local/share/swell-foop
10 10
11mkdir ${HOME}/.local/share/swell-foop 11mkdir ${HOME}/.local/share/swell-foop
12whitelist ${HOME}/.local/share/swell-foop 12allow ${HOME}/.local/share/swell-foop
13 13
14whitelist /usr/share/swell-foop 14allow /usr/share/swell-foop
15 15
16private-bin swell-foop 16private-bin swell-foop
17 17
diff --git a/etc/profile-m-z/sylpheed.profile b/etc/profile-m-z/sylpheed.profile
index 328812b04..447cdc99e 100644
--- a/etc/profile-m-z/sylpheed.profile
+++ b/etc/profile-m-z/sylpheed.profile
@@ -6,12 +6,12 @@ include sylpheed.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.sylpheed-2.0 9nodeny ${HOME}/.sylpheed-2.0
10 10
11mkdir ${HOME}/.sylpheed-2.0 11mkdir ${HOME}/.sylpheed-2.0
12whitelist ${HOME}/.sylpheed-2.0 12allow ${HOME}/.sylpheed-2.0
13 13
14whitelist /usr/share/sylpheed 14allow /usr/share/sylpheed
15 15
16# private-bin curl,gpg,gpg2,gpg-agent,gpgsm,pinentry,pinentry-gtk-2,sylpheed 16# private-bin curl,gpg,gpg2,gpg-agent,gpgsm,pinentry,pinentry-gtk-2,sylpheed
17 17
diff --git a/etc/profile-m-z/synfigstudio.profile b/etc/profile-m-z/synfigstudio.profile
index c60186c42..7cbbafd54 100644
--- a/etc/profile-m-z/synfigstudio.profile
+++ b/etc/profile-m-z/synfigstudio.profile
@@ -6,8 +6,8 @@ include synfigstudio.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/synfig 9nodeny ${HOME}/.config/synfig
10noblacklist ${HOME}/.synfig 10nodeny ${HOME}/.synfig
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/sysprof.profile b/etc/profile-m-z/sysprof.profile
index b52b25b96..f20f88791 100644
--- a/etc/profile-m-z/sysprof.profile
+++ b/etc/profile-m-z/sysprof.profile
@@ -6,7 +6,7 @@ include sysprof.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
12include disable-exec.inc 12include disable-exec.inc
@@ -24,15 +24,15 @@ include disable-xdg.inc
24#nowhitelist /usr/share/yelp-tools 24#nowhitelist /usr/share/yelp-tools
25#nowhitelist /usr/share/yelp-xsl 25#nowhitelist /usr/share/yelp-xsl
26 26
27noblacklist ${HOME}/.config/yelp 27nodeny ${HOME}/.config/yelp
28mkdir ${HOME}/.config/yelp 28mkdir ${HOME}/.config/yelp
29whitelist ${HOME}/.config/yelp 29allow ${HOME}/.config/yelp
30whitelist /usr/share/help/C/sysprof 30allow /usr/share/help/C/sysprof
31whitelist /usr/share/yelp 31allow /usr/share/yelp
32whitelist /usr/share/yelp-tools 32allow /usr/share/yelp-tools
33whitelist /usr/share/yelp-xsl 33allow /usr/share/yelp-xsl
34 34
35whitelist ${DOCUMENTS} 35allow ${DOCUMENTS}
36include whitelist-common.inc 36include whitelist-common.inc
37include whitelist-runuser-common.inc 37include whitelist-runuser-common.inc
38include whitelist-usr-share-common.inc 38include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/tar.profile b/etc/profile-m-z/tar.profile
index 0d3a900e9..74c8a0849 100644
--- a/etc/profile-m-z/tar.profile
+++ b/etc/profile-m-z/tar.profile
@@ -12,7 +12,7 @@ ignore include disable-shell.inc
12 12
13# Arch Linux (based distributions) need access to /var/lib/pacman. As we drop 13# Arch Linux (based distributions) need access to /var/lib/pacman. As we drop
14# all capabilities this is automatically read-only. 14# all capabilities this is automatically read-only.
15noblacklist /var/lib/pacman 15nodeny /var/lib/pacman
16 16
17private-etc alternatives,group,localtime,login.defs,passwd 17private-etc alternatives,group,localtime,login.defs,passwd
18#private-lib libfakeroot,liblzma.so.*,libreadline.so.* 18#private-lib libfakeroot,liblzma.so.*,libreadline.so.*
diff --git a/etc/profile-m-z/tb-starter-wrapper.profile b/etc/profile-m-z/tb-starter-wrapper.profile
index ffe9605b6..691c33191 100644
--- a/etc/profile-m-z/tb-starter-wrapper.profile
+++ b/etc/profile-m-z/tb-starter-wrapper.profile
@@ -8,10 +8,10 @@ include tb-starter-wrapper.local
8# added by included profile 8# added by included profile
9#include globals.local 9#include globals.local
10 10
11noblacklist ${HOME}/.tb 11nodeny ${HOME}/.tb
12 12
13mkdir ${HOME}/.tb 13mkdir ${HOME}/.tb
14whitelist ${HOME}/.tb 14allow ${HOME}/.tb
15 15
16private-bin tb-starter-wrapper 16private-bin tb-starter-wrapper
17 17
diff --git a/etc/profile-m-z/tcpdump.profile b/etc/profile-m-z/tcpdump.profile
index e2ba5893c..b4c4873b3 100644
--- a/etc/profile-m-z/tcpdump.profile
+++ b/etc/profile-m-z/tcpdump.profile
@@ -6,9 +6,9 @@ include tcpdump.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /sbin 9nodeny /sbin
10noblacklist /usr/sbin 10nodeny /usr/sbin
11noblacklist ${PATH}/tcpdump 11nodeny ${PATH}/tcpdump
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/teams-for-linux.profile b/etc/profile-m-z/teams-for-linux.profile
index eee083332..24cbb42da 100644
--- a/etc/profile-m-z/teams-for-linux.profile
+++ b/etc/profile-m-z/teams-for-linux.profile
@@ -14,10 +14,10 @@ ignore include whitelist-usr-share-common.inc
14ignore dbus-user none 14ignore dbus-user none
15ignore dbus-system none 15ignore dbus-system none
16 16
17noblacklist ${HOME}/.config/teams-for-linux 17nodeny ${HOME}/.config/teams-for-linux
18 18
19mkdir ${HOME}/.config/teams-for-linux 19mkdir ${HOME}/.config/teams-for-linux
20whitelist ${HOME}/.config/teams-for-linux 20allow ${HOME}/.config/teams-for-linux
21 21
22private-bin bash,cut,echo,egrep,grep,head,sed,sh,teams-for-linux,tr,xdg-mime,xdg-open,zsh 22private-bin bash,cut,echo,egrep,grep,head,sed,sh,teams-for-linux,tr,xdg-mime,xdg-open,zsh
23private-etc ca-certificates,crypto-policies,fonts,ld.so.cache,localtime,machine-id,pki,resolv.conf,ssl 23private-etc ca-certificates,crypto-policies,fonts,ld.so.cache,localtime,machine-id,pki,resolv.conf,ssl
diff --git a/etc/profile-m-z/teams.profile b/etc/profile-m-z/teams.profile
index c8d98cbaa..8639edbc8 100644
--- a/etc/profile-m-z/teams.profile
+++ b/etc/profile-m-z/teams.profile
@@ -18,13 +18,13 @@ ignore apparmor
18ignore dbus-user none 18ignore dbus-user none
19ignore dbus-system none 19ignore dbus-system none
20 20
21noblacklist ${HOME}/.config/teams 21nodeny ${HOME}/.config/teams
22noblacklist ${HOME}/.config/Microsoft 22nodeny ${HOME}/.config/Microsoft
23 23
24mkdir ${HOME}/.config/teams 24mkdir ${HOME}/.config/teams
25mkdir ${HOME}/.config/Microsoft 25mkdir ${HOME}/.config/Microsoft
26whitelist ${HOME}/.config/teams 26allow ${HOME}/.config/teams
27whitelist ${HOME}/.config/Microsoft 27allow ${HOME}/.config/Microsoft
28 28
29# Redirect 29# Redirect
30include electron.profile 30include electron.profile
diff --git a/etc/profile-m-z/teamspeak3.profile b/etc/profile-m-z/teamspeak3.profile
index 02a2c8ae4..781a5f4eb 100644
--- a/etc/profile-m-z/teamspeak3.profile
+++ b/etc/profile-m-z/teamspeak3.profile
@@ -6,8 +6,8 @@ include teamspeak3.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.ts3client 9nodeny ${HOME}/.ts3client
10noblacklist ${PATH}/openssl 10nodeny ${PATH}/openssl
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-passwdmgr.inc
17include disable-programs.inc 17include disable-programs.inc
18 18
19mkdir ${HOME}/.ts3client 19mkdir ${HOME}/.ts3client
20whitelist ${DOWNLOADS} 20allow ${DOWNLOADS}
21whitelist ${HOME}/.ts3client 21allow ${HOME}/.ts3client
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-m-z/teeworlds.profile b/etc/profile-m-z/teeworlds.profile
index be01aee12..c9c444ffc 100644
--- a/etc/profile-m-z/teeworlds.profile
+++ b/etc/profile-m-z/teeworlds.profile
@@ -6,7 +6,7 @@ include teeworlds.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.teeworlds 9nodeny ${HOME}/.teeworlds
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.teeworlds 20mkdir ${HOME}/.teeworlds
21whitelist ${HOME}/.teeworlds 21allow ${HOME}/.teeworlds
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/telegram-desktop.profile b/etc/profile-m-z/telegram-desktop.profile
index e0c5aee9e..7463b761f 100644
--- a/etc/profile-m-z/telegram-desktop.profile
+++ b/etc/profile-m-z/telegram-desktop.profile
@@ -2,7 +2,7 @@
2# Description: Official Telegram Desktop client 2# Description: Official Telegram Desktop client
3# This file is overwritten after every install/update 3# This file is overwritten after every install/update
4# Persistent local customizations 4# Persistent local customizations
5include tekegram-desktop.local 5include telegram-desktop.local
6# Persistent global definitions 6# Persistent global definitions
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
diff --git a/etc/profile-m-z/telegram.profile b/etc/profile-m-z/telegram.profile
index 05c621fb2..92689a461 100644
--- a/etc/profile-m-z/telegram.profile
+++ b/etc/profile-m-z/telegram.profile
@@ -5,8 +5,8 @@ include telegram.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.TelegramDesktop 8nodeny ${HOME}/.TelegramDesktop
9noblacklist ${HOME}/.local/share/TelegramDesktop 9nodeny ${HOME}/.local/share/TelegramDesktop
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -19,9 +19,9 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.TelegramDesktop 20mkdir ${HOME}/.TelegramDesktop
21mkdir ${HOME}/.local/share/TelegramDesktop 21mkdir ${HOME}/.local/share/TelegramDesktop
22whitelist ${HOME}/.TelegramDesktop 22allow ${HOME}/.TelegramDesktop
23whitelist ${HOME}/.local/share/TelegramDesktop 23allow ${HOME}/.local/share/TelegramDesktop
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
@@ -39,7 +39,6 @@ protocol unix,inet,inet6,netlink
39seccomp 39seccomp
40seccomp.block-secondary 40seccomp.block-secondary
41shell none 41shell none
42tracelog
43 42
44disable-mnt 43disable-mnt
45#private-bin telegram,Telegram,telegram-desktop 44#private-bin telegram,Telegram,telegram-desktop
diff --git a/etc/profile-m-z/terasology.profile b/etc/profile-m-z/terasology.profile
index ce2ca1d17..b2f98fbac 100644
--- a/etc/profile-m-z/terasology.profile
+++ b/etc/profile-m-z/terasology.profile
@@ -7,7 +7,7 @@ include globals.local
7 7
8ignore noexec /tmp 8ignore noexec /tmp
9 9
10noblacklist ${HOME}/.local/share/terasology 10nodeny ${HOME}/.local/share/terasology
11 11
12# Allow java (blacklisted by disable-devel.inc) 12# Allow java (blacklisted by disable-devel.inc)
13include allow-java.inc 13include allow-java.inc
@@ -21,8 +21,8 @@ include disable-programs.inc
21 21
22mkdir ${HOME}/.java 22mkdir ${HOME}/.java
23mkdir ${HOME}/.local/share/terasology 23mkdir ${HOME}/.local/share/terasology
24whitelist ${HOME}/.java 24allow ${HOME}/.java
25whitelist ${HOME}/.local/share/terasology 25allow ${HOME}/.local/share/terasology
26include whitelist-common.inc 26include whitelist-common.inc
27 27
28caps.drop all 28caps.drop all
diff --git a/etc/profile-m-z/thunderbird.profile b/etc/profile-m-z/thunderbird.profile
index b478fbe1e..a539cadf8 100644
--- a/etc/profile-m-z/thunderbird.profile
+++ b/etc/profile-m-z/thunderbird.profile
@@ -22,14 +22,14 @@ writable-run-user
22#writable-var 22#writable-var
23 23
24# These lines are needed to allow Firefox to load your profile when clicking a link in an email 24# These lines are needed to allow Firefox to load your profile when clicking a link in an email
25noblacklist ${HOME}/.mozilla 25nodeny ${HOME}/.mozilla
26whitelist ${HOME}/.mozilla/firefox/profiles.ini 26allow ${HOME}/.mozilla/firefox/profiles.ini
27read-only ${HOME}/.mozilla/firefox/profiles.ini 27read-only ${HOME}/.mozilla/firefox/profiles.ini
28 28
29noblacklist ${HOME}/.cache/thunderbird 29nodeny ${HOME}/.cache/thunderbird
30noblacklist ${HOME}/.gnupg 30nodeny ${HOME}/.gnupg
31# noblacklist ${HOME}/.icedove 31# noblacklist ${HOME}/.icedove
32noblacklist ${HOME}/.thunderbird 32nodeny ${HOME}/.thunderbird
33 33
34include disable-passwdmgr.inc 34include disable-passwdmgr.inc
35include disable-xdg.inc 35include disable-xdg.inc
@@ -42,15 +42,15 @@ mkdir ${HOME}/.cache/thunderbird
42mkdir ${HOME}/.gnupg 42mkdir ${HOME}/.gnupg
43# mkdir ${HOME}/.icedove 43# mkdir ${HOME}/.icedove
44mkdir ${HOME}/.thunderbird 44mkdir ${HOME}/.thunderbird
45whitelist ${HOME}/.cache/thunderbird 45allow ${HOME}/.cache/thunderbird
46whitelist ${HOME}/.gnupg 46allow ${HOME}/.gnupg
47# whitelist ${HOME}/.icedove 47# whitelist ${HOME}/.icedove
48whitelist ${HOME}/.thunderbird 48allow ${HOME}/.thunderbird
49 49
50whitelist /usr/share/gnupg 50allow /usr/share/gnupg
51whitelist /usr/share/mozilla 51allow /usr/share/mozilla
52whitelist /usr/share/thunderbird 52allow /usr/share/thunderbird
53whitelist /usr/share/webext 53allow /usr/share/webext
54include whitelist-usr-share-common.inc 54include whitelist-usr-share-common.inc
55 55
56# machine-id breaks audio in browsers; enable or put it in your thunderbird.local when sound is not required 56# machine-id breaks audio in browsers; enable or put it in your thunderbird.local when sound is not required
diff --git a/etc/profile-m-z/tilp.profile b/etc/profile-m-z/tilp.profile
index dd4a372c4..b0fa54f08 100644
--- a/etc/profile-m-z/tilp.profile
+++ b/etc/profile-m-z/tilp.profile
@@ -5,7 +5,7 @@ include tilp.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.tilp 8nodeny ${HOME}/.tilp
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-m-z/tin.profile b/etc/profile-m-z/tin.profile
new file mode 100644
index 000000000..3ee696b8b
--- /dev/null
+++ b/etc/profile-m-z/tin.profile
@@ -0,0 +1,69 @@
1# Firejail profile for tin
2# Description: ncurses-based Usenet newsreader
3# This file is overwritten after every install/update
4# Persistent local customizations
5include tin.local
6# Persistent global definitions
7include globals.local
8
9nodeny ${HOME}/.newsrc
10nodeny ${HOME}/.tin
11
12deny /tmp/.X11-unix
13deny ${RUNUSER}
14deny /usr/libexec
15
16include disable-common.inc
17include disable-devel.inc
18include disable-exec.inc
19include disable-interpreters.inc
20include disable-passwdmgr.inc
21include disable-programs.inc
22include disable-shell.inc
23include disable-xdg.inc
24
25mkdir ${HOME}/.tin
26mkfile ${HOME}/.newsrc
27# Note: files/directories directly in ${HOME} can't be whitelisted, as
28# tin saves .newsrc by renaming a temporary file, which is not possible for
29# bind-mounted files.
30#whitelist ${HOME}/.newsrc
31#whitelist ${HOME}/.tin
32#include whitelist-common.inc
33include whitelist-runuser-common.inc
34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc
36
37apparmor
38caps.drop all
39ipc-namespace
40machine-id
41netfilter
42no3d
43nodvd
44nogroups
45noinput
46nonewprivs
47noroot
48nosound
49notv
50nou2f
51novideo
52protocol inet,inet6
53seccomp
54seccomp.block-secondary
55shell none
56tracelog
57
58disable-mnt
59private-bin rtin,tin
60private-cache
61private-dev
62private-etc passwd,resolv.conf,terminfo,tin
63private-lib terminfo
64private-tmp
65
66dbus-user none
67dbus-system none
68
69memory-deny-write-execute
diff --git a/etc/profile-m-z/tmux.profile b/etc/profile-m-z/tmux.profile
index 0139d7515..d2e90e356 100644
--- a/etc/profile-m-z/tmux.profile
+++ b/etc/profile-m-z/tmux.profile
@@ -7,10 +7,10 @@ include tmux.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER} 11deny ${RUNUSER}
12 12
13noblacklist /tmp/tmux-* 13nodeny /tmp/tmux-*
14 14
15# include disable-common.inc 15# include disable-common.inc
16# include disable-devel.inc 16# include disable-devel.inc
diff --git a/etc/profile-m-z/tor-browser-ar.profile b/etc/profile-m-z/tor-browser-ar.profile
index 59f1bc3b1..49158b93e 100644
--- a/etc/profile-m-z/tor-browser-ar.profile
+++ b/etc/profile-m-z/tor-browser-ar.profile
@@ -6,10 +6,10 @@ include tor-browser-ar.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ar 9nodeny ${HOME}/.tor-browser-ar
10 10
11mkdir ${HOME}/.tor-browser-ar 11mkdir ${HOME}/.tor-browser-ar
12whitelist ${HOME}/.tor-browser-ar 12allow ${HOME}/.tor-browser-ar
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-ca.profile b/etc/profile-m-z/tor-browser-ca.profile
index 68577e352..612f8bd7c 100644
--- a/etc/profile-m-z/tor-browser-ca.profile
+++ b/etc/profile-m-z/tor-browser-ca.profile
@@ -6,10 +6,10 @@ include tor-browser-ca.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ca 9nodeny ${HOME}/.tor-browser-ca
10 10
11mkdir ${HOME}/.tor-browser-ca 11mkdir ${HOME}/.tor-browser-ca
12whitelist ${HOME}/.tor-browser-ca 12allow ${HOME}/.tor-browser-ca
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-cs.profile b/etc/profile-m-z/tor-browser-cs.profile
index 33e51fcd0..a400fde05 100644
--- a/etc/profile-m-z/tor-browser-cs.profile
+++ b/etc/profile-m-z/tor-browser-cs.profile
@@ -6,10 +6,10 @@ include tor-browser-cs.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-cs 9nodeny ${HOME}/.tor-browser-cs
10 10
11mkdir ${HOME}/.tor-browser-cs 11mkdir ${HOME}/.tor-browser-cs
12whitelist ${HOME}/.tor-browser-cs 12allow ${HOME}/.tor-browser-cs
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-da.profile b/etc/profile-m-z/tor-browser-da.profile
index 440bb7fc3..9010025e3 100644
--- a/etc/profile-m-z/tor-browser-da.profile
+++ b/etc/profile-m-z/tor-browser-da.profile
@@ -6,10 +6,10 @@ include tor-browser-da.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-da 9nodeny ${HOME}/.tor-browser-da
10 10
11mkdir ${HOME}/.tor-browser-da 11mkdir ${HOME}/.tor-browser-da
12whitelist ${HOME}/.tor-browser-da 12allow ${HOME}/.tor-browser-da
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-de.profile b/etc/profile-m-z/tor-browser-de.profile
index b2b98cf82..cd556c32b 100644
--- a/etc/profile-m-z/tor-browser-de.profile
+++ b/etc/profile-m-z/tor-browser-de.profile
@@ -6,10 +6,10 @@ include tor-browser-de.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-de 9nodeny ${HOME}/.tor-browser-de
10 10
11mkdir ${HOME}/.tor-browser-de 11mkdir ${HOME}/.tor-browser-de
12whitelist ${HOME}/.tor-browser-de 12allow ${HOME}/.tor-browser-de
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-el.profile b/etc/profile-m-z/tor-browser-el.profile
index 626757dd5..ee2b0fea7 100644
--- a/etc/profile-m-z/tor-browser-el.profile
+++ b/etc/profile-m-z/tor-browser-el.profile
@@ -6,10 +6,10 @@ include tor-browser-el.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-el 9nodeny ${HOME}/.tor-browser-el
10 10
11mkdir ${HOME}/.tor-browser-el 11mkdir ${HOME}/.tor-browser-el
12whitelist ${HOME}/.tor-browser-el 12allow ${HOME}/.tor-browser-el
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-en-us.profile b/etc/profile-m-z/tor-browser-en-us.profile
index 15e690748..2be71a5aa 100644
--- a/etc/profile-m-z/tor-browser-en-us.profile
+++ b/etc/profile-m-z/tor-browser-en-us.profile
@@ -6,10 +6,10 @@ include tor-browser-en-us.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-en-us 9nodeny ${HOME}/.tor-browser-en-us
10 10
11mkdir ${HOME}/.tor-browser-en-us 11mkdir ${HOME}/.tor-browser-en-us
12whitelist ${HOME}/.tor-browser-en-us 12allow ${HOME}/.tor-browser-en-us
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-en.profile b/etc/profile-m-z/tor-browser-en.profile
index ef8c1eb8b..633c2f4f9 100644
--- a/etc/profile-m-z/tor-browser-en.profile
+++ b/etc/profile-m-z/tor-browser-en.profile
@@ -6,10 +6,10 @@ include tor-browser-en.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-en 9nodeny ${HOME}/.tor-browser-en
10 10
11mkdir ${HOME}/.tor-browser-en 11mkdir ${HOME}/.tor-browser-en
12whitelist ${HOME}/.tor-browser-en 12allow ${HOME}/.tor-browser-en
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-es-es.profile b/etc/profile-m-z/tor-browser-es-es.profile
index ad734662e..f7c2302a7 100644
--- a/etc/profile-m-z/tor-browser-es-es.profile
+++ b/etc/profile-m-z/tor-browser-es-es.profile
@@ -6,10 +6,10 @@ include tor-browser-es-es.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-es-es 9nodeny ${HOME}/.tor-browser-es-es
10 10
11mkdir ${HOME}/.tor-browser-es-es 11mkdir ${HOME}/.tor-browser-es-es
12whitelist ${HOME}/.tor-browser-es-es 12allow ${HOME}/.tor-browser-es-es
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-es.profile b/etc/profile-m-z/tor-browser-es.profile
index 97d8d8577..d88dcdec1 100644
--- a/etc/profile-m-z/tor-browser-es.profile
+++ b/etc/profile-m-z/tor-browser-es.profile
@@ -6,10 +6,10 @@ include tor-browser-es.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-es 9nodeny ${HOME}/.tor-browser-es
10 10
11mkdir ${HOME}/.tor-browser-es 11mkdir ${HOME}/.tor-browser-es
12whitelist ${HOME}/.tor-browser-es 12allow ${HOME}/.tor-browser-es
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-fa.profile b/etc/profile-m-z/tor-browser-fa.profile
index 095be69e4..3f7074fdb 100644
--- a/etc/profile-m-z/tor-browser-fa.profile
+++ b/etc/profile-m-z/tor-browser-fa.profile
@@ -6,10 +6,10 @@ include tor-browser-fa.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-fa 9nodeny ${HOME}/.tor-browser-fa
10 10
11mkdir ${HOME}/.tor-browser-fa 11mkdir ${HOME}/.tor-browser-fa
12whitelist ${HOME}/.tor-browser-fa 12allow ${HOME}/.tor-browser-fa
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-fr.profile b/etc/profile-m-z/tor-browser-fr.profile
index 37f61fc3a..ef14f44a2 100644
--- a/etc/profile-m-z/tor-browser-fr.profile
+++ b/etc/profile-m-z/tor-browser-fr.profile
@@ -6,10 +6,10 @@ include tor-browser-fr.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-fr 9nodeny ${HOME}/.tor-browser-fr
10 10
11mkdir ${HOME}/.tor-browser-fr 11mkdir ${HOME}/.tor-browser-fr
12whitelist ${HOME}/.tor-browser-fr 12allow ${HOME}/.tor-browser-fr
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-ga-ie.profile b/etc/profile-m-z/tor-browser-ga-ie.profile
index ab7141fc4..06baaf34f 100644
--- a/etc/profile-m-z/tor-browser-ga-ie.profile
+++ b/etc/profile-m-z/tor-browser-ga-ie.profile
@@ -6,10 +6,10 @@ include tor-browser-ga-ie.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ga-ie 9nodeny ${HOME}/.tor-browser-ga-ie
10 10
11mkdir ${HOME}/.tor-browser-ga-ie 11mkdir ${HOME}/.tor-browser-ga-ie
12whitelist ${HOME}/.tor-browser-ga-ie 12allow ${HOME}/.tor-browser-ga-ie
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-he.profile b/etc/profile-m-z/tor-browser-he.profile
index ae56f3b7f..57588ffc7 100644
--- a/etc/profile-m-z/tor-browser-he.profile
+++ b/etc/profile-m-z/tor-browser-he.profile
@@ -6,10 +6,10 @@ include tor-browser-he.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-he 9nodeny ${HOME}/.tor-browser-he
10 10
11mkdir ${HOME}/.tor-browser-he 11mkdir ${HOME}/.tor-browser-he
12whitelist ${HOME}/.tor-browser-he 12allow ${HOME}/.tor-browser-he
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-hu.profile b/etc/profile-m-z/tor-browser-hu.profile
index 65cd18ac8..a10b66a24 100644
--- a/etc/profile-m-z/tor-browser-hu.profile
+++ b/etc/profile-m-z/tor-browser-hu.profile
@@ -6,10 +6,10 @@ include tor-browser-hu.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-hu 9nodeny ${HOME}/.tor-browser-hu
10 10
11mkdir ${HOME}/.tor-browser-hu 11mkdir ${HOME}/.tor-browser-hu
12whitelist ${HOME}/.tor-browser-hu 12allow ${HOME}/.tor-browser-hu
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-id.profile b/etc/profile-m-z/tor-browser-id.profile
index 57fe09f47..fcdb822cd 100644
--- a/etc/profile-m-z/tor-browser-id.profile
+++ b/etc/profile-m-z/tor-browser-id.profile
@@ -6,10 +6,10 @@ include tor-browser-id.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-id 9nodeny ${HOME}/.tor-browser-id
10 10
11mkdir ${HOME}/.tor-browser-id 11mkdir ${HOME}/.tor-browser-id
12whitelist ${HOME}/.tor-browser-id 12allow ${HOME}/.tor-browser-id
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-is.profile b/etc/profile-m-z/tor-browser-is.profile
index 54f1df42d..45b47c108 100644
--- a/etc/profile-m-z/tor-browser-is.profile
+++ b/etc/profile-m-z/tor-browser-is.profile
@@ -6,10 +6,10 @@ include tor-browser-is.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-is 9nodeny ${HOME}/.tor-browser-is
10 10
11mkdir ${HOME}/.tor-browser-is 11mkdir ${HOME}/.tor-browser-is
12whitelist ${HOME}/.tor-browser-is 12allow ${HOME}/.tor-browser-is
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-it.profile b/etc/profile-m-z/tor-browser-it.profile
index a7d46e875..b5a2f7c13 100644
--- a/etc/profile-m-z/tor-browser-it.profile
+++ b/etc/profile-m-z/tor-browser-it.profile
@@ -6,10 +6,10 @@ include tor-browser-it.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-it 9nodeny ${HOME}/.tor-browser-it
10 10
11mkdir ${HOME}/.tor-browser-it 11mkdir ${HOME}/.tor-browser-it
12whitelist ${HOME}/.tor-browser-it 12allow ${HOME}/.tor-browser-it
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-ja.profile b/etc/profile-m-z/tor-browser-ja.profile
index b89016141..e1f023bd4 100644
--- a/etc/profile-m-z/tor-browser-ja.profile
+++ b/etc/profile-m-z/tor-browser-ja.profile
@@ -6,10 +6,10 @@ include tor-browser-ja.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ja 9nodeny ${HOME}/.tor-browser-ja
10 10
11mkdir ${HOME}/.tor-browser-ja 11mkdir ${HOME}/.tor-browser-ja
12whitelist ${HOME}/.tor-browser-ja 12allow ${HOME}/.tor-browser-ja
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-ka.profile b/etc/profile-m-z/tor-browser-ka.profile
index b57cf10de..17930b58e 100644
--- a/etc/profile-m-z/tor-browser-ka.profile
+++ b/etc/profile-m-z/tor-browser-ka.profile
@@ -6,10 +6,10 @@ include tor-browser-ka.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ka 9nodeny ${HOME}/.tor-browser-ka
10 10
11mkdir ${HOME}/.tor-browser-ka 11mkdir ${HOME}/.tor-browser-ka
12whitelist ${HOME}/.tor-browser-ka 12allow ${HOME}/.tor-browser-ka
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-ko.profile b/etc/profile-m-z/tor-browser-ko.profile
index a9bedb6fd..b33d1edb4 100644
--- a/etc/profile-m-z/tor-browser-ko.profile
+++ b/etc/profile-m-z/tor-browser-ko.profile
@@ -6,10 +6,10 @@ include tor-browser-ko.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ko 9nodeny ${HOME}/.tor-browser-ko
10 10
11mkdir ${HOME}/.tor-browser-ko 11mkdir ${HOME}/.tor-browser-ko
12whitelist ${HOME}/.tor-browser-ko 12allow ${HOME}/.tor-browser-ko
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-nb.profile b/etc/profile-m-z/tor-browser-nb.profile
index fbe9f92bd..b462eb9ac 100644
--- a/etc/profile-m-z/tor-browser-nb.profile
+++ b/etc/profile-m-z/tor-browser-nb.profile
@@ -6,10 +6,10 @@ include tor-browser-nb.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-nb 9nodeny ${HOME}/.tor-browser-nb
10 10
11mkdir ${HOME}/.tor-browser-nb 11mkdir ${HOME}/.tor-browser-nb
12whitelist ${HOME}/.tor-browser-nb 12allow ${HOME}/.tor-browser-nb
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-nl.profile b/etc/profile-m-z/tor-browser-nl.profile
index 678ac1713..0225eb6fd 100644
--- a/etc/profile-m-z/tor-browser-nl.profile
+++ b/etc/profile-m-z/tor-browser-nl.profile
@@ -6,10 +6,10 @@ include tor-browser-nl.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-nl 9nodeny ${HOME}/.tor-browser-nl
10 10
11mkdir ${HOME}/.tor-browser-nl 11mkdir ${HOME}/.tor-browser-nl
12whitelist ${HOME}/.tor-browser-nl 12allow ${HOME}/.tor-browser-nl
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-pl.profile b/etc/profile-m-z/tor-browser-pl.profile
index 25d473b1a..75604b458 100644
--- a/etc/profile-m-z/tor-browser-pl.profile
+++ b/etc/profile-m-z/tor-browser-pl.profile
@@ -6,10 +6,10 @@ include tor-browser-pl.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-pl 9nodeny ${HOME}/.tor-browser-pl
10 10
11mkdir ${HOME}/.tor-browser-pl 11mkdir ${HOME}/.tor-browser-pl
12whitelist ${HOME}/.tor-browser-pl 12allow ${HOME}/.tor-browser-pl
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-pt-br.profile b/etc/profile-m-z/tor-browser-pt-br.profile
index 55adbd5ea..4d50d8034 100644
--- a/etc/profile-m-z/tor-browser-pt-br.profile
+++ b/etc/profile-m-z/tor-browser-pt-br.profile
@@ -6,10 +6,10 @@ include tor-browser-pt-br.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-pt-br 9nodeny ${HOME}/.tor-browser-pt-br
10 10
11mkdir ${HOME}/.tor-browser-pt-br 11mkdir ${HOME}/.tor-browser-pt-br
12whitelist ${HOME}/.tor-browser-pt-br 12allow ${HOME}/.tor-browser-pt-br
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-ru.profile b/etc/profile-m-z/tor-browser-ru.profile
index aea13be9d..4bca3c46f 100644
--- a/etc/profile-m-z/tor-browser-ru.profile
+++ b/etc/profile-m-z/tor-browser-ru.profile
@@ -6,10 +6,10 @@ include tor-browser-ru.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-ru 9nodeny ${HOME}/.tor-browser-ru
10 10
11mkdir ${HOME}/.tor-browser-ru 11mkdir ${HOME}/.tor-browser-ru
12whitelist ${HOME}/.tor-browser-ru 12allow ${HOME}/.tor-browser-ru
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-sv-se.profile b/etc/profile-m-z/tor-browser-sv-se.profile
index b7882bd04..1b319dc43 100644
--- a/etc/profile-m-z/tor-browser-sv-se.profile
+++ b/etc/profile-m-z/tor-browser-sv-se.profile
@@ -6,10 +6,10 @@ include tor-browser-sv-se.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-sv-se 9nodeny ${HOME}/.tor-browser-sv-se
10 10
11mkdir ${HOME}/.tor-browser-sv-se 11mkdir ${HOME}/.tor-browser-sv-se
12whitelist ${HOME}/.tor-browser-sv-se 12allow ${HOME}/.tor-browser-sv-se
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-tr.profile b/etc/profile-m-z/tor-browser-tr.profile
index c52e8c4c4..0775a0c08 100644
--- a/etc/profile-m-z/tor-browser-tr.profile
+++ b/etc/profile-m-z/tor-browser-tr.profile
@@ -6,10 +6,10 @@ include tor-browser-tr.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-tr 9nodeny ${HOME}/.tor-browser-tr
10 10
11mkdir ${HOME}/.tor-browser-tr 11mkdir ${HOME}/.tor-browser-tr
12whitelist ${HOME}/.tor-browser-tr 12allow ${HOME}/.tor-browser-tr
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-vi.profile b/etc/profile-m-z/tor-browser-vi.profile
index d5bf76655..c4d5a7a76 100644
--- a/etc/profile-m-z/tor-browser-vi.profile
+++ b/etc/profile-m-z/tor-browser-vi.profile
@@ -6,10 +6,10 @@ include tor-browser-vi.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-vi 9nodeny ${HOME}/.tor-browser-vi
10 10
11mkdir ${HOME}/.tor-browser-vi 11mkdir ${HOME}/.tor-browser-vi
12whitelist ${HOME}/.tor-browser-vi 12allow ${HOME}/.tor-browser-vi
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-zh-cn.profile b/etc/profile-m-z/tor-browser-zh-cn.profile
index 6c8925a4a..4cd287e5d 100644
--- a/etc/profile-m-z/tor-browser-zh-cn.profile
+++ b/etc/profile-m-z/tor-browser-zh-cn.profile
@@ -6,10 +6,10 @@ include tor-browser-zh-cn.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-zh-cn 9nodeny ${HOME}/.tor-browser-zh-cn
10 10
11mkdir ${HOME}/.tor-browser-zh-cn 11mkdir ${HOME}/.tor-browser-zh-cn
12whitelist ${HOME}/.tor-browser-zh-cn 12allow ${HOME}/.tor-browser-zh-cn
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser-zh-tw.profile b/etc/profile-m-z/tor-browser-zh-tw.profile
index 141a6701e..c75baf522 100644
--- a/etc/profile-m-z/tor-browser-zh-tw.profile
+++ b/etc/profile-m-z/tor-browser-zh-tw.profile
@@ -6,10 +6,10 @@ include tor-browser-zh-tw.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser-zh-tw 9nodeny ${HOME}/.tor-browser-zh-tw
10 10
11mkdir ${HOME}/.tor-browser-zh-tw 11mkdir ${HOME}/.tor-browser-zh-tw
12whitelist ${HOME}/.tor-browser-zh-tw 12allow ${HOME}/.tor-browser-zh-tw
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser.profile b/etc/profile-m-z/tor-browser.profile
index 76a0e1fa5..8a2dbda53 100644
--- a/etc/profile-m-z/tor-browser.profile
+++ b/etc/profile-m-z/tor-browser.profile
@@ -6,10 +6,10 @@ include tor-browser.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser 9nodeny ${HOME}/.tor-browser
10 10
11mkdir ${HOME}/.tor-browser 11mkdir ${HOME}/.tor-browser
12whitelist ${HOME}/.tor-browser 12allow ${HOME}/.tor-browser
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ar.profile b/etc/profile-m-z/tor-browser_ar.profile
index d811b7549..90b5a0960 100644
--- a/etc/profile-m-z/tor-browser_ar.profile
+++ b/etc/profile-m-z/tor-browser_ar.profile
@@ -6,10 +6,10 @@ include tor-browser_ar.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ar 9nodeny ${HOME}/.tor-browser_ar
10 10
11mkdir ${HOME}/.tor-browser_ar 11mkdir ${HOME}/.tor-browser_ar
12whitelist ${HOME}/.tor-browser_ar 12allow ${HOME}/.tor-browser_ar
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ca.profile b/etc/profile-m-z/tor-browser_ca.profile
index 8bf1f7cd4..a04207ccd 100644
--- a/etc/profile-m-z/tor-browser_ca.profile
+++ b/etc/profile-m-z/tor-browser_ca.profile
@@ -6,10 +6,10 @@ include tor-browser_ca.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ca 9nodeny ${HOME}/.tor-browser_ca
10 10
11mkdir ${HOME}/.tor-browser_ca 11mkdir ${HOME}/.tor-browser_ca
12whitelist ${HOME}/.tor-browser_ca 12allow ${HOME}/.tor-browser_ca
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_cs.profile b/etc/profile-m-z/tor-browser_cs.profile
index b41107bf1..b99ad14a8 100644
--- a/etc/profile-m-z/tor-browser_cs.profile
+++ b/etc/profile-m-z/tor-browser_cs.profile
@@ -6,10 +6,10 @@ include tor-browser_cs.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_cs 9nodeny ${HOME}/.tor-browser_cs
10 10
11mkdir ${HOME}/.tor-browser_cs 11mkdir ${HOME}/.tor-browser_cs
12whitelist ${HOME}/.tor-browser_cs 12allow ${HOME}/.tor-browser_cs
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_da.profile b/etc/profile-m-z/tor-browser_da.profile
index cbec4ee2e..545e53b7e 100644
--- a/etc/profile-m-z/tor-browser_da.profile
+++ b/etc/profile-m-z/tor-browser_da.profile
@@ -6,10 +6,10 @@ include tor-browser_da.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_da 9nodeny ${HOME}/.tor-browser_da
10 10
11mkdir ${HOME}/.tor-browser_da 11mkdir ${HOME}/.tor-browser_da
12whitelist ${HOME}/.tor-browser_da 12allow ${HOME}/.tor-browser_da
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_de.profile b/etc/profile-m-z/tor-browser_de.profile
index ea26765d3..545f82f72 100644
--- a/etc/profile-m-z/tor-browser_de.profile
+++ b/etc/profile-m-z/tor-browser_de.profile
@@ -6,10 +6,10 @@ include tor-browser_de.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_de 9nodeny ${HOME}/.tor-browser_de
10 10
11mkdir ${HOME}/.tor-browser_de 11mkdir ${HOME}/.tor-browser_de
12whitelist ${HOME}/.tor-browser_de 12allow ${HOME}/.tor-browser_de
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_el.profile b/etc/profile-m-z/tor-browser_el.profile
index ff57a8722..3120b1701 100644
--- a/etc/profile-m-z/tor-browser_el.profile
+++ b/etc/profile-m-z/tor-browser_el.profile
@@ -6,10 +6,10 @@ include tor-browser_el.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_el 9nodeny ${HOME}/.tor-browser_el
10 10
11mkdir ${HOME}/.tor-browser_el 11mkdir ${HOME}/.tor-browser_el
12whitelist ${HOME}/.tor-browser_el 12allow ${HOME}/.tor-browser_el
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_en-US.profile b/etc/profile-m-z/tor-browser_en-US.profile
index 18c92b638..6719ac057 100644
--- a/etc/profile-m-z/tor-browser_en-US.profile
+++ b/etc/profile-m-z/tor-browser_en-US.profile
@@ -6,10 +6,10 @@ include tor-browser_en-US.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_en-US 9nodeny ${HOME}/.tor-browser_en-US
10 10
11mkdir ${HOME}/.tor-browser_en-US 11mkdir ${HOME}/.tor-browser_en-US
12whitelist ${HOME}/.tor-browser_en-US 12allow ${HOME}/.tor-browser_en-US
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_en.profile b/etc/profile-m-z/tor-browser_en.profile
index ebba83cc4..4cbd37109 100644
--- a/etc/profile-m-z/tor-browser_en.profile
+++ b/etc/profile-m-z/tor-browser_en.profile
@@ -6,10 +6,10 @@ include tor-browser_en.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_en 9nodeny ${HOME}/.tor-browser_en
10 10
11mkdir ${HOME}/.tor-browser_en 11mkdir ${HOME}/.tor-browser_en
12whitelist ${HOME}/.tor-browser_en 12allow ${HOME}/.tor-browser_en
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_es-ES.profile b/etc/profile-m-z/tor-browser_es-ES.profile
index aecab38d5..6c8a5987c 100644
--- a/etc/profile-m-z/tor-browser_es-ES.profile
+++ b/etc/profile-m-z/tor-browser_es-ES.profile
@@ -6,10 +6,10 @@ include tor-browser_es-ES.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_es-ES 9nodeny ${HOME}/.tor-browser_es-ES
10 10
11mkdir ${HOME}/.tor-browser_es-ES 11mkdir ${HOME}/.tor-browser_es-ES
12whitelist ${HOME}/.tor-browser_es-ES 12allow ${HOME}/.tor-browser_es-ES
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_es.profile b/etc/profile-m-z/tor-browser_es.profile
index e19e9b5e6..7d358b7ca 100644
--- a/etc/profile-m-z/tor-browser_es.profile
+++ b/etc/profile-m-z/tor-browser_es.profile
@@ -6,10 +6,10 @@ include tor-browser_es.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_es 9nodeny ${HOME}/.tor-browser_es
10 10
11mkdir ${HOME}/.tor-browser_es 11mkdir ${HOME}/.tor-browser_es
12whitelist ${HOME}/.tor-browser_es 12allow ${HOME}/.tor-browser_es
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_fa.profile b/etc/profile-m-z/tor-browser_fa.profile
index 68414c277..fc4285c5d 100644
--- a/etc/profile-m-z/tor-browser_fa.profile
+++ b/etc/profile-m-z/tor-browser_fa.profile
@@ -6,10 +6,10 @@ include tor-browser_fa.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_fa 9nodeny ${HOME}/.tor-browser_fa
10 10
11mkdir ${HOME}/.tor-browser_fa 11mkdir ${HOME}/.tor-browser_fa
12whitelist ${HOME}/.tor-browser_fa 12allow ${HOME}/.tor-browser_fa
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_fr.profile b/etc/profile-m-z/tor-browser_fr.profile
index 0a8bb30b7..2d0c0ff1f 100644
--- a/etc/profile-m-z/tor-browser_fr.profile
+++ b/etc/profile-m-z/tor-browser_fr.profile
@@ -6,10 +6,10 @@ include tor-browser_fr.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_fr 9nodeny ${HOME}/.tor-browser_fr
10 10
11mkdir ${HOME}/.tor-browser_fr 11mkdir ${HOME}/.tor-browser_fr
12whitelist ${HOME}/.tor-browser_fr 12allow ${HOME}/.tor-browser_fr
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ga-IE.profile b/etc/profile-m-z/tor-browser_ga-IE.profile
index 12354b900..2880e1e2a 100644
--- a/etc/profile-m-z/tor-browser_ga-IE.profile
+++ b/etc/profile-m-z/tor-browser_ga-IE.profile
@@ -6,10 +6,10 @@ include tor-browser_ga-IE.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ga-IE 9nodeny ${HOME}/.tor-browser_ga-IE
10 10
11mkdir ${HOME}/.tor-browser_ga-IE 11mkdir ${HOME}/.tor-browser_ga-IE
12whitelist ${HOME}/.tor-browser_ga-IE 12allow ${HOME}/.tor-browser_ga-IE
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_he.profile b/etc/profile-m-z/tor-browser_he.profile
index 19cbb0809..ac6993019 100644
--- a/etc/profile-m-z/tor-browser_he.profile
+++ b/etc/profile-m-z/tor-browser_he.profile
@@ -6,10 +6,10 @@ include tor-browser_he.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_he 9nodeny ${HOME}/.tor-browser_he
10 10
11mkdir ${HOME}/.tor-browser_he 11mkdir ${HOME}/.tor-browser_he
12whitelist ${HOME}/.tor-browser_he 12allow ${HOME}/.tor-browser_he
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_hu.profile b/etc/profile-m-z/tor-browser_hu.profile
index 62b55e170..6877a6be4 100644
--- a/etc/profile-m-z/tor-browser_hu.profile
+++ b/etc/profile-m-z/tor-browser_hu.profile
@@ -6,10 +6,10 @@ include tor-browser_hu.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_hu 9nodeny ${HOME}/.tor-browser_hu
10 10
11mkdir ${HOME}/.tor-browser_hu 11mkdir ${HOME}/.tor-browser_hu
12whitelist ${HOME}/.tor-browser_hu 12allow ${HOME}/.tor-browser_hu
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_id.profile b/etc/profile-m-z/tor-browser_id.profile
index 2970a7747..5f5601f74 100644
--- a/etc/profile-m-z/tor-browser_id.profile
+++ b/etc/profile-m-z/tor-browser_id.profile
@@ -6,10 +6,10 @@ include tor-browser_id.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_id 9nodeny ${HOME}/.tor-browser_id
10 10
11mkdir ${HOME}/.tor-browser_id 11mkdir ${HOME}/.tor-browser_id
12whitelist ${HOME}/.tor-browser_id 12allow ${HOME}/.tor-browser_id
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_is.profile b/etc/profile-m-z/tor-browser_is.profile
index f922c7644..f0814d16e 100644
--- a/etc/profile-m-z/tor-browser_is.profile
+++ b/etc/profile-m-z/tor-browser_is.profile
@@ -6,10 +6,10 @@ include tor-browser_is.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_is 9nodeny ${HOME}/.tor-browser_is
10 10
11mkdir ${HOME}/.tor-browser_is 11mkdir ${HOME}/.tor-browser_is
12whitelist ${HOME}/.tor-browser_is 12allow ${HOME}/.tor-browser_is
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_it.profile b/etc/profile-m-z/tor-browser_it.profile
index 406901759..fa01f6bca 100644
--- a/etc/profile-m-z/tor-browser_it.profile
+++ b/etc/profile-m-z/tor-browser_it.profile
@@ -6,10 +6,10 @@ include tor-browser_it.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_it 9nodeny ${HOME}/.tor-browser_it
10 10
11mkdir ${HOME}/.tor-browser_it 11mkdir ${HOME}/.tor-browser_it
12whitelist ${HOME}/.tor-browser_it 12allow ${HOME}/.tor-browser_it
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ja.profile b/etc/profile-m-z/tor-browser_ja.profile
index 8f9d8d751..dde107dd3 100644
--- a/etc/profile-m-z/tor-browser_ja.profile
+++ b/etc/profile-m-z/tor-browser_ja.profile
@@ -6,10 +6,10 @@ include tor-browser_ja.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ja 9nodeny ${HOME}/.tor-browser_ja
10 10
11mkdir ${HOME}/.tor-browser_ja 11mkdir ${HOME}/.tor-browser_ja
12whitelist ${HOME}/.tor-browser_ja 12allow ${HOME}/.tor-browser_ja
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ka.profile b/etc/profile-m-z/tor-browser_ka.profile
index 4de4135e1..7de4dff65 100644
--- a/etc/profile-m-z/tor-browser_ka.profile
+++ b/etc/profile-m-z/tor-browser_ka.profile
@@ -6,10 +6,10 @@ include tor-browser_ka.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ka 9nodeny ${HOME}/.tor-browser_ka
10 10
11mkdir ${HOME}/.tor-browser_ka 11mkdir ${HOME}/.tor-browser_ka
12whitelist ${HOME}/.tor-browser_ka 12allow ${HOME}/.tor-browser_ka
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ko.profile b/etc/profile-m-z/tor-browser_ko.profile
index 125c733ce..7e3ceb4d9 100644
--- a/etc/profile-m-z/tor-browser_ko.profile
+++ b/etc/profile-m-z/tor-browser_ko.profile
@@ -6,10 +6,10 @@ include tor-browser_ko.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ko 9nodeny ${HOME}/.tor-browser_ko
10 10
11mkdir ${HOME}/.tor-browser_ko 11mkdir ${HOME}/.tor-browser_ko
12whitelist ${HOME}/.tor-browser_ko 12allow ${HOME}/.tor-browser_ko
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_nb.profile b/etc/profile-m-z/tor-browser_nb.profile
index dc6ac876b..c11001960 100644
--- a/etc/profile-m-z/tor-browser_nb.profile
+++ b/etc/profile-m-z/tor-browser_nb.profile
@@ -6,10 +6,10 @@ include tor-browser_nb.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_nb 9nodeny ${HOME}/.tor-browser_nb
10 10
11mkdir ${HOME}/.tor-browser_nb 11mkdir ${HOME}/.tor-browser_nb
12whitelist ${HOME}/.tor-browser_nb 12allow ${HOME}/.tor-browser_nb
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_nl.profile b/etc/profile-m-z/tor-browser_nl.profile
index 2a3a5b519..2d1044f9d 100644
--- a/etc/profile-m-z/tor-browser_nl.profile
+++ b/etc/profile-m-z/tor-browser_nl.profile
@@ -6,10 +6,10 @@ include tor-browser_nl.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_nl 9nodeny ${HOME}/.tor-browser_nl
10 10
11mkdir ${HOME}/.tor-browser_nl 11mkdir ${HOME}/.tor-browser_nl
12whitelist ${HOME}/.tor-browser_nl 12allow ${HOME}/.tor-browser_nl
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_pl.profile b/etc/profile-m-z/tor-browser_pl.profile
index b7dec32db..2818320a0 100644
--- a/etc/profile-m-z/tor-browser_pl.profile
+++ b/etc/profile-m-z/tor-browser_pl.profile
@@ -6,10 +6,10 @@ include tor-browser_pl.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_pl 9nodeny ${HOME}/.tor-browser_pl
10 10
11mkdir ${HOME}/.tor-browser_pl 11mkdir ${HOME}/.tor-browser_pl
12whitelist ${HOME}/.tor-browser_pl 12allow ${HOME}/.tor-browser_pl
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_pt-BR.profile b/etc/profile-m-z/tor-browser_pt-BR.profile
index 7a7d4726c..8c33e2545 100644
--- a/etc/profile-m-z/tor-browser_pt-BR.profile
+++ b/etc/profile-m-z/tor-browser_pt-BR.profile
@@ -6,10 +6,10 @@ include tor-browser_pt-BR.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_pt-BR 9nodeny ${HOME}/.tor-browser_pt-BR
10 10
11mkdir ${HOME}/.tor-browser_pt-BR 11mkdir ${HOME}/.tor-browser_pt-BR
12whitelist ${HOME}/.tor-browser_pt-BR 12allow ${HOME}/.tor-browser_pt-BR
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_ru.profile b/etc/profile-m-z/tor-browser_ru.profile
index 7d2e6bc97..2553bb031 100644
--- a/etc/profile-m-z/tor-browser_ru.profile
+++ b/etc/profile-m-z/tor-browser_ru.profile
@@ -6,10 +6,10 @@ include tor-browser_ru.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_ru 9nodeny ${HOME}/.tor-browser_ru
10 10
11mkdir ${HOME}/.tor-browser_ru 11mkdir ${HOME}/.tor-browser_ru
12whitelist ${HOME}/.tor-browser_ru 12allow ${HOME}/.tor-browser_ru
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_sv-SE.profile b/etc/profile-m-z/tor-browser_sv-SE.profile
index 585925e81..3152cb658 100644
--- a/etc/profile-m-z/tor-browser_sv-SE.profile
+++ b/etc/profile-m-z/tor-browser_sv-SE.profile
@@ -6,10 +6,10 @@ include tor-browser_sv-SE.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_sv-SE 9nodeny ${HOME}/.tor-browser_sv-SE
10 10
11mkdir ${HOME}/.tor-browser_sv-SE 11mkdir ${HOME}/.tor-browser_sv-SE
12whitelist ${HOME}/.tor-browser_sv-SE 12allow ${HOME}/.tor-browser_sv-SE
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_tr.profile b/etc/profile-m-z/tor-browser_tr.profile
index 4b0cc3821..9808d4725 100644
--- a/etc/profile-m-z/tor-browser_tr.profile
+++ b/etc/profile-m-z/tor-browser_tr.profile
@@ -6,10 +6,10 @@ include tor-browser_tr.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_tr 9nodeny ${HOME}/.tor-browser_tr
10 10
11mkdir ${HOME}/.tor-browser_tr 11mkdir ${HOME}/.tor-browser_tr
12whitelist ${HOME}/.tor-browser_tr 12allow ${HOME}/.tor-browser_tr
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_vi.profile b/etc/profile-m-z/tor-browser_vi.profile
index 4dcfbf56d..364fca40b 100644
--- a/etc/profile-m-z/tor-browser_vi.profile
+++ b/etc/profile-m-z/tor-browser_vi.profile
@@ -6,10 +6,10 @@ include tor-browser_vi.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_vi 9nodeny ${HOME}/.tor-browser_vi
10 10
11mkdir ${HOME}/.tor-browser_vi 11mkdir ${HOME}/.tor-browser_vi
12whitelist ${HOME}/.tor-browser_vi 12allow ${HOME}/.tor-browser_vi
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_zh-CN.profile b/etc/profile-m-z/tor-browser_zh-CN.profile
index 1e03b8d6b..193e8a399 100644
--- a/etc/profile-m-z/tor-browser_zh-CN.profile
+++ b/etc/profile-m-z/tor-browser_zh-CN.profile
@@ -6,10 +6,10 @@ include tor-browser_zh-CN.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_zh-CN 9nodeny ${HOME}/.tor-browser_zh-CN
10 10
11mkdir ${HOME}/.tor-browser_zh-CN 11mkdir ${HOME}/.tor-browser_zh-CN
12whitelist ${HOME}/.tor-browser_zh-CN 12allow ${HOME}/.tor-browser_zh-CN
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/tor-browser_zh-TW.profile b/etc/profile-m-z/tor-browser_zh-TW.profile
index a2dcf5cf1..047be9b8e 100644
--- a/etc/profile-m-z/tor-browser_zh-TW.profile
+++ b/etc/profile-m-z/tor-browser_zh-TW.profile
@@ -6,10 +6,10 @@ include tor-browser_zh-TW.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.tor-browser_zh-TW 9nodeny ${HOME}/.tor-browser_zh-TW
10 10
11mkdir ${HOME}/.tor-browser_zh-TW 11mkdir ${HOME}/.tor-browser_zh-TW
12whitelist ${HOME}/.tor-browser_zh-TW 12allow ${HOME}/.tor-browser_zh-TW
13 13
14# Redirect 14# Redirect
15include torbrowser-launcher.profile 15include torbrowser-launcher.profile
diff --git a/etc/profile-m-z/torbrowser-launcher.profile b/etc/profile-m-z/torbrowser-launcher.profile
index 7659ed1e9..65a37db5f 100644
--- a/etc/profile-m-z/torbrowser-launcher.profile
+++ b/etc/profile-m-z/torbrowser-launcher.profile
@@ -8,15 +8,15 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.config/torbrowser 11nodeny ${HOME}/.config/torbrowser
12noblacklist ${HOME}/.local/share/torbrowser 12nodeny ${HOME}/.local/share/torbrowser
13 13
14# Allow python (blacklisted by disable-interpreters.inc) 14# Allow python (blacklisted by disable-interpreters.inc)
15include allow-python2.inc 15include allow-python2.inc
16include allow-python3.inc 16include allow-python3.inc
17 17
18blacklist /opt 18deny /opt
19blacklist /srv 19deny /srv
20 20
21include disable-common.inc 21include disable-common.inc
22include disable-devel.inc 22include disable-devel.inc
@@ -28,10 +28,10 @@ include disable-xdg.inc
28 28
29mkdir ${HOME}/.config/torbrowser 29mkdir ${HOME}/.config/torbrowser
30mkdir ${HOME}/.local/share/torbrowser 30mkdir ${HOME}/.local/share/torbrowser
31whitelist ${DOWNLOADS} 31allow ${DOWNLOADS}
32whitelist ${HOME}/.config/torbrowser 32allow ${HOME}/.config/torbrowser
33whitelist ${HOME}/.local/share/torbrowser 33allow ${HOME}/.local/share/torbrowser
34whitelist /usr/share/torbrowser-launcher 34allow /usr/share/torbrowser-launcher
35include whitelist-common.inc 35include whitelist-common.inc
36include whitelist-var-common.inc 36include whitelist-var-common.inc
37include whitelist-runuser-common.inc 37include whitelist-runuser-common.inc
diff --git a/etc/profile-m-z/torcs.profile b/etc/profile-m-z/torcs.profile
index 0f98a8f64..c5d89c3e3 100644
--- a/etc/profile-m-z/torcs.profile
+++ b/etc/profile-m-z/torcs.profile
@@ -6,7 +6,7 @@ include torcs.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.torcs 9nodeny ${HOME}/.torcs
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,9 +17,9 @@ include disable-programs.inc
17include disable-xdg.inc 17include disable-xdg.inc
18 18
19mkdir ${HOME}/.torcs 19mkdir ${HOME}/.torcs
20whitelist ${HOME}/.torcs 20allow ${HOME}/.torcs
21whitelist /usr/share/games/torcs 21allow /usr/share/games/torcs
22whitelist /var/games/torcs 22allow /var/games/torcs
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/totem.profile b/etc/profile-m-z/totem.profile
index 70d9e0aee..77d3c55f8 100644
--- a/etc/profile-m-z/totem.profile
+++ b/etc/profile-m-z/totem.profile
@@ -13,8 +13,8 @@ include allow-lua.inc
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python3.inc 14include allow-python3.inc
15 15
16noblacklist ${HOME}/.config/totem 16nodeny ${HOME}/.config/totem
17noblacklist ${HOME}/.local/share/totem 17nodeny ${HOME}/.local/share/totem
18 18
19include disable-common.inc 19include disable-common.inc
20include disable-devel.inc 20include disable-devel.inc
@@ -27,9 +27,9 @@ include disable-shell.inc
27read-only ${DESKTOP} 27read-only ${DESKTOP}
28mkdir ${HOME}/.config/totem 28mkdir ${HOME}/.config/totem
29mkdir ${HOME}/.local/share/totem 29mkdir ${HOME}/.local/share/totem
30whitelist ${HOME}/.config/totem 30allow ${HOME}/.config/totem
31whitelist ${HOME}/.local/share/totem 31allow ${HOME}/.local/share/totem
32whitelist /usr/share/totem 32allow /usr/share/totem
33include whitelist-common.inc 33include whitelist-common.inc
34include whitelist-player-common.inc 34include whitelist-player-common.inc
35include whitelist-runuser-common.inc 35include whitelist-runuser-common.inc
diff --git a/etc/profile-m-z/tracker.profile b/etc/profile-m-z/tracker.profile
index 87c5de076..26f4abd0b 100644
--- a/etc/profile-m-z/tracker.profile
+++ b/etc/profile-m-z/tracker.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9# Tracker is started by systemd on most systems. Therefore it is not firejailed by default 9# Tracker is started by systemd on most systems. Therefore it is not firejailed by default
10 10
11blacklist /tmp/.X11-unix 11deny /tmp/.X11-unix
12blacklist ${RUNUSER}/wayland-* 12deny ${RUNUSER}/wayland-*
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
diff --git a/etc/profile-m-z/transgui.profile b/etc/profile-m-z/transgui.profile
index ea118a9f0..d5920e2a2 100644
--- a/etc/profile-m-z/transgui.profile
+++ b/etc/profile-m-z/transgui.profile
@@ -6,7 +6,7 @@ include transgui.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/transgui 9nodeny ${HOME}/.config/transgui
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/transgui 20mkdir ${HOME}/.config/transgui
21whitelist ${HOME}/.config/transgui 21allow ${HOME}/.config/transgui
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/transmission-common.profile b/etc/profile-m-z/transmission-common.profile
index 82671b709..5c2cf9d9a 100644
--- a/etc/profile-m-z/transmission-common.profile
+++ b/etc/profile-m-z/transmission-common.profile
@@ -7,8 +7,8 @@ include transmission-common.local
7# added by caller profile 7# added by caller profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.cache/transmission 10nodeny ${HOME}/.cache/transmission
11noblacklist ${HOME}/.config/transmission 11nodeny ${HOME}/.config/transmission
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,9 +19,9 @@ include disable-programs.inc
19 19
20mkdir ${HOME}/.cache/transmission 20mkdir ${HOME}/.cache/transmission
21mkdir ${HOME}/.config/transmission 21mkdir ${HOME}/.config/transmission
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist ${HOME}/.cache/transmission 23allow ${HOME}/.cache/transmission
24whitelist ${HOME}/.config/transmission 24allow ${HOME}/.config/transmission
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
diff --git a/etc/profile-m-z/transmission-daemon.profile b/etc/profile-m-z/transmission-daemon.profile
index 348d3cb80..9f0c464fc 100644
--- a/etc/profile-m-z/transmission-daemon.profile
+++ b/etc/profile-m-z/transmission-daemon.profile
@@ -10,8 +10,8 @@ include globals.local
10ignore caps.drop all 10ignore caps.drop all
11 11
12mkdir ${HOME}/.config/transmission-daemon 12mkdir ${HOME}/.config/transmission-daemon
13whitelist ${HOME}/.config/transmission-daemon 13allow ${HOME}/.config/transmission-daemon
14whitelist /var/lib/transmission 14allow /var/lib/transmission
15 15
16caps.keep ipc_lock,net_bind_service,setgid,setuid,sys_chroot 16caps.keep ipc_lock,net_bind_service,setgid,setuid,sys_chroot
17protocol packet 17protocol packet
diff --git a/etc/profile-m-z/transmission-remote-gtk.profile b/etc/profile-m-z/transmission-remote-gtk.profile
index a6400e2c0..7c8eddcbc 100644
--- a/etc/profile-m-z/transmission-remote-gtk.profile
+++ b/etc/profile-m-z/transmission-remote-gtk.profile
@@ -7,10 +7,10 @@ include transmission-remote-gtk.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.config/transmission-remote-gtk 10nodeny ${HOME}/.config/transmission-remote-gtk
11 11
12mkdir ${HOME}/.config/transmission-remote-gtk 12mkdir ${HOME}/.config/transmission-remote-gtk
13whitelist ${HOME}/.config/transmission-remote-gtk 13allow ${HOME}/.config/transmission-remote-gtk
14 14
15private-etc fonts,hostname,hosts,resolv.conf 15private-etc fonts,hostname,hosts,resolv.conf
16# Problems with private-lib (see issue #2889) 16# Problems with private-lib (see issue #2889)
diff --git a/etc/profile-m-z/tremulous.profile b/etc/profile-m-z/tremulous.profile
index aba563fac..c2797ddaa 100644
--- a/etc/profile-m-z/tremulous.profile
+++ b/etc/profile-m-z/tremulous.profile
@@ -6,7 +6,7 @@ include tremulous.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.tremulous 9nodeny ${HOME}/.tremulous
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.tremulous 20mkdir ${HOME}/.tremulous
21whitelist ${HOME}/.tremulous 21allow ${HOME}/.tremulous
22whitelist /usr/share/tremulous 22allow /usr/share/tremulous
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-runuser-common.inc 24include whitelist-runuser-common.inc
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/trojita.profile b/etc/profile-m-z/trojita.profile
index 2d95081f6..95f39b35d 100644
--- a/etc/profile-m-z/trojita.profile
+++ b/etc/profile-m-z/trojita.profile
@@ -6,10 +6,10 @@ include trojita.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.abook 9nodeny ${HOME}/.abook
10noblacklist ${HOME}/.mozilla 10nodeny ${HOME}/.mozilla
11noblacklist ${HOME}/.cache/flaska.net/trojita 11nodeny ${HOME}/.cache/flaska.net/trojita
12noblacklist ${HOME}/.config/flaska.net 12nodeny ${HOME}/.config/flaska.net
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -23,10 +23,10 @@ include disable-xdg.inc
23mkdir ${HOME}/.abook 23mkdir ${HOME}/.abook
24mkdir ${HOME}/.cache/flaska.net/trojita 24mkdir ${HOME}/.cache/flaska.net/trojita
25mkdir ${HOME}/.config/flaska.net 25mkdir ${HOME}/.config/flaska.net
26whitelist ${HOME}/.abook 26allow ${HOME}/.abook
27whitelist ${HOME}/.mozilla/firefox/profiles.ini 27allow ${HOME}/.mozilla/firefox/profiles.ini
28whitelist ${HOME}/.cache/flaska.net/trojita 28allow ${HOME}/.cache/flaska.net/trojita
29whitelist ${HOME}/.config/flaska.net 29allow ${HOME}/.config/flaska.net
30include whitelist-common.inc 30include whitelist-common.inc
31include whitelist-runuser-common.inc 31include whitelist-runuser-common.inc
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/truecraft.profile b/etc/profile-m-z/truecraft.profile
index 749626475..76f289a27 100644
--- a/etc/profile-m-z/truecraft.profile
+++ b/etc/profile-m-z/truecraft.profile
@@ -5,8 +5,8 @@ include truecraft.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/mono 8nodeny ${HOME}/.config/mono
9noblacklist ${HOME}/.config/truecraft 9nodeny ${HOME}/.config/truecraft
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17 17
18mkdir ${HOME}/.config/mono 18mkdir ${HOME}/.config/mono
19mkdir ${HOME}/.config/truecraft 19mkdir ${HOME}/.config/truecraft
20whitelist ${HOME}/.config/mono 20allow ${HOME}/.config/mono
21whitelist ${HOME}/.config/truecraft 21allow ${HOME}/.config/truecraft
22include whitelist-common.inc 22include whitelist-common.inc
23 23
24caps.drop all 24caps.drop all
diff --git a/etc/profile-m-z/ts3client_runscript.sh.profile b/etc/profile-m-z/ts3client_runscript.sh.profile
index 8d4675454..cd6ae96df 100644
--- a/etc/profile-m-z/ts3client_runscript.sh.profile
+++ b/etc/profile-m-z/ts3client_runscript.sh.profile
@@ -9,11 +9,11 @@ include ts3client_runscript.sh.local
9 9
10ignore noexec ${HOME} 10ignore noexec ${HOME}
11 11
12noblacklist ${HOME}/TeamSpeak3-Client-linux_x86 12nodeny ${HOME}/TeamSpeak3-Client-linux_x86
13noblacklist ${HOME}/TeamSpeak3-Client-linux_amd64 13nodeny ${HOME}/TeamSpeak3-Client-linux_amd64
14 14
15whitelist ${HOME}/TeamSpeak3-Client-linux_x86 15allow ${HOME}/TeamSpeak3-Client-linux_x86
16whitelist ${HOME}/TeamSpeak3-Client-linux_amd64 16allow ${HOME}/TeamSpeak3-Client-linux_amd64
17 17
18# Redirect 18# Redirect
19include teamspeak3.profile 19include teamspeak3.profile
diff --git a/etc/profile-m-z/tutanota-desktop.profile b/etc/profile-m-z/tutanota-desktop.profile
index d2cb0cc8a..e59a86ce6 100644
--- a/etc/profile-m-z/tutanota-desktop.profile
+++ b/etc/profile-m-z/tutanota-desktop.profile
@@ -6,8 +6,8 @@ include tutanota-desktop.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/tuta_integration 9nodeny ${HOME}/.config/tuta_integration
10noblacklist ${HOME}/.config/tutanota-desktop 10nodeny ${HOME}/.config/tutanota-desktop
11 11
12ignore noexec /tmp 12ignore noexec /tmp
13 13
@@ -15,12 +15,12 @@ include disable-shell.inc
15 15
16mkdir ${HOME}/.config/tuta_integration 16mkdir ${HOME}/.config/tuta_integration
17mkdir ${HOME}/.config/tutanota-desktop 17mkdir ${HOME}/.config/tutanota-desktop
18whitelist ${HOME}/.config/tuta_integration 18allow ${HOME}/.config/tuta_integration
19whitelist ${HOME}/.config/tutanota-desktop 19allow ${HOME}/.config/tutanota-desktop
20 20
21# These lines are needed to allow Firefox to open links 21# These lines are needed to allow Firefox to open links
22noblacklist ${HOME}/.mozilla 22nodeny ${HOME}/.mozilla
23whitelist ${HOME}/.mozilla/firefox/profiles.ini 23allow ${HOME}/.mozilla/firefox/profiles.ini
24read-only ${HOME}/.mozilla/firefox/profiles.ini 24read-only ${HOME}/.mozilla/firefox/profiles.ini
25 25
26?HAS_APPIMAGE: ignore private-dev 26?HAS_APPIMAGE: ignore private-dev
diff --git a/etc/profile-m-z/tuxguitar.profile b/etc/profile-m-z/tuxguitar.profile
index d0bcbe79f..5bb97e161 100644
--- a/etc/profile-m-z/tuxguitar.profile
+++ b/etc/profile-m-z/tuxguitar.profile
@@ -6,9 +6,12 @@ include tuxguitar.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.tuxguitar* 9# tuxguitar fails to launch
10noblacklist ${DOCUMENTS} 10ignore noexec ${HOME}
11noblacklist ${MUSIC} 11
12nodeny ${HOME}/.tuxguitar*
13nodeny ${DOCUMENTS}
14nodeny ${MUSIC}
12 15
13# Allow java (blacklisted by disable-devel.inc) 16# Allow java (blacklisted by disable-devel.inc)
14include allow-java.inc 17include allow-java.inc
@@ -41,6 +44,3 @@ tracelog
41 44
42private-dev 45private-dev
43private-tmp 46private-tmp
44
45# noexec ${HOME} - tuxguitar may fail to launch
46noexec /tmp
diff --git a/etc/profile-m-z/tvbrowser.profile b/etc/profile-m-z/tvbrowser.profile
index dae7d86da..8febcd337 100644
--- a/etc/profile-m-z/tvbrowser.profile
+++ b/etc/profile-m-z/tvbrowser.profile
@@ -6,8 +6,8 @@ include tvbrowser.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/tvbrowser 9nodeny ${HOME}/.config/tvbrowser
10noblacklist ${HOME}/.tvbrowser 10nodeny ${HOME}/.tvbrowser
11 11
12# Allow java (blacklisted by disable-devel.inc) 12# Allow java (blacklisted by disable-devel.inc)
13include allow-java.inc 13include allow-java.inc
@@ -22,9 +22,9 @@ include disable-xdg.inc
22 22
23mkdir ${HOME}/.config/tvbrowser 23mkdir ${HOME}/.config/tvbrowser
24mkdir ${HOME}/.tvbrowser 24mkdir ${HOME}/.tvbrowser
25whitelist ${HOME}/.config/tvbrowser 25allow ${HOME}/.config/tvbrowser
26whitelist ${HOME}/.tvbrowser 26allow ${HOME}/.tvbrowser
27whitelist /usr/share/tvbrowser 27allow /usr/share/tvbrowser
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
30include whitelist-var-common.inc 30include whitelist-var-common.inc
diff --git a/etc/profile-m-z/twitch.profile b/etc/profile-m-z/twitch.profile
index 2f573c872..abcc885e6 100644
--- a/etc/profile-m-z/twitch.profile
+++ b/etc/profile-m-z/twitch.profile
@@ -10,12 +10,12 @@ include globals.local
10ignore nou2f 10ignore nou2f
11ignore novideo 11ignore novideo
12 12
13noblacklist ${HOME}/.config/Twitch 13nodeny ${HOME}/.config/Twitch
14 14
15include disable-shell.inc 15include disable-shell.inc
16 16
17mkdir ${HOME}/.config/Twitch 17mkdir ${HOME}/.config/Twitch
18whitelist ${HOME}/.config/Twitch 18allow ${HOME}/.config/Twitch
19 19
20private-bin twitch 20private-bin twitch
21private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg 21private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg
diff --git a/etc/profile-m-z/uefitool.profile b/etc/profile-m-z/uefitool.profile
index 3e4fdbb03..8c705c95f 100644
--- a/etc/profile-m-z/uefitool.profile
+++ b/etc/profile-m-z/uefitool.profile
@@ -5,7 +5,7 @@ include uefitool.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${DOCUMENTS} 8nodeny ${DOCUMENTS}
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-m-z/uget-gtk.profile b/etc/profile-m-z/uget-gtk.profile
index 4420099ff..eed2db541 100644
--- a/etc/profile-m-z/uget-gtk.profile
+++ b/etc/profile-m-z/uget-gtk.profile
@@ -5,7 +5,7 @@ include uget-gtk.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/uGet 8nodeny ${HOME}/.config/uGet
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
@@ -14,8 +14,8 @@ include disable-programs.inc
14include disable-shell.inc 14include disable-shell.inc
15 15
16mkdir ${HOME}/.config/uGet 16mkdir ${HOME}/.config/uGet
17whitelist ${DOWNLOADS} 17allow ${DOWNLOADS}
18whitelist ${HOME}/.config/uGet 18allow ${HOME}/.config/uGet
19include whitelist-common.inc 19include whitelist-common.inc
20include whitelist-usr-share-common.inc 20include whitelist-usr-share-common.inc
21include whitelist-var-common.inc 21include whitelist-var-common.inc
diff --git a/etc/profile-m-z/unbound.profile b/etc/profile-m-z/unbound.profile
index 0c077babf..7e7b3fbec 100644
--- a/etc/profile-m-z/unbound.profile
+++ b/etc/profile-m-z/unbound.profile
@@ -6,11 +6,11 @@ include unbound.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist /sbin 9nodeny /sbin
10noblacklist /usr/sbin 10nodeny /usr/sbin
11 11
12blacklist /tmp/.X11-unix 12deny /tmp/.X11-unix
13blacklist ${RUNUSER}/wayland-* 13deny ${RUNUSER}/wayland-*
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
@@ -22,8 +22,8 @@ include disable-xdg.inc
22 22
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24 24
25whitelist /var/lib/unbound 25allow /var/lib/unbound
26whitelist /var/run 26allow /var/run
27 27
28caps.keep net_admin,net_bind_service,setgid,setuid,sys_chroot,sys_resource 28caps.keep net_admin,net_bind_service,setgid,setuid,sys_chroot,sys_resource
29ipc-namespace 29ipc-namespace
diff --git a/etc/profile-m-z/unf.profile b/etc/profile-m-z/unf.profile
index 6db7ba362..846271971 100644
--- a/etc/profile-m-z/unf.profile
+++ b/etc/profile-m-z/unf.profile
@@ -7,7 +7,7 @@ include unf.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-programs.inc
18include disable-shell.inc 18include disable-shell.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21whitelist ${DOWNLOADS} 21allow ${DOWNLOADS}
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-usr-share-common.inc 23include whitelist-usr-share-common.inc
24include whitelist-var-common.inc 24include whitelist-var-common.inc
diff --git a/etc/profile-m-z/unknown-horizons.profile b/etc/profile-m-z/unknown-horizons.profile
index 956492f52..3e1c6264d 100644
--- a/etc/profile-m-z/unknown-horizons.profile
+++ b/etc/profile-m-z/unknown-horizons.profile
@@ -6,7 +6,7 @@ include unknown-horizons.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.unknown-horizons 9nodeny ${HOME}/.unknown-horizons
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-exec.inc 12include disable-exec.inc
@@ -14,10 +14,10 @@ include disable-passwdmgr.inc
14include disable-programs.inc 14include disable-programs.inc
15 15
16mkdir ${HOME}/.unknown-horizons 16mkdir ${HOME}/.unknown-horizons
17whitelist ${HOME}/.unknown-horizons 17allow ${HOME}/.unknown-horizons
18include whitelist-common.inc 18include whitelist-common.inc
19include whitelist-runuser-common.inc 19include whitelist-runuser-common.inc
20whitelist /usr/share/unknown-horizons 20allow /usr/share/unknown-horizons
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
23 23
diff --git a/etc/profile-m-z/unzip.profile b/etc/profile-m-z/unzip.profile
index 0231e3dba..99d2415ca 100644
--- a/etc/profile-m-z/unzip.profile
+++ b/etc/profile-m-z/unzip.profile
@@ -8,7 +8,7 @@ include unzip.local
8include globals.local 8include globals.local
9 9
10# GNOME Shell integration (chrome-gnome-shell) 10# GNOME Shell integration (chrome-gnome-shell)
11noblacklist ${HOME}/.local/share/gnome-shell 11nodeny ${HOME}/.local/share/gnome-shell
12 12
13private-etc alternatives,group,localtime,passwd 13private-etc alternatives,group,localtime,passwd
14 14
diff --git a/etc/profile-m-z/utox.profile b/etc/profile-m-z/utox.profile
index dd881f091..3b0f7c646 100644
--- a/etc/profile-m-z/utox.profile
+++ b/etc/profile-m-z/utox.profile
@@ -6,8 +6,8 @@ include utox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/Tox 9nodeny ${HOME}/.cache/Tox
10noblacklist ${HOME}/.config/tox 10nodeny ${HOME}/.config/tox
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-shell.inc
19include disable-xdg.inc 19include disable-xdg.inc
20 20
21mkdir ${HOME}/.config/tox 21mkdir ${HOME}/.config/tox
22whitelist ${DOWNLOADS} 22allow ${DOWNLOADS}
23whitelist ${HOME}/.config/tox 23allow ${HOME}/.config/tox
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
26 26
diff --git a/etc/profile-m-z/uudeview.profile b/etc/profile-m-z/uudeview.profile
index 2adc044e5..3bda71666 100644
--- a/etc/profile-m-z/uudeview.profile
+++ b/etc/profile-m-z/uudeview.profile
@@ -7,7 +7,7 @@ include uudeview.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist ${RUNUSER}/wayland-* 10deny ${RUNUSER}/wayland-*
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/uzbl-browser.profile b/etc/profile-m-z/uzbl-browser.profile
index 41487a8f2..6899f4bf7 100644
--- a/etc/profile-m-z/uzbl-browser.profile
+++ b/etc/profile-m-z/uzbl-browser.profile
@@ -5,9 +5,9 @@ include uzbl-browser.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/uzbl 8nodeny ${HOME}/.config/uzbl
9noblacklist ${HOME}/.gnupg 9nodeny ${HOME}/.gnupg
10noblacklist ${HOME}/.local/share/uzbl 10nodeny ${HOME}/.local/share/uzbl
11 11
12# Allow python (blacklisted by disable-interpreters.inc) 12# Allow python (blacklisted by disable-interpreters.inc)
13include allow-python2.inc 13include allow-python2.inc
@@ -22,11 +22,11 @@ mkdir ${HOME}/.config/uzbl
22mkdir ${HOME}/.gnupg 22mkdir ${HOME}/.gnupg
23mkdir ${HOME}/.local/share/uzbl 23mkdir ${HOME}/.local/share/uzbl
24mkdir ${HOME}/.password-store 24mkdir ${HOME}/.password-store
25whitelist ${DOWNLOADS} 25allow ${DOWNLOADS}
26whitelist ${HOME}/.config/uzbl 26allow ${HOME}/.config/uzbl
27whitelist ${HOME}/.gnupg 27allow ${HOME}/.gnupg
28whitelist ${HOME}/.local/share/uzbl 28allow ${HOME}/.local/share/uzbl
29whitelist ${HOME}/.password-store 29allow ${HOME}/.password-store
30include whitelist-common.inc 30include whitelist-common.inc
31 31
32caps.drop all 32caps.drop all
diff --git a/etc/profile-m-z/viewnior.profile b/etc/profile-m-z/viewnior.profile
index a9ba344dd..e0bf02706 100644
--- a/etc/profile-m-z/viewnior.profile
+++ b/etc/profile-m-z/viewnior.profile
@@ -6,11 +6,11 @@ include viewnior.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.Steam 9nodeny ${HOME}/.Steam
10noblacklist ${HOME}/.config/viewnior 10nodeny ${HOME}/.config/viewnior
11noblacklist ${HOME}/.steam 11nodeny ${HOME}/.steam
12 12
13blacklist ${HOME}/.bashrc 13deny ${HOME}/.bashrc
14 14
15include disable-common.inc 15include disable-common.inc
16include disable-devel.inc 16include disable-devel.inc
diff --git a/etc/profile-m-z/viking.profile b/etc/profile-m-z/viking.profile
index 8f8ef5939..b16f691d6 100644
--- a/etc/profile-m-z/viking.profile
+++ b/etc/profile-m-z/viking.profile
@@ -6,9 +6,9 @@ include viking.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.viking 9nodeny ${HOME}/.viking
10noblacklist ${HOME}/.viking-maps 10nodeny ${HOME}/.viking-maps
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/vim.profile b/etc/profile-m-z/vim.profile
index c3cfe5980..b535225dd 100644
--- a/etc/profile-m-z/vim.profile
+++ b/etc/profile-m-z/vim.profile
@@ -6,9 +6,9 @@ include vim.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.vim 9nodeny ${HOME}/.vim
10noblacklist ${HOME}/.viminfo 10nodeny ${HOME}/.viminfo
11noblacklist ${HOME}/.vimrc 11nodeny ${HOME}/.vimrc
12 12
13# Allows files commonly used by IDEs 13# Allows files commonly used by IDEs
14include allow-common-devel.inc 14include allow-common-devel.inc
diff --git a/etc/profile-m-z/virtualbox.profile b/etc/profile-m-z/virtualbox.profile
index c22fb0ff9..f28828338 100644
--- a/etc/profile-m-z/virtualbox.profile
+++ b/etc/profile-m-z/virtualbox.profile
@@ -6,12 +6,12 @@ include virtualbox.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.VirtualBox 9nodeny ${HOME}/.VirtualBox
10noblacklist ${HOME}/.config/VirtualBox 10nodeny ${HOME}/.config/VirtualBox
11noblacklist ${HOME}/VirtualBox VMs 11nodeny ${HOME}/VirtualBox VMs
12# noblacklist /usr/bin/virtualbox 12# noblacklist /usr/bin/virtualbox
13noblacklist /usr/lib/virtualbox 13nodeny /usr/lib/virtualbox
14noblacklist /usr/lib64/virtualbox 14nodeny /usr/lib64/virtualbox
15 15
16include disable-common.inc 16include disable-common.inc
17include disable-devel.inc 17include disable-devel.inc
@@ -23,10 +23,10 @@ include disable-xdg.inc
23 23
24mkdir ${HOME}/.config/VirtualBox 24mkdir ${HOME}/.config/VirtualBox
25mkdir ${HOME}/VirtualBox VMs 25mkdir ${HOME}/VirtualBox VMs
26whitelist ${HOME}/.config/VirtualBox 26allow ${HOME}/.config/VirtualBox
27whitelist ${HOME}/VirtualBox VMs 27allow ${HOME}/VirtualBox VMs
28whitelist ${DOWNLOADS} 28allow ${DOWNLOADS}
29whitelist /usr/share/virtualbox 29allow /usr/share/virtualbox
30include whitelist-common.inc 30include whitelist-common.inc
31include whitelist-runuser-common.inc 31include whitelist-runuser-common.inc
32include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/vivaldi.profile b/etc/profile-m-z/vivaldi.profile
index fdeb0307f..3858405db 100644
--- a/etc/profile-m-z/vivaldi.profile
+++ b/etc/profile-m-z/vivaldi.profile
@@ -8,26 +8,26 @@ include globals.local
8# Allow HTML5 Proprietary Media & DRM/EME (Widevine) 8# Allow HTML5 Proprietary Media & DRM/EME (Widevine)
9ignore apparmor 9ignore apparmor
10ignore noexec /var 10ignore noexec /var
11noblacklist /var/opt 11nodeny /var/opt
12whitelist /var/opt/vivaldi 12allow /var/opt/vivaldi
13writable-var 13writable-var
14 14
15noblacklist ${HOME}/.cache/vivaldi 15nodeny ${HOME}/.cache/vivaldi
16noblacklist ${HOME}/.cache/vivaldi-snapshot 16nodeny ${HOME}/.cache/vivaldi-snapshot
17noblacklist ${HOME}/.config/vivaldi 17nodeny ${HOME}/.config/vivaldi
18noblacklist ${HOME}/.config/vivaldi-snapshot 18nodeny ${HOME}/.config/vivaldi-snapshot
19noblacklist ${HOME}/.local/lib/vivaldi 19nodeny ${HOME}/.local/lib/vivaldi
20 20
21mkdir ${HOME}/.cache/vivaldi 21mkdir ${HOME}/.cache/vivaldi
22mkdir ${HOME}/.cache/vivaldi-snapshot 22mkdir ${HOME}/.cache/vivaldi-snapshot
23mkdir ${HOME}/.config/vivaldi 23mkdir ${HOME}/.config/vivaldi
24mkdir ${HOME}/.config/vivaldi-snapshot 24mkdir ${HOME}/.config/vivaldi-snapshot
25mkdir ${HOME}/.local/lib/vivaldi 25mkdir ${HOME}/.local/lib/vivaldi
26whitelist ${HOME}/.cache/vivaldi 26allow ${HOME}/.cache/vivaldi
27whitelist ${HOME}/.cache/vivaldi-snapshot 27allow ${HOME}/.cache/vivaldi-snapshot
28whitelist ${HOME}/.config/vivaldi 28allow ${HOME}/.config/vivaldi
29whitelist ${HOME}/.config/vivaldi-snapshot 29allow ${HOME}/.config/vivaldi-snapshot
30whitelist ${HOME}/.local/lib/vivaldi 30allow ${HOME}/.local/lib/vivaldi
31 31
32#private-bin bash,cat,dirname,readlink,rm,vivaldi,vivaldi-stable,vivaldi-snapshot 32#private-bin bash,cat,dirname,readlink,rm,vivaldi,vivaldi-stable,vivaldi-snapshot
33 33
diff --git a/etc/profile-m-z/vlc.profile b/etc/profile-m-z/vlc.profile
index cd7dccd8a..ede2d4525 100644
--- a/etc/profile-m-z/vlc.profile
+++ b/etc/profile-m-z/vlc.profile
@@ -6,10 +6,10 @@ include vlc.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/vlc 9nodeny ${HOME}/.cache/vlc
10noblacklist ${HOME}/.config/vlc 10nodeny ${HOME}/.config/vlc
11noblacklist ${HOME}/.config/aacs 11nodeny ${HOME}/.config/aacs
12noblacklist ${HOME}/.local/share/vlc 12nodeny ${HOME}/.local/share/vlc
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -22,10 +22,10 @@ read-only ${DESKTOP}
22mkdir ${HOME}/.cache/vlc 22mkdir ${HOME}/.cache/vlc
23mkdir ${HOME}/.config/vlc 23mkdir ${HOME}/.config/vlc
24mkdir ${HOME}/.local/share/vlc 24mkdir ${HOME}/.local/share/vlc
25whitelist ${HOME}/.cache/vlc 25allow ${HOME}/.cache/vlc
26whitelist ${HOME}/.config/vlc 26allow ${HOME}/.config/vlc
27whitelist ${HOME}/.config/aacs 27allow ${HOME}/.config/aacs
28whitelist ${HOME}/.local/share/vlc 28allow ${HOME}/.local/share/vlc
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-player-common.inc 30include whitelist-player-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-m-z/vmware-view.profile b/etc/profile-m-z/vmware-view.profile
index f07c31b68..f23e90e84 100644
--- a/etc/profile-m-z/vmware-view.profile
+++ b/etc/profile-m-z/vmware-view.profile
@@ -6,10 +6,10 @@ include vmware-view.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.vmware 9nodeny ${HOME}/.vmware
10 10
11noblacklist /sbin 11nodeny /sbin
12noblacklist /usr/sbin 12nodeny /usr/sbin
13 13
14include allow-bin-sh.inc 14include allow-bin-sh.inc
15 15
@@ -23,7 +23,7 @@ include disable-shell.inc
23include disable-xdg.inc 23include disable-xdg.inc
24 24
25mkdir ${HOME}/.vmware 25mkdir ${HOME}/.vmware
26whitelist ${HOME}/.vmware 26allow ${HOME}/.vmware
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-runuser-common.inc 28include whitelist-runuser-common.inc
29include whitelist-usr-share-common.inc 29include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/vmware.profile b/etc/profile-m-z/vmware.profile
index 5241e27b3..3a535588f 100644
--- a/etc/profile-m-z/vmware.profile
+++ b/etc/profile-m-z/vmware.profile
@@ -6,8 +6,8 @@ include vmware.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/vmware 9nodeny ${HOME}/.cache/vmware
10noblacklist ${HOME}/.vmware 10nodeny ${HOME}/.vmware
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
@@ -19,8 +19,8 @@ include disable-xdg.inc
19 19
20mkdir ${HOME}/.cache/vmware 20mkdir ${HOME}/.cache/vmware
21mkdir ${HOME}/.vmware 21mkdir ${HOME}/.vmware
22whitelist ${HOME}/.cache/vmware 22allow ${HOME}/.cache/vmware
23whitelist ${HOME}/.vmware 23allow ${HOME}/.vmware
24# Add the next lines to your vmware.local if you need to use "shared VM". 24# Add the next lines to your vmware.local if you need to use "shared VM".
25#whitelist /var/lib/vmware 25#whitelist /var/lib/vmware
26#writable-var 26#writable-var
diff --git a/etc/profile-m-z/vscodium.profile b/etc/profile-m-z/vscodium.profile
index a4a4fb7d8..7996113f5 100644
--- a/etc/profile-m-z/vscodium.profile
+++ b/etc/profile-m-z/vscodium.profile
@@ -6,7 +6,7 @@ include vscodium.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist ${HOME}/.VSCodium 9nodeny ${HOME}/.VSCodium
10 10
11# Redirect 11# Redirect
12include code.profile 12include code.profile
diff --git a/etc/profile-m-z/vulturesclaw.profile b/etc/profile-m-z/vulturesclaw.profile
index fa6ddf1fb..a6c38c1f1 100644
--- a/etc/profile-m-z/vulturesclaw.profile
+++ b/etc/profile-m-z/vulturesclaw.profile
@@ -6,8 +6,8 @@ include vulturesclaw.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist /var/games/vulturesclaw 9nodeny /var/games/vulturesclaw
10whitelist /var/games/vulturesclaw 10allow /var/games/vulturesclaw
11 11
12# Redirect 12# Redirect
13include nethack-vultures.profile 13include nethack-vultures.profile
diff --git a/etc/profile-m-z/vultureseye.profile b/etc/profile-m-z/vultureseye.profile
index 49d3fa94f..763c50bf6 100644
--- a/etc/profile-m-z/vultureseye.profile
+++ b/etc/profile-m-z/vultureseye.profile
@@ -6,8 +6,8 @@ include vultureseye.local
6# added by included profile 6# added by included profile
7#include globals.local 7#include globals.local
8 8
9noblacklist /var/games/vultureseye 9nodeny /var/games/vultureseye
10whitelist /var/games/vultureseye 10allow /var/games/vultureseye
11 11
12# Redirect 12# Redirect
13include nethack-vultures.profile 13include nethack-vultures.profile
diff --git a/etc/profile-m-z/vym.profile b/etc/profile-m-z/vym.profile
index 5421c4e4b..1f2462c32 100644
--- a/etc/profile-m-z/vym.profile
+++ b/etc/profile-m-z/vym.profile
@@ -6,7 +6,7 @@ include vym.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/InSilmaril 9nodeny ${HOME}/.config/InSilmaril
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/w3m.profile b/etc/profile-m-z/w3m.profile
index 131213ed2..6b38bbf13 100644
--- a/etc/profile-m-z/w3m.profile
+++ b/etc/profile-m-z/w3m.profile
@@ -12,23 +12,37 @@ include globals.local
12#ignore private-dev 12#ignore private-dev
13#ignore private-etc 13#ignore private-etc
14 14
15noblacklist ${HOME}/.w3m 15nodeny ${HOME}/.w3m
16 16
17blacklist /tmp/.X11-unix 17deny /tmp/.X11-unix
18blacklist ${RUNUSER}/wayland-* 18deny ${RUNUSER}/wayland-*
19 19
20# Allow /bin/sh (blacklisted by disable-shell.inc)
21include allow-bin-sh.inc
22
23# Allow perl (blacklisted by disable-interpreters.inc)
20include allow-perl.inc 24include allow-perl.inc
21 25
22include disable-common.inc 26include disable-common.inc
23include disable-devel.inc 27include disable-devel.inc
28include disable-exec.inc
24include disable-interpreters.inc 29include disable-interpreters.inc
25include disable-passwdmgr.inc 30include disable-passwdmgr.inc
26include disable-programs.inc 31include disable-programs.inc
32include disable-shell.inc
27include disable-xdg.inc 33include disable-xdg.inc
28 34
35mkdir ${HOME}/.w3m
36allow /usr/share/w3m
37allow ${DOWNLOADS}
38allow ${HOME}/.w3m
29include whitelist-runuser-common.inc 39include whitelist-runuser-common.inc
40include whitelist-usr-share-common.inc
41include whitelist-var-common.inc
30 42
31caps.drop all 43caps.drop all
44ipc-namespace
45machine-id
32netfilter 46netfilter
33no3d 47no3d
34nodvd 48nodvd
@@ -45,8 +59,14 @@ seccomp
45shell none 59shell none
46tracelog 60tracelog
47 61
48# private-bin w3m 62disable-mnt
63private-bin perl,sh,w3m
49private-cache 64private-cache
50private-dev 65private-dev
51private-etc alternatives,ca-certificates,crypto-policies,pki,resolv.conf,ssl 66private-etc alternatives,ca-certificates,crypto-policies,mailcap,nsswitch.conf,pki,resolv.conf,ssl
52private-tmp 67private-tmp
68
69dbus-user none
70dbus-system none
71
72memory-deny-write-execute
diff --git a/etc/profile-m-z/warmux.profile b/etc/profile-m-z/warmux.profile
index 1227a202c..6658ac5db 100644
--- a/etc/profile-m-z/warmux.profile
+++ b/etc/profile-m-z/warmux.profile
@@ -6,9 +6,9 @@ include warmux.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/wormux 9nodeny ${HOME}/.config/wormux
10noblacklist ${HOME}/.local/share/wormux 10nodeny ${HOME}/.local/share/wormux
11noblacklist ${HOME}/.wormux 11nodeny ${HOME}/.wormux
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -22,10 +22,10 @@ include disable-xdg.inc
22mkdir ${HOME}/.config/wormux 22mkdir ${HOME}/.config/wormux
23mkdir ${HOME}/.local/share/wormux 23mkdir ${HOME}/.local/share/wormux
24mkdir ${HOME}/.wormux 24mkdir ${HOME}/.wormux
25whitelist ${HOME}/.config/wormux 25allow ${HOME}/.config/wormux
26whitelist ${HOME}/.local/share/wormux 26allow ${HOME}/.local/share/wormux
27whitelist ${HOME}/.wormux 27allow ${HOME}/.wormux
28whitelist /usr/share/warmux 28allow /usr/share/warmux
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
31include whitelist-var-common.inc 31include whitelist-var-common.inc
diff --git a/etc/profile-m-z/warsow.profile b/etc/profile-m-z/warsow.profile
index e0cd3daad..fac4d0555 100644
--- a/etc/profile-m-z/warsow.profile
+++ b/etc/profile-m-z/warsow.profile
@@ -8,8 +8,8 @@ include globals.local
8 8
9ignore noexec ${HOME} 9ignore noexec ${HOME}
10 10
11noblacklist ${HOME}/.cache/warsow-2.1 11nodeny ${HOME}/.cache/warsow-2.1
12noblacklist ${HOME}/.local/share/warsow-2.1 12nodeny ${HOME}/.local/share/warsow-2.1
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -22,9 +22,9 @@ include disable-xdg.inc
22 22
23mkdir ${HOME}/.cache/warsow-2.1 23mkdir ${HOME}/.cache/warsow-2.1
24mkdir ${HOME}/.local/share/warsow-2.1 24mkdir ${HOME}/.local/share/warsow-2.1
25whitelist ${HOME}/.cache/warsow-2.1 25allow ${HOME}/.cache/warsow-2.1
26whitelist ${HOME}/.local/share/warsow-2.1 26allow ${HOME}/.local/share/warsow-2.1
27whitelist /usr/share/warsow 27allow /usr/share/warsow
28include whitelist-common.inc 28include whitelist-common.inc
29include whitelist-runuser-common.inc 29include whitelist-runuser-common.inc
30include whitelist-usr-share-common.inc 30include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/warzone2100.profile b/etc/profile-m-z/warzone2100.profile
index 420e8927e..081ae349b 100644
--- a/etc/profile-m-z/warzone2100.profile
+++ b/etc/profile-m-z/warzone2100.profile
@@ -6,7 +6,7 @@ include warzone2100.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.warzone2100-3.* 9nodeny ${HOME}/.warzone2100-3.*
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,9 +18,9 @@ include disable-shell.inc
18 18
19mkdir ${HOME}/.warzone2100-3.1 19mkdir ${HOME}/.warzone2100-3.1
20mkdir ${HOME}/.warzone2100-3.2 20mkdir ${HOME}/.warzone2100-3.2
21whitelist ${HOME}/.warzone2100-3.1 21allow ${HOME}/.warzone2100-3.1
22whitelist ${HOME}/.warzone2100-3.2 22allow ${HOME}/.warzone2100-3.2
23whitelist /usr/share/games 23allow /usr/share/games
24include whitelist-common.inc 24include whitelist-common.inc
25include whitelist-runuser-common.inc 25include whitelist-runuser-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/waterfox.profile b/etc/profile-m-z/waterfox.profile
index 18f1ca79a..4081b29b9 100644
--- a/etc/profile-m-z/waterfox.profile
+++ b/etc/profile-m-z/waterfox.profile
@@ -5,13 +5,13 @@ include waterfox.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.cache/waterfox 8nodeny ${HOME}/.cache/waterfox
9noblacklist ${HOME}/.waterfox 9nodeny ${HOME}/.waterfox
10 10
11mkdir ${HOME}/.cache/waterfox 11mkdir ${HOME}/.cache/waterfox
12mkdir ${HOME}/.waterfox 12mkdir ${HOME}/.waterfox
13whitelist ${HOME}/.cache/waterfox 13allow ${HOME}/.cache/waterfox
14whitelist ${HOME}/.waterfox 14allow ${HOME}/.waterfox
15 15
16# Add the next lines to your watefox.local if you want to use the migration wizard. 16# Add the next lines to your watefox.local if you want to use the migration wizard.
17#noblacklist ${HOME}/.mozilla 17#noblacklist ${HOME}/.mozilla
diff --git a/etc/profile-m-z/webstorm.profile b/etc/profile-m-z/webstorm.profile
index 69e96d0cd..1f42dae2c 100644
--- a/etc/profile-m-z/webstorm.profile
+++ b/etc/profile-m-z/webstorm.profile
@@ -5,12 +5,12 @@ include webstorm.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.WebStorm* 8nodeny ${HOME}/.WebStorm*
9noblacklist ${HOME}/.android 9nodeny ${HOME}/.android
10noblacklist ${HOME}/.local/share/JetBrains 10nodeny ${HOME}/.local/share/JetBrains
11noblacklist ${HOME}/.tooling 11nodeny ${HOME}/.tooling
12# Allow KDE file manager to open with log directories (blacklisted by disable-programs.inc) 12# Allow KDE file manager to open with log directories (blacklisted by disable-programs.inc)
13noblacklist ${HOME}/.config/dolphinrc 13nodeny ${HOME}/.config/dolphinrc
14 14
15# Allows files commonly used by IDEs 15# Allows files commonly used by IDEs
16include allow-common-devel.inc 16include allow-common-devel.inc
@@ -18,8 +18,8 @@ include allow-common-devel.inc
18# Allow ssh (blacklisted by disable-common.inc) 18# Allow ssh (blacklisted by disable-common.inc)
19include allow-ssh.inc 19include allow-ssh.inc
20 20
21noblacklist ${PATH}/node 21nodeny ${PATH}/node
22noblacklist ${HOME}/.nvm 22nodeny ${HOME}/.nvm
23 23
24include disable-common.inc 24include disable-common.inc
25include disable-devel.inc 25include disable-devel.inc
diff --git a/etc/profile-m-z/webui-aria2.profile b/etc/profile-m-z/webui-aria2.profile
index d5a998f35..d1bbcfb67 100644
--- a/etc/profile-m-z/webui-aria2.profile
+++ b/etc/profile-m-z/webui-aria2.profile
@@ -6,7 +6,7 @@ include webui-aria2.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PATH}/node 9nodeny ${PATH}/node
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/weechat.profile b/etc/profile-m-z/weechat.profile
index 3a93d2ec7..99941a590 100644
--- a/etc/profile-m-z/weechat.profile
+++ b/etc/profile-m-z/weechat.profile
@@ -6,11 +6,12 @@ include weechat.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.weechat 9nodeny ${HOME}/.weechat
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-programs.inc 12include disable-programs.inc
13 13
14allow /usr/share/weechat
14include whitelist-usr-share-common.inc 15include whitelist-usr-share-common.inc
15include whitelist-var-common.inc 16include whitelist-var-common.inc
16 17
diff --git a/etc/profile-m-z/wesnoth.profile b/etc/profile-m-z/wesnoth.profile
index 199b3c6f0..47b923e6a 100644
--- a/etc/profile-m-z/wesnoth.profile
+++ b/etc/profile-m-z/wesnoth.profile
@@ -6,9 +6,9 @@ include wesnoth.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/wesnoth 9nodeny ${HOME}/.cache/wesnoth
10noblacklist ${HOME}/.config/wesnoth 10nodeny ${HOME}/.config/wesnoth
11noblacklist ${HOME}/.local/share/wesnoth 11nodeny ${HOME}/.local/share/wesnoth
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -19,9 +19,9 @@ include disable-programs.inc
19mkdir ${HOME}/.cache/wesnoth 19mkdir ${HOME}/.cache/wesnoth
20mkdir ${HOME}/.config/wesnoth 20mkdir ${HOME}/.config/wesnoth
21mkdir ${HOME}/.local/share/wesnoth 21mkdir ${HOME}/.local/share/wesnoth
22whitelist ${HOME}/.cache/wesnoth 22allow ${HOME}/.cache/wesnoth
23whitelist ${HOME}/.config/wesnoth 23allow ${HOME}/.config/wesnoth
24whitelist ${HOME}/.local/share/wesnoth 24allow ${HOME}/.local/share/wesnoth
25include whitelist-common.inc 25include whitelist-common.inc
26 26
27caps.drop all 27caps.drop all
diff --git a/etc/profile-m-z/wget.profile b/etc/profile-m-z/wget.profile
index 53c4711bd..3c4a4eb63 100644
--- a/etc/profile-m-z/wget.profile
+++ b/etc/profile-m-z/wget.profile
@@ -7,12 +7,12 @@ include wget.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.netrc 10nodeny ${HOME}/.netrc
11noblacklist ${HOME}/.wget-hsts 11nodeny ${HOME}/.wget-hsts
12noblacklist ${HOME}/.wgetrc 12nodeny ${HOME}/.wgetrc
13 13
14blacklist /tmp/.X11-unix 14deny /tmp/.X11-unix
15blacklist ${RUNUSER} 15deny ${RUNUSER}
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
diff --git a/etc/profile-m-z/whalebird.profile b/etc/profile-m-z/whalebird.profile
index 22a84274d..fdbd406c2 100644
--- a/etc/profile-m-z/whalebird.profile
+++ b/etc/profile-m-z/whalebird.profile
@@ -13,10 +13,10 @@ ignore include whitelist-usr-share-common.inc
13ignore dbus-user none 13ignore dbus-user none
14ignore dbus-system none 14ignore dbus-system none
15 15
16noblacklist ${HOME}/.config/Whalebird 16nodeny ${HOME}/.config/Whalebird
17 17
18mkdir ${HOME}/.config/Whalebird 18mkdir ${HOME}/.config/Whalebird
19whitelist ${HOME}/.config/Whalebird 19allow ${HOME}/.config/Whalebird
20 20
21no3d 21no3d
22 22
diff --git a/etc/profile-m-z/whois.profile b/etc/profile-m-z/whois.profile
index 93871a5a4..35d7fe9cb 100644
--- a/etc/profile-m-z/whois.profile
+++ b/etc/profile-m-z/whois.profile
@@ -7,8 +7,8 @@ include whois.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10blacklist /tmp/.X11-unix 10deny /tmp/.X11-unix
11blacklist ${RUNUSER} 11deny ${RUNUSER}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/widelands.profile b/etc/profile-m-z/widelands.profile
index 0dc26b11d..8f5adb0fc 100644
--- a/etc/profile-m-z/widelands.profile
+++ b/etc/profile-m-z/widelands.profile
@@ -6,7 +6,7 @@ include widelands.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.widelands 9nodeny ${HOME}/.widelands
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,7 +18,7 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.widelands 20mkdir ${HOME}/.widelands
21whitelist ${HOME}/.widelands 21allow ${HOME}/.widelands
22include whitelist-common.inc 22include whitelist-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/wine.profile b/etc/profile-m-z/wine.profile
index 0ea24aafd..6bc68c829 100644
--- a/etc/profile-m-z/wine.profile
+++ b/etc/profile-m-z/wine.profile
@@ -6,13 +6,13 @@ include wine.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/winetricks 9nodeny ${HOME}/.cache/winetricks
10noblacklist ${HOME}/.Steam 10nodeny ${HOME}/.Steam
11noblacklist ${HOME}/.local/share/Steam 11nodeny ${HOME}/.local/share/Steam
12noblacklist ${HOME}/.local/share/steam 12nodeny ${HOME}/.local/share/steam
13noblacklist ${HOME}/.steam 13nodeny ${HOME}/.steam
14noblacklist ${HOME}/.wine 14nodeny ${HOME}/.wine
15noblacklist /tmp/.wine-* 15nodeny /tmp/.wine-*
16 16
17include disable-common.inc 17include disable-common.inc
18include disable-devel.inc 18include disable-devel.inc
diff --git a/etc/profile-m-z/wire-desktop.profile b/etc/profile-m-z/wire-desktop.profile
index 151cd2adb..5f40bbd48 100644
--- a/etc/profile-m-z/wire-desktop.profile
+++ b/etc/profile-m-z/wire-desktop.profile
@@ -20,10 +20,10 @@ ignore private-cache
20ignore dbus-user none 20ignore dbus-user none
21ignore dbus-system none 21ignore dbus-system none
22 22
23noblacklist ${HOME}/.config/Wire 23nodeny ${HOME}/.config/Wire
24 24
25mkdir ${HOME}/.config/Wire 25mkdir ${HOME}/.config/Wire
26whitelist ${HOME}/.config/Wire 26allow ${HOME}/.config/Wire
27 27
28private-bin bash,electron,electron[0-9],electron[0-9][0-9],env,sh,wire-desktop 28private-bin bash,electron,electron[0-9],electron[0-9][0-9],env,sh,wire-desktop
29private-etc alternatives,ca-certificates,crypto-policies,fonts,machine-id,pki,resolv.conf,ssl 29private-etc alternatives,ca-certificates,crypto-policies,fonts,machine-id,pki,resolv.conf,ssl
diff --git a/etc/profile-m-z/wireshark.profile b/etc/profile-m-z/wireshark.profile
index 1824026a8..f3f347283 100644
--- a/etc/profile-m-z/wireshark.profile
+++ b/etc/profile-m-z/wireshark.profile
@@ -6,9 +6,9 @@ include wireshark.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/wireshark 9nodeny ${HOME}/.config/wireshark
10noblacklist ${HOME}/.wireshark 10nodeny ${HOME}/.wireshark
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13# Allow lua (blacklisted by disable-interpreters.inc) 13# Allow lua (blacklisted by disable-interpreters.inc)
14include allow-lua.inc 14include allow-lua.inc
@@ -21,7 +21,7 @@ include disable-passwdmgr.inc
21include disable-programs.inc 21include disable-programs.inc
22include disable-xdg.inc 22include disable-xdg.inc
23 23
24whitelist /usr/share/wireshark 24allow /usr/share/wireshark
25include whitelist-usr-share-common.inc 25include whitelist-usr-share-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-m-z/wordwarvi.profile b/etc/profile-m-z/wordwarvi.profile
index 9c724a5d2..1f1541a20 100644
--- a/etc/profile-m-z/wordwarvi.profile
+++ b/etc/profile-m-z/wordwarvi.profile
@@ -6,7 +6,7 @@ include wordwarvi.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.wordwarvi 9nodeny ${HOME}/.wordwarvi
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,8 +18,8 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.wordwarvi 20mkdir ${HOME}/.wordwarvi
21whitelist ${HOME}/.wordwarvi 21allow ${HOME}/.wordwarvi
22whitelist /usr/share/wordwarvi 22allow /usr/share/wordwarvi
23include whitelist-common.inc 23include whitelist-common.inc
24include whitelist-usr-share-common.inc 24include whitelist-usr-share-common.inc
25include whitelist-var-common.inc 25include whitelist-var-common.inc
diff --git a/etc/profile-m-z/wps.profile b/etc/profile-m-z/wps.profile
index a44b6490e..6d16dfb04 100644
--- a/etc/profile-m-z/wps.profile
+++ b/etc/profile-m-z/wps.profile
@@ -6,9 +6,9 @@ include wps.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.kingsoft 9nodeny ${HOME}/.kingsoft
10noblacklist ${HOME}/.config/Kingsoft 10nodeny ${HOME}/.config/Kingsoft
11noblacklist ${HOME}/.local/share/Kingsoft 11nodeny ${HOME}/.local/share/Kingsoft
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/x2goclient.profile b/etc/profile-m-z/x2goclient.profile
index 557f07cd9..311746cd9 100644
--- a/etc/profile-m-z/x2goclient.profile
+++ b/etc/profile-m-z/x2goclient.profile
@@ -6,8 +6,8 @@ include x2goclient.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.x2go 9nodeny ${HOME}/.x2go
10noblacklist ${HOME}/.x2goclient 10nodeny ${HOME}/.x2goclient
11 11
12# Allow ssh (blacklisted by disable-common.inc) 12# Allow ssh (blacklisted by disable-common.inc)
13include allow-ssh.inc 13include allow-ssh.inc
diff --git a/etc/profile-m-z/xbill.profile b/etc/profile-m-z/xbill.profile
index 384f76acc..e545aa3a0 100644
--- a/etc/profile-m-z/xbill.profile
+++ b/etc/profile-m-z/xbill.profile
@@ -15,8 +15,8 @@ include disable-programs.inc
15include disable-shell.inc 15include disable-shell.inc
16include disable-xdg.inc 16include disable-xdg.inc
17 17
18whitelist /usr/share/xbill 18allow /usr/share/xbill
19whitelist /var/games/xbill/scores 19allow /var/games/xbill/scores
20include whitelist-common.inc 20include whitelist-common.inc
21include whitelist-usr-share-common.inc 21include whitelist-usr-share-common.inc
22include whitelist-var-common.inc 22include whitelist-var-common.inc
diff --git a/etc/profile-m-z/xchat.profile b/etc/profile-m-z/xchat.profile
index a94444aab..7d0adbcc2 100644
--- a/etc/profile-m-z/xchat.profile
+++ b/etc/profile-m-z/xchat.profile
@@ -6,7 +6,7 @@ include xchat.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/xchat 9nodeny ${HOME}/.config/xchat
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/xed.profile b/etc/profile-m-z/xed.profile
index 4a3022e83..5db709bd1 100644
--- a/etc/profile-m-z/xed.profile
+++ b/etc/profile-m-z/xed.profile
@@ -5,10 +5,10 @@ include xed.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/xed 8nodeny ${HOME}/.config/xed
9noblacklist ${HOME}/.python-history 9nodeny ${HOME}/.python-history
10noblacklist ${HOME}/.python_history 10nodeny ${HOME}/.python_history
11noblacklist ${HOME}/.pythonhist 11nodeny ${HOME}/.pythonhist
12 12
13# Allow python (blacklisted by disable-interpreters.inc) 13# Allow python (blacklisted by disable-interpreters.inc)
14include allow-python2.inc 14include allow-python2.inc
diff --git a/etc/profile-m-z/xfburn.profile b/etc/profile-m-z/xfburn.profile
index cd9561e74..297ff6164 100644
--- a/etc/profile-m-z/xfburn.profile
+++ b/etc/profile-m-z/xfburn.profile
@@ -6,7 +6,7 @@ include xfburn.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/xfburn 9nodeny ${HOME}/.config/xfburn
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/xfce4-dict.profile b/etc/profile-m-z/xfce4-dict.profile
index ecd321c7e..8ecd84116 100644
--- a/etc/profile-m-z/xfce4-dict.profile
+++ b/etc/profile-m-z/xfce4-dict.profile
@@ -6,7 +6,7 @@ include xfce4-dict.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/xfce4-dict 9nodeny ${HOME}/.config/xfce4-dict
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/xfce4-mixer.profile b/etc/profile-m-z/xfce4-mixer.profile
index bb38dbebd..8a6f9e921 100644
--- a/etc/profile-m-z/xfce4-mixer.profile
+++ b/etc/profile-m-z/xfce4-mixer.profile
@@ -6,7 +6,7 @@ include xfce4-mixer.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml 9nodeny ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,10 +18,10 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkfile ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml 20mkfile ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
21whitelist ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml 21allow ${HOME}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-mixer.xml
22whitelist /usr/share/gstreamer-* 22allow /usr/share/gstreamer-*
23whitelist /usr/share/xfce4 23allow /usr/share/xfce4
24whitelist /usr/share/xfce4-mixer 24allow /usr/share/xfce4-mixer
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-usr-share-common.inc 26include whitelist-usr-share-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
diff --git a/etc/profile-m-z/xfce4-notes.profile b/etc/profile-m-z/xfce4-notes.profile
index ebfb4333c..fe88f9b27 100644
--- a/etc/profile-m-z/xfce4-notes.profile
+++ b/etc/profile-m-z/xfce4-notes.profile
@@ -6,9 +6,9 @@ include xfce4-notes.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/xfce4/xfce4-notes.gtkrc 9nodeny ${HOME}/.config/xfce4/xfce4-notes.gtkrc
10noblacklist ${HOME}/.config/xfce4/xfce4-notes.rc 10nodeny ${HOME}/.config/xfce4/xfce4-notes.rc
11noblacklist ${HOME}/.local/share/notes 11nodeny ${HOME}/.local/share/notes
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/xfce4-screenshooter.profile b/etc/profile-m-z/xfce4-screenshooter.profile
index b1e5bafbf..baf222354 100644
--- a/etc/profile-m-z/xfce4-screenshooter.profile
+++ b/etc/profile-m-z/xfce4-screenshooter.profile
@@ -6,7 +6,7 @@ include xfce4-screenshooter.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${PICTURES} 9nodeny ${PICTURES}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,7 +17,7 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist /usr/share/xfce4 20allow /usr/share/xfce4
21include whitelist-runuser-common.inc 21include whitelist-runuser-common.inc
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
diff --git a/etc/profile-m-z/xiphos.profile b/etc/profile-m-z/xiphos.profile
index 81d98db7a..5c11cbd66 100644
--- a/etc/profile-m-z/xiphos.profile
+++ b/etc/profile-m-z/xiphos.profile
@@ -6,10 +6,10 @@ include xiphos.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.sword 9nodeny ${HOME}/.sword
10noblacklist ${HOME}/.xiphos 10nodeny ${HOME}/.xiphos
11 11
12blacklist ${HOME}/.bashrc 12deny ${HOME}/.bashrc
13 13
14include disable-common.inc 14include disable-common.inc
15include disable-devel.inc 15include disable-devel.inc
@@ -21,8 +21,8 @@ include disable-shell.inc
21 21
22mkdir ${HOME}/.sword 22mkdir ${HOME}/.sword
23mkdir ${HOME}/.xiphos 23mkdir ${HOME}/.xiphos
24whitelist ${HOME}/.sword 24allow ${HOME}/.sword
25whitelist ${HOME}/.xiphos 25allow ${HOME}/.xiphos
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-var-common.inc 27include whitelist-var-common.inc
28 28
diff --git a/etc/profile-m-z/xlinks.profile b/etc/profile-m-z/xlinks.profile
index 7987af280..da4801101 100644
--- a/etc/profile-m-z/xlinks.profile
+++ b/etc/profile-m-z/xlinks.profile
@@ -7,8 +7,7 @@ include xlinks.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10noblacklist /tmp/.X11-unix 10nodeny /tmp/.X11-unix
11noblacklist ${HOME}/.links
12 11
13include whitelist-common.inc 12include whitelist-common.inc
14 13
diff --git a/etc/profile-m-z/xlinks2 b/etc/profile-m-z/xlinks2
new file mode 100644
index 000000000..a7612cb2a
--- /dev/null
+++ b/etc/profile-m-z/xlinks2
@@ -0,0 +1,20 @@
1# Firejail profile for xlinks2
2# Description: Text WWW browser (X11)
3# This file is overwritten after every install/update
4# Persistent local customizations
5include xlinks2.local
6# Persistent global definitions
7# added by included profile
8#include globals.local
9
10nodeny /tmp/.X11-unix
11
12include whitelist-common.inc
13
14# if you want to use user-configured programs add 'private-bin PROGRAM1,PROGRAM2'
15# to your xlinks.local or append 'PROGRAM1,PROGRAM2' to this private-bin line
16private-bin xlinks2
17private-etc fonts
18
19# Redirect
20include links2.profile
diff --git a/etc/profile-m-z/xmms.profile b/etc/profile-m-z/xmms.profile
index 25261d925..1ed35f29a 100644
--- a/etc/profile-m-z/xmms.profile
+++ b/etc/profile-m-z/xmms.profile
@@ -5,8 +5,8 @@ include xmms.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.xmms 8nodeny ${HOME}/.xmms
9noblacklist ${MUSIC} 9nodeny ${MUSIC}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
diff --git a/etc/profile-m-z/xmr-stak.profile b/etc/profile-m-z/xmr-stak.profile
index e7020f36b..c97c12f56 100644
--- a/etc/profile-m-z/xmr-stak.profile
+++ b/etc/profile-m-z/xmr-stak.profile
@@ -5,7 +5,7 @@ include xmr-stak.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.xmr-stak 8nodeny ${HOME}/.xmr-stak
9 9
10include disable-common.inc 10include disable-common.inc
11include disable-devel.inc 11include disable-devel.inc
diff --git a/etc/profile-m-z/xonotic.profile b/etc/profile-m-z/xonotic.profile
index 53c9a0a08..94a09198c 100644
--- a/etc/profile-m-z/xonotic.profile
+++ b/etc/profile-m-z/xonotic.profile
@@ -6,7 +6,7 @@ include xonotic.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.xonotic 9nodeny ${HOME}/.xonotic
10 10
11include allow-bin-sh.inc 11include allow-bin-sh.inc
12include allow-opengl-game.inc 12include allow-opengl-game.inc
@@ -21,8 +21,8 @@ include disable-shell.inc
21include disable-xdg.inc 21include disable-xdg.inc
22 22
23mkdir ${HOME}/.xonotic 23mkdir ${HOME}/.xonotic
24whitelist ${HOME}/.xonotic 24allow ${HOME}/.xonotic
25whitelist /usr/share/xonotic 25allow /usr/share/xonotic
26include whitelist-common.inc 26include whitelist-common.inc
27include whitelist-runuser-common.inc 27include whitelist-runuser-common.inc
28include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/xournal.profile b/etc/profile-m-z/xournal.profile
index c4f092d50..34a188a4e 100644
--- a/etc/profile-m-z/xournal.profile
+++ b/etc/profile-m-z/xournal.profile
@@ -6,7 +6,7 @@ include xournal.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -17,8 +17,8 @@ include disable-programs.inc
17include disable-shell.inc 17include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20whitelist /usr/share/xournal 20allow /usr/share/xournal
21whitelist /usr/share/poppler 21allow /usr/share/poppler
22include whitelist-usr-share-common.inc 22include whitelist-usr-share-common.inc
23include whitelist-var-common.inc 23include whitelist-var-common.inc
24 24
diff --git a/etc/profile-m-z/xournalpp.profile b/etc/profile-m-z/xournalpp.profile
index 988b878b9..f82d2a5d3 100644
--- a/etc/profile-m-z/xournalpp.profile
+++ b/etc/profile-m-z/xournalpp.profile
@@ -7,13 +7,13 @@ include xournalpp.local
7# added by included profile 7# added by included profile
8#include globals.local 8#include globals.local
9 9
10noblacklist ${HOME}/.xournalpp 10nodeny ${HOME}/.xournalpp
11 11
12include allow-lua.inc 12include allow-lua.inc
13 13
14whitelist /usr/share/texlive 14allow /usr/share/texlive
15whitelist /usr/share/xournalpp 15allow /usr/share/xournalpp
16whitelist /var/lib/texmf 16allow /var/lib/texmf
17include whitelist-runuser-common.inc 17include whitelist-runuser-common.inc
18 18
19#mkdir ${HOME}/.xournalpp 19#mkdir ${HOME}/.xournalpp
diff --git a/etc/profile-m-z/xpdf.profile b/etc/profile-m-z/xpdf.profile
index 1447ec9a7..9da63b52a 100644
--- a/etc/profile-m-z/xpdf.profile
+++ b/etc/profile-m-z/xpdf.profile
@@ -6,8 +6,8 @@ include xpdf.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.xpdfrc 9nodeny ${HOME}/.xpdfrc
10noblacklist ${DOCUMENTS} 10nodeny ${DOCUMENTS}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/xplayer.profile b/etc/profile-m-z/xplayer.profile
index c3bb3292c..4af4586e3 100644
--- a/etc/profile-m-z/xplayer.profile
+++ b/etc/profile-m-z/xplayer.profile
@@ -5,8 +5,8 @@ include xplayer.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.config/xplayer 8nodeny ${HOME}/.config/xplayer
9noblacklist ${HOME}/.local/share/xplayer 9nodeny ${HOME}/.local/share/xplayer
10 10
11# Allow python (blacklisted by disable-interpreters.inc) 11# Allow python (blacklisted by disable-interpreters.inc)
12include allow-python2.inc 12include allow-python2.inc
@@ -22,8 +22,8 @@ include disable-programs.inc
22read-only ${DESKTOP} 22read-only ${DESKTOP}
23mkdir ${HOME}/.config/xplayer 23mkdir ${HOME}/.config/xplayer
24mkdir ${HOME}/.local/share/xplayer 24mkdir ${HOME}/.local/share/xplayer
25whitelist ${HOME}/.config/xplayer 25allow ${HOME}/.config/xplayer
26whitelist ${HOME}/.local/share/xplayer 26allow ${HOME}/.local/share/xplayer
27include whitelist-common.inc 27include whitelist-common.inc
28include whitelist-player-common.inc 28include whitelist-player-common.inc
29include whitelist-var-common.inc 29include whitelist-var-common.inc
diff --git a/etc/profile-m-z/xpra.profile b/etc/profile-m-z/xpra.profile
index 6e409e1aa..28fbc94dd 100644
--- a/etc/profile-m-z/xpra.profile
+++ b/etc/profile-m-z/xpra.profile
@@ -25,7 +25,7 @@ include disable-interpreters.inc
25include disable-passwdmgr.inc 25include disable-passwdmgr.inc
26include disable-programs.inc 26include disable-programs.inc
27 27
28whitelist /var/lib/xkb 28allow /var/lib/xkb
29# whitelisting home directory, or including whitelist-common.inc 29# whitelisting home directory, or including whitelist-common.inc
30# will crash xpra on some platforms 30# will crash xpra on some platforms
31 31
diff --git a/etc/profile-m-z/xreader.profile b/etc/profile-m-z/xreader.profile
index 3ab35edfc..440f26af2 100644
--- a/etc/profile-m-z/xreader.profile
+++ b/etc/profile-m-z/xreader.profile
@@ -6,9 +6,9 @@ include xreader.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.cache/xreader 9nodeny ${HOME}/.cache/xreader
10noblacklist ${HOME}/.config/xreader 10nodeny ${HOME}/.config/xreader
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/xviewer.profile b/etc/profile-m-z/xviewer.profile
index 4d454f81c..671e0cf5b 100644
--- a/etc/profile-m-z/xviewer.profile
+++ b/etc/profile-m-z/xviewer.profile
@@ -5,10 +5,10 @@ include xviewer.local
5# Persistent global definitions 5# Persistent global definitions
6include globals.local 6include globals.local
7 7
8noblacklist ${HOME}/.Steam 8nodeny ${HOME}/.Steam
9noblacklist ${HOME}/.config/xviewer 9nodeny ${HOME}/.config/xviewer
10noblacklist ${HOME}/.local/share/Trash 10nodeny ${HOME}/.local/share/Trash
11noblacklist ${HOME}/.steam 11nodeny ${HOME}/.steam
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
diff --git a/etc/profile-m-z/yandex-browser.profile b/etc/profile-m-z/yandex-browser.profile
index 81cd021f7..27d0eb411 100644
--- a/etc/profile-m-z/yandex-browser.profile
+++ b/etc/profile-m-z/yandex-browser.profile
@@ -10,19 +10,19 @@ ignore whitelist /usr/share/chromium
10ignore include whitelist-runuser-common.inc 10ignore include whitelist-runuser-common.inc
11ignore include whitelist-usr-share-common.inc 11ignore include whitelist-usr-share-common.inc
12 12
13noblacklist ${HOME}/.cache/yandex-browser 13nodeny ${HOME}/.cache/yandex-browser
14noblacklist ${HOME}/.cache/yandex-browser-beta 14nodeny ${HOME}/.cache/yandex-browser-beta
15noblacklist ${HOME}/.config/yandex-browser 15nodeny ${HOME}/.config/yandex-browser
16noblacklist ${HOME}/.config/yandex-browser-beta 16nodeny ${HOME}/.config/yandex-browser-beta
17 17
18mkdir ${HOME}/.cache/yandex-browser 18mkdir ${HOME}/.cache/yandex-browser
19mkdir ${HOME}/.cache/yandex-browser-beta 19mkdir ${HOME}/.cache/yandex-browser-beta
20mkdir ${HOME}/.config/yandex-browser 20mkdir ${HOME}/.config/yandex-browser
21mkdir ${HOME}/.config/yandex-browser-beta 21mkdir ${HOME}/.config/yandex-browser-beta
22whitelist ${HOME}/.cache/yandex-browser 22allow ${HOME}/.cache/yandex-browser
23whitelist ${HOME}/.cache/yandex-browser-beta 23allow ${HOME}/.cache/yandex-browser-beta
24whitelist ${HOME}/.config/yandex-browser 24allow ${HOME}/.config/yandex-browser
25whitelist ${HOME}/.config/yandex-browser-beta 25allow ${HOME}/.config/yandex-browser-beta
26 26
27# Redirect 27# Redirect
28include chromium-common.profile 28include chromium-common.profile
diff --git a/etc/profile-m-z/yelp.profile b/etc/profile-m-z/yelp.profile
index 93054bfed..b288993f2 100644
--- a/etc/profile-m-z/yelp.profile
+++ b/etc/profile-m-z/yelp.profile
@@ -6,7 +6,7 @@ include yelp.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/yelp 9nodeny ${HOME}/.config/yelp
10 10
11include disable-common.inc 11include disable-common.inc
12include disable-devel.inc 12include disable-devel.inc
@@ -18,14 +18,15 @@ include disable-shell.inc
18include disable-xdg.inc 18include disable-xdg.inc
19 19
20mkdir ${HOME}/.config/yelp 20mkdir ${HOME}/.config/yelp
21whitelist ${HOME}/.config/yelp 21allow ${HOME}/.config/yelp
22whitelist /usr/share/doc 22allow /usr/libexec/webkit2gtk-4.0
23whitelist /usr/share/groff 23allow /usr/share/doc
24whitelist /usr/share/help 24allow /usr/share/groff
25whitelist /usr/share/man 25allow /usr/share/help
26whitelist /usr/share/yelp 26allow /usr/share/man
27whitelist /usr/share/yelp-tools 27allow /usr/share/yelp
28whitelist /usr/share/yelp-xsl 28allow /usr/share/yelp-tools
29allow /usr/share/yelp-xsl
29include whitelist-common.inc 30include whitelist-common.inc
30include whitelist-runuser-common.inc 31include whitelist-runuser-common.inc
31include whitelist-usr-share-common.inc 32include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/youtube-dl-gui.profile b/etc/profile-m-z/youtube-dl-gui.profile
index b52271a2c..26ea3acaa 100644
--- a/etc/profile-m-z/youtube-dl-gui.profile
+++ b/etc/profile-m-z/youtube-dl-gui.profile
@@ -8,7 +8,7 @@ include globals.local
8include allow-python2.inc 8include allow-python2.inc
9include allow-python3.inc 9include allow-python3.inc
10 10
11noblacklist ${HOME}/.config/youtube-dlg 11nodeny ${HOME}/.config/youtube-dlg
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -20,8 +20,8 @@ include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.config/youtube-dlg 22mkdir ${HOME}/.config/youtube-dlg
23whitelist ${HOME}/.config/youtube-dlg 23allow ${HOME}/.config/youtube-dlg
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-runuser-common.inc 26include whitelist-runuser-common.inc
27include whitelist-usr-share-common.inc 27include whitelist-usr-share-common.inc
diff --git a/etc/profile-m-z/youtube-dl.profile b/etc/profile-m-z/youtube-dl.profile
index 24c4d6db3..37f87d0b5 100644
--- a/etc/profile-m-z/youtube-dl.profile
+++ b/etc/profile-m-z/youtube-dl.profile
@@ -10,18 +10,18 @@ include globals.local
10# breaks when installed under ${HOME} via `pip install --user` (see #2833) 10# breaks when installed under ${HOME} via `pip install --user` (see #2833)
11ignore noexec ${HOME} 11ignore noexec ${HOME}
12 12
13noblacklist ${HOME}/.cache/youtube-dl 13nodeny ${HOME}/.cache/youtube-dl
14noblacklist ${HOME}/.config/youtube-dl 14nodeny ${HOME}/.config/youtube-dl
15noblacklist ${HOME}/.netrc 15nodeny ${HOME}/.netrc
16noblacklist ${MUSIC} 16nodeny ${MUSIC}
17noblacklist ${VIDEOS} 17nodeny ${VIDEOS}
18 18
19# Allow python (blacklisted by disable-interpreters.inc) 19# Allow python (blacklisted by disable-interpreters.inc)
20include allow-python2.inc 20include allow-python2.inc
21include allow-python3.inc 21include allow-python3.inc
22 22
23blacklist /tmp/.X11-unix 23deny /tmp/.X11-unix
24blacklist ${RUNUSER} 24deny ${RUNUSER}
25 25
26include disable-common.inc 26include disable-common.inc
27include disable-devel.inc 27include disable-devel.inc
diff --git a/etc/profile-m-z/youtube-viewer.profile b/etc/profile-m-z/youtube-viewer.profile
index 7d6e9b0eb..84b8bbc6a 100644
--- a/etc/profile-m-z/youtube-viewer.profile
+++ b/etc/profile-m-z/youtube-viewer.profile
@@ -7,54 +7,15 @@ include youtube-viewer.local
7# Persistent global definitions 7# Persistent global definitions
8include globals.local 8include globals.local
9 9
10noblacklist ${HOME}/.cache/youtube-viewer 10nodeny ${HOME}/.cache/youtube-viewer
11noblacklist ${HOME}/.config/youtube-viewer 11nodeny ${HOME}/.config/youtube-viewer
12
13# Allow perl (blacklisted by disable-interpreters.inc)
14include allow-perl.inc
15
16# Allow python (blacklisted by disable-interpreters.inc)
17include allow-python2.inc
18include allow-python3.inc
19
20include disable-common.inc
21include disable-devel.inc
22include disable-exec.inc
23include disable-interpreters.inc
24include disable-passwdmgr.inc
25include disable-programs.inc
26include disable-xdg.inc
27 12
28mkdir ${HOME}/.cache/youtube-viewer 13mkdir ${HOME}/.cache/youtube-viewer
29mkdir ${HOME}/.config/youtube-viewer 14mkdir ${HOME}/.config/youtube-viewer
30whitelist ${HOME}/.cache/youtube-viewer 15allow ${HOME}/.cache/youtube-viewer
31whitelist ${HOME}/.config/youtube-viewer 16allow ${HOME}/.config/youtube-viewer
32include whitelist-common.inc
33include whitelist-usr-share-common.inc
34include whitelist-var-common.inc
35
36apparmor
37caps.drop all
38netfilter
39nodvd
40nogroups
41noinput
42nonewprivs
43noroot
44notv
45nou2f
46novideo
47protocol unix,inet,inet6
48seccomp
49shell none
50tracelog
51 17
52disable-mnt 18private-bin gtk-youtube-viewer,gtk2-youtube-viewer,gtk3-youtube-viewer,youtube-viewer
53private-bin ffmpeg,ffprobe,firefox,gtk-youtube-viewer,gtk2-youtube-viewer,gtk3-youtube-viewer,mpv,python*,sh,smplayer,stty,vlc,which,youtube-dl,youtube-viewer
54private-cache
55private-dev
56private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,machine-id,mime.types,nsswitch.conf,passwd,pki,pulse,resolv.conf,ssl,X11,xdg
57private-tmp
58 19
59dbus-user none 20# Redirect
60dbus-system none 21include youtube-viewers-common.profile \ No newline at end of file
diff --git a/etc/profile-m-z/youtube-viewers-common.profile b/etc/profile-m-z/youtube-viewers-common.profile
new file mode 100644
index 000000000..f531f815e
--- /dev/null
+++ b/etc/profile-m-z/youtube-viewers-common.profile
@@ -0,0 +1,61 @@
1# Firejail profile for youtube-viewer clones
2# Description: common profile for Trizen's Youtube viewers
3# This file is overwritten after every install/update
4# Persistent local customizations
5include youtube-viewers-common.local
6# Persistent global definitions
7# added by caller profile
8#include globals.local
9
10nodeny ${HOME}/.cache/youtube-dl
11
12# Allow lua (blacklisted by disable-interpreters.inc)
13include allow-lua.inc
14
15# Allow perl (blacklisted by disable-interpreters.inc)
16include allow-perl.inc
17
18# Allow python (blacklisted by disable-interpreters.inc)
19include allow-python2.inc
20include allow-python3.inc
21
22include disable-common.inc
23include disable-devel.inc
24include disable-exec.inc
25include disable-interpreters.inc
26include disable-passwdmgr.inc
27include disable-programs.inc
28include disable-xdg.inc
29
30allow ${DOWNLOADS}
31allow ${HOME}/.cache/youtube-dl/youtube-sigfuncs
32include whitelist-common.inc
33include whitelist-runuser-common.inc
34include whitelist-usr-share-common.inc
35include whitelist-var-common.inc
36
37apparmor
38caps.drop all
39netfilter
40nodvd
41nogroups
42noinput
43nonewprivs
44noroot
45notv
46nou2f
47novideo
48protocol unix,inet,inet6
49seccomp
50shell none
51tracelog
52
53disable-mnt
54private-bin bash,ffmpeg,ffprobe,firefox,mpv,perl,python*,sh,smplayer,stty,wget,which,xterm,youtube-dl
55private-cache
56private-dev
57private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,machine-id,mime.types,nsswitch.conf,passwd,pki,pulse,resolv.conf,ssl,X11,xdg
58private-tmp
59
60dbus-user none
61dbus-system none
diff --git a/etc/profile-m-z/youtube.profile b/etc/profile-m-z/youtube.profile
index ad7ceaee4..b015fb013 100644
--- a/etc/profile-m-z/youtube.profile
+++ b/etc/profile-m-z/youtube.profile
@@ -9,12 +9,12 @@ include globals.local
9# Disabled until someone reported positive feedback 9# Disabled until someone reported positive feedback
10ignore nou2f 10ignore nou2f
11 11
12noblacklist ${HOME}/.config/Youtube 12nodeny ${HOME}/.config/Youtube
13 13
14include disable-shell.inc 14include disable-shell.inc
15 15
16mkdir ${HOME}/.config/Youtube 16mkdir ${HOME}/.config/Youtube
17whitelist ${HOME}/.config/Youtube 17allow ${HOME}/.config/Youtube
18 18
19private-bin youtube 19private-bin youtube
20private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg 20private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg
diff --git a/etc/profile-m-z/youtubemusic-nativefier.profile b/etc/profile-m-z/youtubemusic-nativefier.profile
index 74b0e38b9..d594a3d0f 100644
--- a/etc/profile-m-z/youtubemusic-nativefier.profile
+++ b/etc/profile-m-z/youtubemusic-nativefier.profile
@@ -6,12 +6,12 @@ include youtube.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/youtubemusic-nativefier-040164 9nodeny ${HOME}/.config/youtubemusic-nativefier-040164
10 10
11include disable-shell.inc 11include disable-shell.inc
12 12
13mkdir ${HOME}/.config/youtubemusic-nativefier-040164 13mkdir ${HOME}/.config/youtubemusic-nativefier-040164
14whitelist ${HOME}/.config/youtubemusic-nativefier-040164 14allow ${HOME}/.config/youtubemusic-nativefier-040164
15 15
16private-bin youtubemusic-nativefier 16private-bin youtubemusic-nativefier
17private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg 17private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg
diff --git a/etc/profile-m-z/ytmdesktop.profile b/etc/profile-m-z/ytmdesktop.profile
index ab46fccc2..9987c953e 100644
--- a/etc/profile-m-z/ytmdesktop.profile
+++ b/etc/profile-m-z/ytmdesktop.profile
@@ -8,10 +8,10 @@ include globals.local
8 8
9ignore dbus-user none 9ignore dbus-user none
10 10
11noblacklist ${HOME}/.config/youtube-music-desktop-app 11nodeny ${HOME}/.config/youtube-music-desktop-app
12 12
13mkdir ${HOME}/.config/youtube-music-desktop-app 13mkdir ${HOME}/.config/youtube-music-desktop-app
14whitelist ${HOME}/.config/youtube-music-desktop-app 14allow ${HOME}/.config/youtube-music-desktop-app
15 15
16# private-bin env,ytmdesktop 16# private-bin env,ytmdesktop
17private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg 17private-etc alsa,alternatives,asound.conf,ati,bumblebee,ca-certificates,crypto-policies,drirc,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,mime.types,nsswitch.conf,nvidia,pki,pulse,resolv.conf,selinux,ssl,X11,xdg
diff --git a/etc/profile-m-z/zaproxy.profile b/etc/profile-m-z/zaproxy.profile
index 5a168feb6..2f18a8c45 100644
--- a/etc/profile-m-z/zaproxy.profile
+++ b/etc/profile-m-z/zaproxy.profile
@@ -6,7 +6,7 @@ include zaproxy.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.ZAP 9nodeny ${HOME}/.ZAP
10 10
11# Allow java (blacklisted by disable-devel.inc) 11# Allow java (blacklisted by disable-devel.inc)
12include allow-java.inc 12include allow-java.inc
@@ -20,8 +20,8 @@ include disable-programs.inc
20 20
21mkdir ${HOME}/.java 21mkdir ${HOME}/.java
22mkdir ${HOME}/.ZAP 22mkdir ${HOME}/.ZAP
23whitelist ${HOME}/.java 23allow ${HOME}/.java
24whitelist ${HOME}/.ZAP 24allow ${HOME}/.ZAP
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/profile-m-z/zart.profile b/etc/profile-m-z/zart.profile
index 10f83aa30..32ff4f8ed 100644
--- a/etc/profile-m-z/zart.profile
+++ b/etc/profile-m-z/zart.profile
@@ -6,8 +6,8 @@ include zart.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${DOCUMENTS} 9nodeny ${DOCUMENTS}
10noblacklist ${PICTURES} 10nodeny ${PICTURES}
11 11
12include disable-common.inc 12include disable-common.inc
13include disable-devel.inc 13include disable-devel.inc
diff --git a/etc/profile-m-z/zathura.profile b/etc/profile-m-z/zathura.profile
index a39729685..4bc841f63 100644
--- a/etc/profile-m-z/zathura.profile
+++ b/etc/profile-m-z/zathura.profile
@@ -6,9 +6,9 @@ include zathura.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/zathura 9nodeny ${HOME}/.config/zathura
10noblacklist ${HOME}/.local/share/zathura 10nodeny ${HOME}/.local/share/zathura
11noblacklist ${DOCUMENTS} 11nodeny ${DOCUMENTS}
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -17,12 +17,14 @@ include disable-interpreters.inc
17include disable-passwdmgr.inc 17include disable-passwdmgr.inc
18include disable-programs.inc 18include disable-programs.inc
19include disable-shell.inc 19include disable-shell.inc
20include disable-write-mnt.inc
20include disable-xdg.inc 21include disable-xdg.inc
21 22
22mkdir ${HOME}/.config/zathura 23mkdir ${HOME}/.config/zathura
23mkdir ${HOME}/.local/share/zathura 24mkdir ${HOME}/.local/share/zathura
24whitelist /usr/share/doc 25allow /usr/share/doc
25whitelist /usr/share/zathura 26allow /usr/share/zathura
27include whitelist-runuser-common.inc
26include whitelist-usr-share-common.inc 28include whitelist-usr-share-common.inc
27include whitelist-var-common.inc 29include whitelist-var-common.inc
28 30
@@ -41,6 +43,7 @@ nou2f
41novideo 43novideo
42protocol unix 44protocol unix
43seccomp 45seccomp
46seccomp.block-secondary
44shell none 47shell none
45tracelog 48tracelog
46 49
diff --git a/etc/profile-m-z/zcat.profile b/etc/profile-m-z/zcat.profile
index 5de13ab90..904ea9f05 100644
--- a/etc/profile-m-z/zcat.profile
+++ b/etc/profile-m-z/zcat.profile
@@ -9,7 +9,7 @@ include zcat.local
9 9
10# Allow running kernel config check 10# Allow running kernel config check
11ignore include disable-shell.inc 11ignore include disable-shell.inc
12noblacklist /proc/config.gz 12nodeny /proc/config.gz
13 13
14# Redirect 14# Redirect
15include gzip.profile 15include gzip.profile
diff --git a/etc/profile-m-z/zeal.profile b/etc/profile-m-z/zeal.profile
index 2c6f6910f..458df2a46 100644
--- a/etc/profile-m-z/zeal.profile
+++ b/etc/profile-m-z/zeal.profile
@@ -6,9 +6,9 @@ include zeal.local
6# Persistent global definitions 6# Persistent global definitions
7include globals.local 7include globals.local
8 8
9noblacklist ${HOME}/.config/Zeal 9nodeny ${HOME}/.config/Zeal
10noblacklist ${HOME}/.cache/Zeal 10nodeny ${HOME}/.cache/Zeal
11noblacklist ${HOME}/.local/share/Zeal 11nodeny ${HOME}/.local/share/Zeal
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -23,9 +23,9 @@ mkdir ${HOME}/.cache/Zeal
23mkdir ${HOME}/.config/qt5ct 23mkdir ${HOME}/.config/qt5ct
24mkdir ${HOME}/.config/Zeal 24mkdir ${HOME}/.config/Zeal
25mkdir ${HOME}/.local/share/Zeal 25mkdir ${HOME}/.local/share/Zeal
26whitelist ${HOME}/.cache/Zeal 26allow ${HOME}/.cache/Zeal
27whitelist ${HOME}/.config/Zeal 27allow ${HOME}/.config/Zeal
28whitelist ${HOME}/.local/share/Zeal 28allow ${HOME}/.local/share/Zeal
29include whitelist-common.inc 29include whitelist-common.inc
30include whitelist-var-common.inc 30include whitelist-var-common.inc
31 31
diff --git a/etc/profile-m-z/zgrep.profile b/etc/profile-m-z/zgrep.profile
index f63dc871f..e2dfbd105 100644
--- a/etc/profile-m-z/zgrep.profile
+++ b/etc/profile-m-z/zgrep.profile
@@ -9,7 +9,7 @@ include zgrep.local
9 9
10# Allow running kernel config check 10# Allow running kernel config check
11ignore include disable-shell.inc 11ignore include disable-shell.inc
12noblacklist /proc/config.gz 12nodeny /proc/config.gz
13 13
14# Redirect 14# Redirect
15include gzip.profile 15include gzip.profile
diff --git a/etc/profile-m-z/zoom.profile b/etc/profile-m-z/zoom.profile
index ac615d861..6b0417b56 100644
--- a/etc/profile-m-z/zoom.profile
+++ b/etc/profile-m-z/zoom.profile
@@ -16,17 +16,17 @@ ignore dbus-system none
16# If you use such a system, add 'ignore nogroups' to your zoom.local. 16# If you use such a system, add 'ignore nogroups' to your zoom.local.
17#ignore nogroups 17#ignore nogroups
18 18
19noblacklist ${HOME}/.config/zoomus.conf 19nodeny ${HOME}/.config/zoomus.conf
20noblacklist ${HOME}/.zoom 20nodeny ${HOME}/.zoom
21 21
22nowhitelist ${DOWNLOADS} 22noallow ${DOWNLOADS}
23 23
24mkdir ${HOME}/.cache/zoom 24mkdir ${HOME}/.cache/zoom
25mkfile ${HOME}/.config/zoomus.conf 25mkfile ${HOME}/.config/zoomus.conf
26mkdir ${HOME}/.zoom 26mkdir ${HOME}/.zoom
27whitelist ${HOME}/.cache/zoom 27allow ${HOME}/.cache/zoom
28whitelist ${HOME}/.config/zoomus.conf 28allow ${HOME}/.config/zoomus.conf
29whitelist ${HOME}/.zoom 29allow ${HOME}/.zoom
30 30
31# Disable for now, see https://github.com/netblue30/firejail/issues/3726 31# Disable for now, see https://github.com/netblue30/firejail/issues/3726
32#private-etc alternatives,ca-certificates,crypto-policies,fonts,group,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,machine-id,nsswitch.conf,pki,resolv.conf,ssl 32#private-etc alternatives,ca-certificates,crypto-policies,fonts,group,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,machine-id,nsswitch.conf,pki,resolv.conf,ssl
diff --git a/etc/profile-m-z/zulip.profile b/etc/profile-m-z/zulip.profile
index 093da5212..cdbbdccf1 100644
--- a/etc/profile-m-z/zulip.profile
+++ b/etc/profile-m-z/zulip.profile
@@ -8,7 +8,7 @@ include globals.local
8 8
9ignore noexec /tmp 9ignore noexec /tmp
10 10
11noblacklist ${HOME}/.config/Zulip 11nodeny ${HOME}/.config/Zulip
12 12
13include disable-common.inc 13include disable-common.inc
14include disable-devel.inc 14include disable-devel.inc
@@ -20,8 +20,8 @@ include disable-shell.inc
20include disable-xdg.inc 20include disable-xdg.inc
21 21
22mkdir ${HOME}/.config/Zulip 22mkdir ${HOME}/.config/Zulip
23whitelist ${HOME}/.config/Zulip 23allow ${HOME}/.config/Zulip
24whitelist ${DOWNLOADS} 24allow ${DOWNLOADS}
25include whitelist-common.inc 25include whitelist-common.inc
26include whitelist-var-common.inc 26include whitelist-var-common.inc
27 27
diff --git a/etc/templates/profile.template b/etc/templates/profile.template
index fcc7fe949..18e4e8bce 100644
--- a/etc/templates/profile.template
+++ b/etc/templates/profile.template
@@ -59,14 +59,6 @@ include globals.local
59##ignore noexec ${HOME} 59##ignore noexec ${HOME}
60##ignore noexec /tmp 60##ignore noexec /tmp
61 61
62##blacklist PATH
63# Disable X11 (CLI only), see also 'x11 none' below
64#blacklist /tmp/.X11-unix
65# Disable Wayland
66#blacklist ${RUNUSER}/wayland-*
67# Disable RUNUSER (cli only; supersedes Disable Wayland)
68#blacklist ${RUNUSER}
69
70# It is common practice to add files/dirs containing program-specific configuration 62# It is common practice to add files/dirs containing program-specific configuration
71# (often ${HOME}/PROGRAMNAME or ${HOME}/.config/PROGRAMNAME) into disable-programs.inc 63# (often ${HOME}/PROGRAMNAME or ${HOME}/.config/PROGRAMNAME) into disable-programs.inc
72# (keep list sorted) and then disable blacklisting below. 64# (keep list sorted) and then disable blacklisting below.
@@ -109,6 +101,17 @@ include globals.local
109# Allow ssh (blacklisted by disable-common.inc) 101# Allow ssh (blacklisted by disable-common.inc)
110#include allow-ssh.inc 102#include allow-ssh.inc
111 103
104##blacklist PATH
105# Disable X11 (CLI only), see also 'x11 none' below
106#blacklist /tmp/.X11-unix
107# Disable Wayland
108#blacklist ${RUNUSER}/wayland-*
109# Disable RUNUSER (cli only; supersedes Disable Wayland)
110#blacklist ${RUNUSER}
111# Remove the next blacklist if you system has no /usr/libexec dir,
112# otherwise try to add it.
113#blacklist /usr/libexec
114
112# disable-*.inc includes 115# disable-*.inc includes
113# remove disable-write-mnt.inc if you set disable-mnt 116# remove disable-write-mnt.inc if you set disable-mnt
114#include disable-common.inc 117#include disable-common.inc
@@ -189,7 +192,7 @@ include globals.local
189# GUI: fonts,pango,X11 192# GUI: fonts,pango,X11
190# GTK: dconf,gconf,gtk-2.0,gtk-3.0 193# GTK: dconf,gconf,gtk-2.0,gtk-3.0
191# KDE: kde4rc,kde5rc 194# KDE: kde4rc,kde5rc
192# Networking: ca-certificates,crypto-policies,host.conf,hostname,hosts,nsswitch.conf,pki,protocols,resolv.conf,services,rpc,ssl 195# Networking: ca-certificates,crypto-policies,host.conf,hostname,hosts,nsswitch.conf,pki,protocols,resolv.conf,rpc,services,ssl
193# Extra: gai.conf,proxychains.conf 196# Extra: gai.conf,proxychains.conf
194# Qt: Trolltech.conf 197# Qt: Trolltech.conf
195##private-lib LIBS 198##private-lib LIBS
diff --git a/etc/templates/syscalls.txt b/etc/templates/syscalls.txt
index 0775f60ff..3992c984a 100644
--- a/etc/templates/syscalls.txt
+++ b/etc/templates/syscalls.txt
@@ -33,7 +33,7 @@ Definition of groups
33@clock=adjtimex,clock_adjtime,clock_settime,settimeofday,stime 33@clock=adjtimex,clock_adjtime,clock_settime,settimeofday,stime
34@cpu-emulation=modify_ldt,subpage_prot,switch_endian,vm86,vm86old 34@cpu-emulation=modify_ldt,subpage_prot,switch_endian,vm86,vm86old
35@debug=lookup_dcookie,perf_event_open,process_vm_writev,rtas,s390_runtime_instr,sys_debug_setcontext 35@debug=lookup_dcookie,perf_event_open,process_vm_writev,rtas,s390_runtime_instr,sys_debug_setcontext
36@default=@clock,@cpu-emulation,@debug,@module,@mount,@obsolete,@raw-io,@reboot,@swap,open_by_handle_at,name_to_handle_at,ioprio_set,ni_syscall,syslog,fanotify_init,kcmp,add_key,request_key,mbind,migrate_pages,move_pages,keyctl,io_setup,io_destroy,io_getevents,io_submit,io_cancel,remap_file_pages,set_mempolicyvmsplice,userfaultfd,acct,bpf,nfsservctl,setdomainname,sethostname,vhangup 36@default=@clock,@cpu-emulation,@debug,@module,@mount,@obsolete,@raw-io,@reboot,@swap,open_by_handle_at,name_to_handle_at,ioprio_set,ni_syscall,syslog,fanotify_init,add_key,request_key,mbind,migrate_pages,move_pages,keyctl,io_setup,io_destroy,io_getevents,io_submit,io_cancel,remap_file_pages,set_mempolicyvmsplice,userfaultfd,acct,bpf,nfsservctl,setdomainname,sethostname,vhangup
37@default-nodebuggers=@default,ptrace,personality,process_vm_readv 37@default-nodebuggers=@default,ptrace,personality,process_vm_readv
38@default-keep=execveat,execve,prctl 38@default-keep=execveat,execve,prctl
39@file-system=access,chdir,chmod,close,creat,faccessat,faccessat2,fallocate,fchdir,fchmod,fchmodat,fcntl,fcntl64,fgetxattr,flistxattr,fremovexattr,fsetxattr,fstat,fstat64,fstatat64,fstatfs,fstatfs64,ftruncate,ftruncate64,futimesat,getcwd,getdents,getdents64,getxattr,inotify_add_watch,inotify_init,inotify_init1,inotify_rm_watch,lgetxattr,link,linkat,listxattr,llistxattr,lremovexattr,lsetxattr,lstat,lstat64,mkdir,mkdirat,mknod,mknodat,mmap,mmap2,munmap,newfstatat,oldfstat,oldlstat,oldstat,open,openat,readlink,readlinkat,removexattr,rename,renameat,renameat2,rmdir,setxattr,stat,stat64,statfs,statfs64,statx,symlink,symlinkat,truncate,truncate64,unlink,unlinkat,utime,utimensat,utimes 39@file-system=access,chdir,chmod,close,creat,faccessat,faccessat2,fallocate,fchdir,fchmod,fchmodat,fcntl,fcntl64,fgetxattr,flistxattr,fremovexattr,fsetxattr,fstat,fstat64,fstatat64,fstatfs,fstatfs64,ftruncate,ftruncate64,futimesat,getcwd,getdents,getdents64,getxattr,inotify_add_watch,inotify_init,inotify_init1,inotify_rm_watch,lgetxattr,link,linkat,listxattr,llistxattr,lremovexattr,lsetxattr,lstat,lstat64,mkdir,mkdirat,mknod,mknodat,mmap,mmap2,munmap,newfstatat,oldfstat,oldlstat,oldstat,open,openat,readlink,readlinkat,removexattr,rename,renameat,renameat2,rmdir,setxattr,stat,stat64,statfs,statfs64,statx,symlink,symlinkat,truncate,truncate64,unlink,unlinkat,utime,utimensat,utimes
diff --git a/platform/rpm/firejail.spec b/platform/rpm/firejail.spec
index acdc8d561..86cd6006e 100644
--- a/platform/rpm/firejail.spec
+++ b/platform/rpm/firejail.spec
@@ -45,8 +45,8 @@ rm -rf %{buildroot}
45%{_mandir}/man1/__NAME__.1.gz 45%{_mandir}/man1/__NAME__.1.gz
46%{_mandir}/man1/firecfg.1.gz 46%{_mandir}/man1/firecfg.1.gz
47%{_mandir}/man1/firemon.1.gz 47%{_mandir}/man1/firemon.1.gz
48%{_mandir}/man1/jailcheck.1.gz
48%{_mandir}/man5/__NAME__-login.5.gz 49%{_mandir}/man5/__NAME__-login.5.gz
49%{_mandir}/man5/__NAME__-profile.5.gz 50%{_mandir}/man5/__NAME__-profile.5.gz
50%{_mandir}/man5/__NAME__-users.5.gz 51%{_mandir}/man5/__NAME__-users.5.gz
51%{_mandir}/man5/jailcheck.5.gz
52%config(noreplace) %{_sysconfdir}/__NAME__ 52%config(noreplace) %{_sysconfdir}/__NAME__
diff --git a/src/common.mk.in b/src/common.mk.in
index f88da55ac..5ae8bf204 100644
--- a/src/common.mk.in
+++ b/src/common.mk.in
@@ -15,7 +15,6 @@ HAVE_NETWORK=@HAVE_NETWORK@
15HAVE_USERNS=@HAVE_USERNS@ 15HAVE_USERNS=@HAVE_USERNS@
16HAVE_X11=@HAVE_X11@ 16HAVE_X11=@HAVE_X11@
17HAVE_FILE_TRANSFER=@HAVE_FILE_TRANSFER@ 17HAVE_FILE_TRANSFER=@HAVE_FILE_TRANSFER@
18HAVE_WHITELIST=@HAVE_WHITELIST@
19HAVE_GLOBALCFG=@HAVE_GLOBALCFG@ 18HAVE_GLOBALCFG=@HAVE_GLOBALCFG@
20HAVE_APPARMOR=@HAVE_APPARMOR@ 19HAVE_APPARMOR=@HAVE_APPARMOR@
21HAVE_OVERLAYFS=@HAVE_OVERLAYFS@ 20HAVE_OVERLAYFS=@HAVE_OVERLAYFS@
@@ -42,7 +41,7 @@ BINOBJS = $(foreach file, $(OBJS), $file)
42CFLAGS = @CFLAGS@ 41CFLAGS = @CFLAGS@
43CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' $(HAVE_GCOV) 42CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' $(HAVE_GCOV)
44CFLAGS += -DPREFIX='"$(prefix)"' -DSYSCONFDIR='"$(sysconfdir)/firejail"' -DLIBDIR='"$(libdir)"' -DBINDIR='"$(bindir)"' 43CFLAGS += -DPREFIX='"$(prefix)"' -DSYSCONFDIR='"$(sysconfdir)/firejail"' -DLIBDIR='"$(libdir)"' -DBINDIR='"$(bindir)"'
45MANFLAGS = $(HAVE_LTS) $(HAVE_OUTPUT) $(HAVE_X11) $(HAVE_PRIVATE_HOME) $(HAVE_APPARMOR) $(HAVE_OVERLAYFS) $(HAVE_USERTMPFS) $(HAVE_DBUSPROXY) $(HAVE_FIRETUNNEL) $(HAVE_GLOBALCFG) $(HAVE_CHROOT) $(HAVE_NETWORK) $(HAVE_USERNS) $(HAVE_FILE_TRANSFER) $(HAVE_WHITELIST) $(HAVE_SELINUX) $(HAVE_SUID) $(HAVE_FORCE_NONEWPRIVS) 44MANFLAGS = $(HAVE_LTS) $(HAVE_OUTPUT) $(HAVE_X11) $(HAVE_PRIVATE_HOME) $(HAVE_APPARMOR) $(HAVE_OVERLAYFS) $(HAVE_USERTMPFS) $(HAVE_DBUSPROXY) $(HAVE_FIRETUNNEL) $(HAVE_GLOBALCFG) $(HAVE_CHROOT) $(HAVE_NETWORK) $(HAVE_USERNS) $(HAVE_FILE_TRANSFER) $(HAVE_SELINUX) $(HAVE_SUID) $(HAVE_FORCE_NONEWPRIVS)
46CFLAGS += $(MANFLAGS) 45CFLAGS += $(MANFLAGS)
47CFLAGS += -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIE -Wformat -Wformat-security 46CFLAGS += -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIE -Wformat -Wformat-security
48LDFLAGS += -pie -fPIE -Wl,-z,relro -Wl,-z,now -lpthread 47LDFLAGS += -pie -fPIE -Wl,-z,relro -Wl,-z,now -lpthread
diff --git a/src/fbuilder/build_fs.c b/src/fbuilder/build_fs.c
index 8700e0ba1..019c3ac5a 100644
--- a/src/fbuilder/build_fs.c
+++ b/src/fbuilder/build_fs.c
@@ -182,12 +182,12 @@ static void var_callback(char *ptr) {
182void build_var(const char *fname, FILE *fp) { 182void build_var(const char *fname, FILE *fp) {
183 assert(fname); 183 assert(fname);
184 184
185 var_skip = filedb_load_whitelist(var_skip, "whitelist-var-common.inc", "whitelist /var/"); 185 var_skip = filedb_load_whitelist(var_skip, "whitelist-var-common.inc", "allow /var/");
186 process_files(fname, "/var", var_callback); 186 process_files(fname, "/var", var_callback);
187 187
188 // always whitelist /var 188 // always whitelist /var
189 if (var_out) 189 if (var_out)
190 filedb_print(var_out, "whitelist /var/", fp); 190 filedb_print(var_out, "allow /var/", fp);
191 fprintf(fp, "include whitelist-var-common.inc\n"); 191 fprintf(fp, "include whitelist-var-common.inc\n");
192} 192}
193 193
@@ -222,12 +222,12 @@ static void share_callback(char *ptr) {
222void build_share(const char *fname, FILE *fp) { 222void build_share(const char *fname, FILE *fp) {
223 assert(fname); 223 assert(fname);
224 224
225 share_skip = filedb_load_whitelist(share_skip, "whitelist-usr-share-common.inc", "whitelist /usr/share/"); 225 share_skip = filedb_load_whitelist(share_skip, "whitelist-usr-share-common.inc", "allow /usr/share/");
226 process_files(fname, "/usr/share", share_callback); 226 process_files(fname, "/usr/share", share_callback);
227 227
228 // always whitelist /usr/share 228 // always whitelist /usr/share
229 if (share_out) 229 if (share_out)
230 filedb_print(share_out, "whitelist /usr/share/", fp); 230 filedb_print(share_out, "allow /usr/share/", fp);
231 fprintf(fp, "include whitelist-usr-share-common.inc\n"); 231 fprintf(fp, "include whitelist-usr-share-common.inc\n");
232} 232}
233 233
diff --git a/src/fbuilder/build_home.c b/src/fbuilder/build_home.c
index b3ec6cffd..f283a0cce 100644
--- a/src/fbuilder/build_home.c
+++ b/src/fbuilder/build_home.c
@@ -138,7 +138,7 @@ void build_home(const char *fname, FILE *fp) {
138 assert(fname); 138 assert(fname);
139 139
140 // load whitelist common 140 // load whitelist common
141 db_skip = filedb_load_whitelist(db_skip, "whitelist-common.inc", "whitelist ${HOME}/"); 141 db_skip = filedb_load_whitelist(db_skip, "whitelist-common.inc", "allow ${HOME}/");
142 142
143 // find user home directory 143 // find user home directory
144 struct passwd *pw = getpwuid(getuid()); 144 struct passwd *pw = getpwuid(getuid());
@@ -166,7 +166,7 @@ void build_home(const char *fname, FILE *fp) {
166 166
167 // print the out list if any 167 // print the out list if any
168 if (db_out) { 168 if (db_out) {
169 filedb_print(db_out, "whitelist ${HOME}/", fp); 169 filedb_print(db_out, "allow ${HOME}/", fp);
170 fprintf(fp, "include whitelist-common.inc\n"); 170 fprintf(fp, "include whitelist-common.inc\n");
171 } 171 }
172 else 172 else
diff --git a/src/fbuilder/build_profile.c b/src/fbuilder/build_profile.c
index 1726b4dbb..5df19f511 100644
--- a/src/fbuilder/build_profile.c
+++ b/src/fbuilder/build_profile.c
@@ -24,21 +24,6 @@
24#define TRACE_OUTPUT "/tmp/firejail-trace.XXXXXX" 24#define TRACE_OUTPUT "/tmp/firejail-trace.XXXXXX"
25#define STRACE_OUTPUT "/tmp/firejail-strace.XXXXXX" 25#define STRACE_OUTPUT "/tmp/firejail-strace.XXXXXX"
26 26
27/* static char *cmdlist[] = { */
28/* "/usr/bin/firejail", */
29/* "--quiet", */
30/* "--output=" TRACE_OUTPUT, */
31/* "--noprofile", */
32/* "--caps.drop=all", */
33/* "--nonewprivs", */
34/* "--trace", */
35/* "--shell=none", */
36/* "/usr/bin/strace", // also used as a marker in build_profile() */
37/* "-c", */
38/* "-f", */
39/* "-o" STRACE_OUTPUT, */
40/* }; */
41
42void build_profile(int argc, char **argv, int index, FILE *fp) { 27void build_profile(int argc, char **argv, int index, FILE *fp) {
43 // next index is the application name 28 // next index is the application name
44 if (index >= argc) { 29 if (index >= argc) {
@@ -158,14 +143,14 @@ void build_profile(int argc, char **argv, int index, FILE *fp) {
158 fprintf(fp, "### Enable as many of them as you can! A very important one is\n"); 143 fprintf(fp, "### Enable as many of them as you can! A very important one is\n");
159 fprintf(fp, "### \"disable-exec.inc\". This will make among other things your home\n"); 144 fprintf(fp, "### \"disable-exec.inc\". This will make among other things your home\n");
160 fprintf(fp, "### and /tmp directories non-executable.\n"); 145 fprintf(fp, "### and /tmp directories non-executable.\n");
161 fprintf(fp, "include disable-common.inc\n"); 146 fprintf(fp, "include disable-common.inc\t# dangerous directories like ~/.ssh and ~/.gnupg\n");
162 fprintf(fp, "#include disable-devel.inc\n"); 147 fprintf(fp, "#include disable-devel.inc\t# development tools such as gcc and gdb\n");
163 fprintf(fp, "#include disable-exec.inc\n"); 148 fprintf(fp, "#include disable-exec.inc\t# non-executable directories such as /var, /tmp, and /home\n");
164 fprintf(fp, "#include disable-interpreters.inc\n"); 149 fprintf(fp, "#include disable-interpreters.inc\t# perl, python, lua etc.\n");
165 fprintf(fp, "include disable-passwdmgr.inc\n"); 150 fprintf(fp, "include disable-passwdmgr.inc\t# password managers\n");
166 fprintf(fp, "include disable-programs.inc\n"); 151 fprintf(fp, "include disable-programs.inc\t# user configuration for programs such as firefox, vlc etc.\n");
167 fprintf(fp, "#include disable-shell.inc\n"); 152 fprintf(fp, "#include disable-shell.inc\t# sh, bash, zsh etc.\n");
168 fprintf(fp, "#include disable-xdg.inc\n"); 153 fprintf(fp, "#include disable-xdg.inc\t# standard user directories: Documents, Pictures, Videos, Music\n");
169 fprintf(fp, "\n"); 154 fprintf(fp, "\n");
170 155
171 fprintf(fp, "### Home Directory Whitelisting ###\n"); 156 fprintf(fp, "### Home Directory Whitelisting ###\n");
@@ -180,18 +165,19 @@ void build_profile(int argc, char **argv, int index, FILE *fp) {
180 build_var(trace_output, fp); 165 build_var(trace_output, fp);
181 fprintf(fp, "\n"); 166 fprintf(fp, "\n");
182 167
183 fprintf(fp, "#apparmor\n"); 168 fprintf(fp, "#apparmor\t# if you have AppArmor running, try this one!\n");
184 fprintf(fp, "caps.drop all\n"); 169 fprintf(fp, "caps.drop all\n");
185 fprintf(fp, "ipc-namespace\n"); 170 fprintf(fp, "ipc-namespace\n");
186 fprintf(fp, "netfilter\n"); 171 fprintf(fp, "netfilter\n");
187 fprintf(fp, "#nodvd\n"); 172 fprintf(fp, "#no3d\t# disable 3D acceleration\n");
188 fprintf(fp, "#nogroups\n"); 173 fprintf(fp, "#nodvd\t# disable DVD and CD devices\n");
189 fprintf(fp, "#noinput\n"); 174 fprintf(fp, "#nogroups\t# disable supplementary user groups\n");
175 fprintf(fp, "#noinput\t# disable input devices\n");
190 fprintf(fp, "nonewprivs\n"); 176 fprintf(fp, "nonewprivs\n");
191 fprintf(fp, "noroot\n"); 177 fprintf(fp, "noroot\n");
192 fprintf(fp, "#notv\n"); 178 fprintf(fp, "#notv\t# disable DVB TV devices\n");
193 fprintf(fp, "#nou2f\n"); 179 fprintf(fp, "#nou2f\t# disable U2F devices\n");
194 fprintf(fp, "#novideo\n"); 180 fprintf(fp, "#novideo\t# disable video capture devices\n");
195 build_protocol(trace_output, fp); 181 build_protocol(trace_output, fp);
196 fprintf(fp, "seccomp\n"); 182 fprintf(fp, "seccomp\n");
197 if (!have_strace) { 183 if (!have_strace) {
@@ -203,19 +189,21 @@ void build_profile(int argc, char **argv, int index, FILE *fp) {
203 else 189 else
204 build_seccomp(strace_output, fp); 190 build_seccomp(strace_output, fp);
205 fprintf(fp, "shell none\n"); 191 fprintf(fp, "shell none\n");
206 fprintf(fp, "#tracelog\n"); 192 fprintf(fp, "tracelog\n");
207 fprintf(fp, "\n"); 193 fprintf(fp, "\n");
208 194
209 fprintf(fp, "#disable-mnt\n"); 195 fprintf(fp, "#disable-mnt\t# no access to /mnt, /media, /run/mount and /run/media\n");
210 build_bin(trace_output, fp); 196 build_bin(trace_output, fp);
211 fprintf(fp, "#private-lib\n"); 197 fprintf(fp, "#private-cache\t# run with an empty ~/.cache directory\n");
212 build_dev(trace_output, fp); 198 build_dev(trace_output, fp);
213 build_etc(trace_output, fp); 199 build_etc(trace_output, fp);
200 fprintf(fp, "#private-lib\n");
214 build_tmp(trace_output, fp); 201 build_tmp(trace_output, fp);
215 fprintf(fp, "\n"); 202 fprintf(fp, "\n");
216 203
217 fprintf(fp, "#dbus-user none\n"); 204 fprintf(fp, "#dbus-user none\n");
218 fprintf(fp, "#dbus-system none\n"); 205 fprintf(fp, "#dbus-system none\n");
206 fprintf(fp, "\n");
219 fprintf(fp, "#memory-deny-write-execute\n"); 207 fprintf(fp, "#memory-deny-write-execute\n");
220 208
221 if (!arg_debug) { 209 if (!arg_debug) {
diff --git a/src/fbuilder/build_seccomp.c b/src/fbuilder/build_seccomp.c
index dc3cce456..b3187227e 100644
--- a/src/fbuilder/build_seccomp.c
+++ b/src/fbuilder/build_seccomp.c
@@ -82,11 +82,12 @@ void build_seccomp(const char *fname, FILE *fp) {
82//*************************************** 82//***************************************
83// protocol 83// protocol
84//*************************************** 84//***************************************
85int unix_s = 0; 85static int unix_s = 0;
86int inet = 0; 86static int inet = 0;
87int inet6 = 0; 87static int inet6 = 0;
88int netlink = 0; 88static int netlink = 0;
89int packet = 0; 89static int packet = 0;
90static int bluetooth = 0;
90static void process_protocol(const char *fname) { 91static void process_protocol(const char *fname) {
91 assert(fname); 92 assert(fname);
92 93
@@ -135,6 +136,8 @@ static void process_protocol(const char *fname) {
135 netlink = 1; 136 netlink = 1;
136 else if (strncmp(ptr, "AF_PACKET ", 10) == 0) 137 else if (strncmp(ptr, "AF_PACKET ", 10) == 0)
137 packet = 1; 138 packet = 1;
139 else if (strncmp(ptr, "AF_BLUETOOTH ", 13) == 0)
140 bluetooth = 1;
138 } 141 }
139 142
140 fclose(fp); 143 fclose(fp);
@@ -161,22 +164,22 @@ void build_protocol(const char *fname, FILE *fp) {
161 } 164 }
162 165
163 int net = 0; 166 int net = 0;
164 if (unix_s || inet || inet6 || netlink || packet) { 167 if (unix_s || inet || inet6 || netlink || packet || bluetooth) {
165 fprintf(fp, "protocol "); 168 fprintf(fp, "protocol ");
166 if (unix_s) 169 if (unix_s)
167 fprintf(fp, "unix,"); 170 fprintf(fp, "unix,");
168 if (inet) { 171 if (inet || inet6) {
169 fprintf(fp, "inet,"); 172 fprintf(fp, "inet,inet6,");
170 net = 1;
171 }
172 if (inet6) {
173 fprintf(fp, "inet6,");
174 net = 1; 173 net = 1;
175 } 174 }
176 if (netlink) 175 if (netlink)
177 fprintf(fp, "netlink,"); 176 fprintf(fp, "netlink,");
178 if (packet) { 177 if (packet) {
179 fprintf(fp, "packet"); 178 fprintf(fp, "packet,");
179 net = 1;
180 }
181 if (bluetooth) {
182 fprintf(fp, "bluetooth");
180 net = 1; 183 net = 1;
181 } 184 }
182 fprintf(fp, "\n"); 185 fprintf(fp, "\n");
diff --git a/src/fbuilder/main.c b/src/fbuilder/main.c
index 35ec49519..6c9fc507c 100644
--- a/src/fbuilder/main.c
+++ b/src/fbuilder/main.c
@@ -39,7 +39,7 @@ printf("\n");
39 int i; 39 int i;
40 int prog_index = 0; 40 int prog_index = 0;
41 FILE *fp = stdout; 41 FILE *fp = stdout;
42 int prof_file = 0; 42 char *prof_file = NULL;
43 43
44 // parse arguments and extract program index 44 // parse arguments and extract program index
45 for (i = 1; i < argc; i++) { 45 for (i = 1; i < argc; i++) {
@@ -70,8 +70,7 @@ printf("\n");
70 fprintf(stderr, "Error: cannot open profile file.\n"); 70 fprintf(stderr, "Error: cannot open profile file.\n");
71 exit(1); 71 exit(1);
72 } 72 }
73 prof_file = 1; 73 prof_file = argv[i] + 8;
74 // do nothing, this is passed down from firejail
75 } 74 }
76 else { 75 else {
77 if (*argv[i] == '-') { 76 if (*argv[i] == '-') {
@@ -87,8 +86,11 @@ printf("\n");
87 if (prog_index == 0) { 86 if (prog_index == 0) {
88 fprintf(stderr, "Error : program and arguments required\n"); 87 fprintf(stderr, "Error : program and arguments required\n");
89 usage(); 88 usage();
90 if (prof_file) 89 if (prof_file) {
91 fclose(fp); 90 fclose(fp);
91 int rv = unlink(prof_file);
92 (void) rv;
93 }
92 exit(1); 94 exit(1);
93 } 95 }
94 96
diff --git a/src/fcopy/main.c b/src/fcopy/main.c
index 572e9f601..31810de9a 100644
--- a/src/fcopy/main.c
+++ b/src/fcopy/main.c
@@ -19,11 +19,15 @@
19 */ 19 */
20 20
21#include "../include/common.h" 21#include "../include/common.h"
22#include <fcntl.h>
23#include <ftw.h> 22#include <ftw.h>
24#include <errno.h> 23#include <errno.h>
25#include <pwd.h> 24#include <pwd.h>
26 25
26#include <fcntl.h>
27#ifndef O_PATH
28#define O_PATH 010000000
29#endif
30
27#if HAVE_SELINUX 31#if HAVE_SELINUX
28#include <sys/stat.h> 32#include <sys/stat.h>
29#include <sys/types.h> 33#include <sys/types.h>
@@ -55,7 +59,7 @@ static void selinux_relabel_path(const char *path, const char *inside_path) {
55 assert(path); 59 assert(path);
56 assert(inside_path); 60 assert(inside_path);
57#if HAVE_SELINUX 61#if HAVE_SELINUX
58 char procfs_path[64]; 62 char procfs_path[64];
59 char *fcon = NULL; 63 char *fcon = NULL;
60 int fd; 64 int fd;
61 struct stat st; 65 struct stat st;
@@ -69,20 +73,23 @@ static void selinux_relabel_path(const char *path, const char *inside_path) {
69 if (!label_hnd) 73 if (!label_hnd)
70 label_hnd = selabel_open(SELABEL_CTX_FILE, NULL, 0); 74 label_hnd = selabel_open(SELABEL_CTX_FILE, NULL, 0);
71 75
76 if (!label_hnd)
77 errExit("selabel_open");
78
72 /* Open the file as O_PATH, to pin it while we determine and adjust the label */ 79 /* Open the file as O_PATH, to pin it while we determine and adjust the label */
73 fd = open(path, O_NOFOLLOW|O_CLOEXEC|O_PATH); 80 fd = open(path, O_NOFOLLOW|O_CLOEXEC|O_PATH);
74 if (fd < 0) 81 if (fd < 0)
75 return; 82 return;
76 if (fstat(fd, &st) < 0) 83 if (fstat(fd, &st) < 0)
77 goto close; 84 goto close;
78 85
79 if (selabel_lookup_raw(label_hnd, &fcon, inside_path, st.st_mode) == 0) { 86 if (selabel_lookup_raw(label_hnd, &fcon, inside_path, st.st_mode) == 0) {
80 sprintf(procfs_path, "/proc/self/fd/%i", fd); 87 sprintf(procfs_path, "/proc/self/fd/%i", fd);
81 if (arg_debug) 88 if (arg_debug)
82 printf("Relabeling %s as %s (%s)\n", path, inside_path, fcon); 89 printf("Relabeling %s as %s (%s)\n", path, inside_path, fcon);
83 90
84 setfilecon_raw(procfs_path, fcon); 91 setfilecon_raw(procfs_path, fcon);
85 } 92 }
86 freecon(fcon); 93 freecon(fcon);
87 close: 94 close:
88 close(fd); 95 close(fd);
@@ -340,7 +347,7 @@ static char *check(const char *src) {
340 347
341errexit: 348errexit:
342 free(rsrc); 349 free(rsrc);
343 fprintf(stderr, "Error fcopy: invalid file %s\n", src); 350 fprintf(stderr, "Error fcopy: invalid ownership for file %s\n", src);
344 exit(1); 351 exit(1);
345} 352}
346 353
diff --git a/src/firecfg/firecfg.config b/src/firecfg/firecfg.config
index 474904ebf..7052f7509 100644
--- a/src/firecfg/firecfg.config
+++ b/src/firecfg/firecfg.config
@@ -38,6 +38,8 @@ abrowser
38akonadi_control 38akonadi_control
39akregator 39akregator
40alacarte 40alacarte
41alpine
42alpinef
41amarok 43amarok
42amule 44amule
43amuled 45amuled
@@ -140,6 +142,7 @@ claws-mail
140clawsker 142clawsker
141clementine 143clementine
142clion 144clion
145clion-eap
143clipit 146clipit
144clipgrab 147clipgrab
145cliqz 148cliqz
@@ -167,6 +170,7 @@ cvlc
167cyberfox 170cyberfox
168darktable 171darktable
169dconf-editor 172dconf-editor
173ddgr
170ddgtk 174ddgtk
171deadbeef 175deadbeef
172deluge 176deluge
@@ -186,7 +190,6 @@ display-im6.q16
186dnox 190dnox
187dnscrypt-proxy 191dnscrypt-proxy
188dnsmasq 192dnsmasq
189dolphin
190dolphin-emu 193dolphin-emu
191dooble 194dooble
192dooble-qt4 195dooble-qt4
@@ -271,6 +274,7 @@ freetube
271freshclam 274freshclam
272frogatto 275frogatto
273frozen-bubble 276frozen-bubble
277funnyboat
274gajim 278gajim
275gajim-history-manager 279gajim-history-manager
276galculator 280galculator
@@ -350,6 +354,7 @@ google-chrome-unstable
350google-earth 354google-earth
351google-earth-pro 355google-earth-pro
352google-play-music-desktop-player 356google-play-music-desktop-player
357googler
353gpa 358gpa
354gpicview 359gpicview
355gpredict 360gpredict
@@ -357,6 +362,7 @@ gradio
357gramps 362gramps
358gravity-beams-and-evaporating-stars 363gravity-beams-and-evaporating-stars
359gthumb 364gthumb
365gtk-pipe-viewer
360gtk-straw-viewer 366gtk-straw-viewer
361gtk-youtube-viewer 367gtk-youtube-viewer
362gtk2-youtube-viewer 368gtk2-youtube-viewer
@@ -443,6 +449,7 @@ kube
443kwrite 449kwrite
444leafpad 450leafpad
445# less - breaks man 451# less - breaks man
452librecad
446libreoffice 453libreoffice
447librewolf 454librewolf
448librewolf-nightly 455librewolf-nightly
@@ -450,6 +457,7 @@ liferea
450lightsoff 457lightsoff
451lincity-ng 458lincity-ng
452links 459links
460links2
453linphone 461linphone
454lmms 462lmms
455lobase 463lobase
@@ -489,6 +497,7 @@ mathematica
489matrix-mirage 497matrix-mirage
490mattermost-desktop 498mattermost-desktop
491mcabber 499mcabber
500mcomix
492mediainfo 501mediainfo
493mediathekview 502mediathekview
494megaglest 503megaglest
@@ -626,6 +635,7 @@ pinball
626pingus 635pingus
627pinta 636pinta
628pioneer 637pioneer
638pipe-viewer
629pithos 639pithos
630pitivi 640pitivi
631pix 641pix
@@ -648,6 +658,7 @@ pybitmessage
648# pycharm-professional 658# pycharm-professional
649# pzstd - disable until we fix CLI archivers for makepkg on Arch (see discussion in #3095) 659# pzstd - disable until we fix CLI archivers for makepkg on Arch (see discussion in #3095)
650qbittorrent 660qbittorrent
661qcomicbook
651qemu-launcher 662qemu-launcher
652qgis 663qgis
653qlipper 664qlipper
@@ -868,6 +879,7 @@ xfce4-notes
868xfce4-screenshooter 879xfce4-screenshooter
869xiphos 880xiphos
870xlinks 881xlinks
882xlinks2
871xmms 883xmms
872xmr-stak 884xmr-stak
873xonotic 885xonotic
diff --git a/src/firejail/appimage.c b/src/firejail/appimage.c
index 6b9fed765..2266fa499 100644
--- a/src/firejail/appimage.c
+++ b/src/firejail/appimage.c
@@ -21,6 +21,7 @@
21// sudo mount -o loop krita-3.0-x86_64.appimage mnt 21// sudo mount -o loop krita-3.0-x86_64.appimage mnt
22 22
23#include "firejail.h" 23#include "firejail.h"
24#include "../include/gcov_wrapper.h"
24#include <sys/types.h> 25#include <sys/types.h>
25#include <sys/stat.h> 26#include <sys/stat.h>
26#include <sys/mount.h> 27#include <sys/mount.h>
@@ -30,6 +31,7 @@
30 31
31static char *devloop = NULL; // device file 32static char *devloop = NULL; // device file
32static long unsigned size = 0; // offset into appimage file 33static long unsigned size = 0; // offset into appimage file
34#define MAXBUF 4096
33 35
34#ifdef LOOP_CTL_GET_FREE // test for older kernels; this definition is found in /usr/include/linux/loop.h 36#ifdef LOOP_CTL_GET_FREE // test for older kernels; this definition is found in /usr/include/linux/loop.h
35static void err_loop(void) { 37static void err_loop(void) {
@@ -38,6 +40,36 @@ static void err_loop(void) {
38} 40}
39#endif 41#endif
40 42
43// return 1 if found
44int appimage_find_profile(const char *archive) {
45 assert(archive);
46 assert(strlen(archive));
47
48 // try to match the name of the archive with the list of programs in /usr/lib/firejail/firecfg.config
49 FILE *fp = fopen(LIBDIR "/firejail/firecfg.config", "r");
50 if (!fp) {
51 fprintf(stderr, "Error: cannot find %s, firejail is not correctly installed\n", LIBDIR "/firejail/firecfg.config");
52 exit(1);
53 }
54 char buf[MAXBUF];
55 while (fgets(buf, MAXBUF, fp)) {
56 if (*buf == '#')
57 continue;
58 char *ptr = strchr(buf, '\n');
59 if (ptr)
60 *ptr = '\0';
61 if (strcasestr(archive, buf)) {
62 fclose(fp);
63 return profile_find_firejail(buf, 1);
64 }
65 }
66
67 fclose(fp);
68 return 0;
69
70}
71
72
41void appimage_set(const char *appimage) { 73void appimage_set(const char *appimage) {
42 assert(appimage); 74 assert(appimage);
43 assert(devloop == NULL); // don't call this twice! 75 assert(devloop == NULL); // don't call this twice!
@@ -109,9 +141,8 @@ void appimage_set(const char *appimage) {
109 141
110 if (cfg.cwd) 142 if (cfg.cwd)
111 env_store_name_val("OWD", cfg.cwd, SETENV); 143 env_store_name_val("OWD", cfg.cwd, SETENV);
112#ifdef HAVE_GCOV 144
113 __gcov_flush(); 145 __gcov_flush();
114#endif
115#else 146#else
116 fprintf(stderr, "Error: /dev/loop-control interface is not supported by your kernel\n"); 147 fprintf(stderr, "Error: /dev/loop-control interface is not supported by your kernel\n");
117 exit(1); 148 exit(1);
diff --git a/src/firejail/arp.c b/src/firejail/arp.c
index 1e9641097..bbab9a6d9 100644
--- a/src/firejail/arp.c
+++ b/src/firejail/arp.c
@@ -277,7 +277,7 @@ static uint32_t arp_random(const char *dev, Bridge *br) {
277 int i = 0; 277 int i = 0;
278 for (i = 0; i < 10; i++) { 278 for (i = 0; i < 10; i++) {
279 dest = start + ((uint32_t) rand()) % range; 279 dest = start + ((uint32_t) rand()) % range;
280 if (dest == ifip) // do not allow the interface address 280 if (dest == ifip || dest == cfg.defaultgw) // do not allow the interface address or the default gateway
281 continue; // try again 281 continue; // try again
282 282
283 // if we've made it up to here, we have a valid address 283 // if we've made it up to here, we have a valid address
@@ -325,7 +325,7 @@ static uint32_t arp_sequential(const char *dev, Bridge *br) {
325 325
326 // loop through addresses and stop as soon as you find an unused one 326 // loop through addresses and stop as soon as you find an unused one
327 while (dest <= last) { 327 while (dest <= last) {
328 if (dest == ifip) { 328 if (dest == ifip || dest == cfg.defaultgw) {
329 dest++; 329 dest++;
330 continue; 330 continue;
331 } 331 }
diff --git a/src/firejail/checkcfg.c b/src/firejail/checkcfg.c
index 614b144e5..06e6f0ccb 100644
--- a/src/firejail/checkcfg.c
+++ b/src/firejail/checkcfg.c
@@ -35,6 +35,7 @@ char *xvfb_extra_params = "";
35char *netfilter_default = NULL; 35char *netfilter_default = NULL;
36unsigned long join_timeout = 5000000; // microseconds 36unsigned long join_timeout = 5000000; // microseconds
37char *config_seccomp_error_action_str = "EPERM"; 37char *config_seccomp_error_action_str = "EPERM";
38char *config_seccomp_filter_add = NULL;
38char **whitelist_reject_topdirs = NULL; 39char **whitelist_reject_topdirs = NULL;
39 40
40int checkcfg(int val) { 41int checkcfg(int val) {
@@ -103,18 +104,20 @@ int checkcfg(int val) {
103 PARSE_YESNO(CFG_USERNS, "userns") 104 PARSE_YESNO(CFG_USERNS, "userns")
104 PARSE_YESNO(CFG_CHROOT, "chroot") 105 PARSE_YESNO(CFG_CHROOT, "chroot")
105 PARSE_YESNO(CFG_FIREJAIL_PROMPT, "firejail-prompt") 106 PARSE_YESNO(CFG_FIREJAIL_PROMPT, "firejail-prompt")
106 PARSE_YESNO(CFG_FOLLOW_SYMLINK_AS_USER, "follow-symlink-as-user")
107 PARSE_YESNO(CFG_FORCE_NONEWPRIVS, "force-nonewprivs") 107 PARSE_YESNO(CFG_FORCE_NONEWPRIVS, "force-nonewprivs")
108 PARSE_YESNO(CFG_SECCOMP, "seccomp") 108 PARSE_YESNO(CFG_SECCOMP, "seccomp")
109 PARSE_YESNO(CFG_WHITELIST, "whitelist")
110 PARSE_YESNO(CFG_NETWORK, "network") 109 PARSE_YESNO(CFG_NETWORK, "network")
111 PARSE_YESNO(CFG_RESTRICTED_NETWORK, "restricted-network") 110 PARSE_YESNO(CFG_RESTRICTED_NETWORK, "restricted-network")
112 PARSE_YESNO(CFG_XEPHYR_WINDOW_TITLE, "xephyr-window-title") 111 PARSE_YESNO(CFG_XEPHYR_WINDOW_TITLE, "xephyr-window-title")
113 PARSE_YESNO(CFG_OVERLAYFS, "overlayfs") 112 PARSE_YESNO(CFG_OVERLAYFS, "overlayfs")
114 PARSE_YESNO(CFG_PRIVATE_HOME, "private-home") 113 PARSE_YESNO(CFG_PRIVATE_BIN, "private-bin")
114 PARSE_YESNO(CFG_PRIVATE_BIN_NO_LOCAL, "private-bin-no-local")
115 PARSE_YESNO(CFG_PRIVATE_CACHE, "private-cache") 115 PARSE_YESNO(CFG_PRIVATE_CACHE, "private-cache")
116 PARSE_YESNO(CFG_PRIVATE_ETC, "private-etc")
117 PARSE_YESNO(CFG_PRIVATE_HOME, "private-home")
116 PARSE_YESNO(CFG_PRIVATE_LIB, "private-lib") 118 PARSE_YESNO(CFG_PRIVATE_LIB, "private-lib")
117 PARSE_YESNO(CFG_PRIVATE_BIN_NO_LOCAL, "private-bin-no-local") 119 PARSE_YESNO(CFG_PRIVATE_OPT, "private-opt")
120 PARSE_YESNO(CFG_PRIVATE_SRV, "private-srv")
118 PARSE_YESNO(CFG_DISABLE_MNT, "disable-mnt") 121 PARSE_YESNO(CFG_DISABLE_MNT, "disable-mnt")
119 PARSE_YESNO(CFG_XPRA_ATTACH, "xpra-attach") 122 PARSE_YESNO(CFG_XPRA_ATTACH, "xpra-attach")
120 PARSE_YESNO(CFG_BROWSER_DISABLE_U2F, "browser-disable-u2f") 123 PARSE_YESNO(CFG_BROWSER_DISABLE_U2F, "browser-disable-u2f")
@@ -131,8 +134,7 @@ int checkcfg(int val) {
131 *end = '\0'; 134 *end = '\0';
132 135
133 // is the file present? 136 // is the file present?
134 struct stat s; 137 if (access(fname, F_OK) == -1) {
135 if (stat(fname, &s) == -1) {
136 fprintf(stderr, "Error: netfilter-default file %s not available\n", fname); 138 fprintf(stderr, "Error: netfilter-default file %s not available\n", fname);
137 exit(1); 139 exit(1);
138 } 140 }
@@ -223,6 +225,10 @@ int checkcfg(int val) {
223 else if (strncmp(ptr, "join-timeout ", 13) == 0) 225 else if (strncmp(ptr, "join-timeout ", 13) == 0)
224 join_timeout = strtoul(ptr + 13, NULL, 10) * 1000000; // seconds to microseconds 226 join_timeout = strtoul(ptr + 13, NULL, 10) * 1000000; // seconds to microseconds
225 227
228 // add rules to default seccomp filter
229 else if (strncmp(ptr, "seccomp-filter-add ", 19) == 0)
230 config_seccomp_filter_add = seccomp_check_list(ptr + 19);
231
226 // seccomp error action 232 // seccomp error action
227 else if (strncmp(ptr, "seccomp-error-action ", 21) == 0) { 233 else if (strncmp(ptr, "seccomp-error-action ", 21) == 0) {
228 if (strcmp(ptr + 21, "kill") == 0) 234 if (strcmp(ptr + 21, "kill") == 0)
@@ -295,7 +301,7 @@ errout:
295 301
296void print_compiletime_support(void) { 302void print_compiletime_support(void) {
297 printf("Compile time support:\n"); 303 printf("Compile time support:\n");
298 printf("\t- Always force nonewprivs support is %s\n", 304 printf("\t- always force nonewprivs support is %s\n",
299#ifdef HAVE_FORCE_NONEWPRIVS 305#ifdef HAVE_FORCE_NONEWPRIVS
300 "enabled" 306 "enabled"
301#else 307#else
@@ -335,14 +341,6 @@ void print_compiletime_support(void) {
335#endif 341#endif
336 ); 342 );
337 343
338 printf("\t- file and directory whitelisting support is %s\n",
339#ifdef HAVE_WHITELIST
340 "enabled"
341#else
342 "disabled"
343#endif
344 );
345
346 printf("\t- file transfer support is %s\n", 344 printf("\t- file transfer support is %s\n",
347#ifdef HAVE_FILE_TRANSFER 345#ifdef HAVE_FILE_TRANSFER
348 "enabled" 346 "enabled"
diff --git a/src/firejail/chroot.c b/src/firejail/chroot.c
index 757ffb1f7..37ec22117 100644
--- a/src/firejail/chroot.c
+++ b/src/firejail/chroot.c
@@ -20,6 +20,7 @@
20 20
21#ifdef HAVE_CHROOT 21#ifdef HAVE_CHROOT
22#include "firejail.h" 22#include "firejail.h"
23#include "../include/gcov_wrapper.h"
23#include <sys/mount.h> 24#include <sys/mount.h>
24#include <sys/sendfile.h> 25#include <sys/sendfile.h>
25#include <errno.h> 26#include <errno.h>
@@ -29,7 +30,6 @@
29#define O_PATH 010000000 30#define O_PATH 010000000
30#endif 31#endif
31 32
32
33// exit if error 33// exit if error
34void fs_check_chroot_dir(void) { 34void fs_check_chroot_dir(void) {
35 EUID_ASSERT(); 35 EUID_ASSERT();
@@ -163,12 +163,8 @@ void fs_chroot(const char *rootdir) {
163 int fd = openat(parentfd, "dev", O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC); 163 int fd = openat(parentfd, "dev", O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC);
164 if (fd == -1) 164 if (fd == -1)
165 errExit("open"); 165 errExit("open");
166 char *proc; 166 if (bind_mount_path_to_fd("/dev", fd))
167 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
168 errExit("asprintf");
169 if (mount("/dev", proc, NULL, MS_BIND|MS_REC, NULL) < 0)
170 errExit("mounting /dev"); 167 errExit("mounting /dev");
171 free(proc);
172 close(fd); 168 close(fd);
173 169
174#ifdef HAVE_X11 170#ifdef HAVE_X11
@@ -192,11 +188,8 @@ void fs_chroot(const char *rootdir) {
192 fd = openat(parentfd, "tmp/.X11-unix", O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC); 188 fd = openat(parentfd, "tmp/.X11-unix", O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC);
193 if (fd == -1) 189 if (fd == -1)
194 errExit("open"); 190 errExit("open");
195 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1) 191 if (bind_mount_path_to_fd("/tmp/.X11-unix", fd))
196 errExit("asprintf");
197 if (mount("/tmp/.X11-unix", proc, NULL, MS_BIND|MS_REC, NULL) < 0)
198 errExit("mounting /tmp/.X11-unix"); 192 errExit("mounting /tmp/.X11-unix");
199 free(proc);
200 close(fd); 193 close(fd);
201 } 194 }
202#endif // HAVE_X11 195#endif // HAVE_X11
@@ -225,19 +218,11 @@ void fs_chroot(const char *rootdir) {
225 fprintf(stderr, "Error: cannot open %s\n", pulse); 218 fprintf(stderr, "Error: cannot open %s\n", pulse);
226 exit(1); 219 exit(1);
227 } 220 }
228 free(pulse); 221 if (bind_mount_by_fd(src, dst))
229 222 errExit("mounting pulseaudio");
230 char *proc_src, *proc_dst;
231 if (asprintf(&proc_src, "/proc/self/fd/%d", src) == -1)
232 errExit("asprintf");
233 if (asprintf(&proc_dst, "/proc/self/fd/%d", dst) == -1)
234 errExit("asprintf");
235 if (mount(proc_src, proc_dst, NULL, MS_BIND|MS_REC, NULL) < 0)
236 errExit("mount bind");
237 free(proc_src);
238 free(proc_dst);
239 close(src); 223 close(src);
240 close(dst); 224 close(dst);
225 free(pulse);
241 226
242 // update /etc/machine-id in chroot 227 // update /etc/machine-id in chroot
243 update_file(parentfd, "etc/machine-id"); 228 update_file(parentfd, "etc/machine-id");
@@ -256,11 +241,8 @@ void fs_chroot(const char *rootdir) {
256 fd = openat(parentfd, &RUN_FIREJAIL_LIB_DIR[1], O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC); 241 fd = openat(parentfd, &RUN_FIREJAIL_LIB_DIR[1], O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC);
257 if (fd == -1) 242 if (fd == -1)
258 errExit("open"); 243 errExit("open");
259 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1) 244 if (bind_mount_path_to_fd(RUN_FIREJAIL_LIB_DIR, fd))
260 errExit("asprintf");
261 if (mount(RUN_FIREJAIL_LIB_DIR, proc, NULL, MS_BIND|MS_REC, NULL) < 0)
262 errExit("mount bind"); 245 errExit("mount bind");
263 free(proc);
264 close(fd); 246 close(fd);
265 247
266 // create /run/firejail/mnt directory in chroot 248 // create /run/firejail/mnt directory in chroot
@@ -271,29 +253,22 @@ void fs_chroot(const char *rootdir) {
271 fd = openat(parentfd, &RUN_MNT_DIR[1], O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC); 253 fd = openat(parentfd, &RUN_MNT_DIR[1], O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC);
272 if (fd == -1) 254 if (fd == -1)
273 errExit("open"); 255 errExit("open");
274 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1) 256 if (bind_mount_path_to_fd(RUN_MNT_DIR, fd))
275 errExit("asprintf");
276 if (mount(RUN_MNT_DIR, proc, NULL, MS_BIND|MS_REC, NULL) < 0)
277 errExit("mount bind"); 257 errExit("mount bind");
278 free(proc);
279 close(fd); 258 close(fd);
280 259
281 // update chroot resolv.conf 260 // update chroot resolv.conf
282 update_file(parentfd, "etc/resolv.conf"); 261 update_file(parentfd, "etc/resolv.conf");
283 262
284#ifdef HAVE_GCOV
285 __gcov_flush(); 263 __gcov_flush();
286#endif 264
287 // create /run/firejail/mnt/oroot 265 // create /run/firejail/mnt/oroot
288 char *oroot = RUN_OVERLAY_ROOT; 266 char *oroot = RUN_OVERLAY_ROOT;
289 if (mkdir(oroot, 0755) == -1) 267 if (mkdir(oroot, 0755) == -1)
290 errExit("mkdir"); 268 errExit("mkdir");
291 // mount the chroot dir on top of /run/firejail/mnt/oroot in order to reuse the apparmor rules for overlay 269 // mount the chroot dir on top of /run/firejail/mnt/oroot in order to reuse the apparmor rules for overlay
292 if (asprintf(&proc, "/proc/self/fd/%d", parentfd) == -1) 270 if (bind_mount_fd_to_path(parentfd, oroot))
293 errExit("asprintf");
294 if (mount(proc, oroot, NULL, MS_BIND|MS_REC, NULL) < 0)
295 errExit("mounting rootdir oroot"); 271 errExit("mounting rootdir oroot");
296 free(proc);
297 close(parentfd); 272 close(parentfd);
298 // chroot into the new directory 273 // chroot into the new directory
299 if (arg_debug) 274 if (arg_debug)
diff --git a/src/firejail/cmdline.c b/src/firejail/cmdline.c
index f902c4e1c..2fa68a55d 100644
--- a/src/firejail/cmdline.c
+++ b/src/firejail/cmdline.c
@@ -26,7 +26,7 @@
26#include <assert.h> 26#include <assert.h>
27#include <errno.h> 27#include <errno.h>
28 28
29static int cmdline_length(int argc, char **argv, int index) { 29static int cmdline_length(int argc, char **argv, int index, bool want_extra_quotes) {
30 assert(index != -1); 30 assert(index != -1);
31 31
32 unsigned i,j; 32 unsigned i,j;
@@ -46,10 +46,11 @@ static int cmdline_length(int argc, char **argv, int index) {
46 len += 3; 46 len += 3;
47 in_quotes = false; 47 in_quotes = false;
48 } else { 48 } else {
49 if (!in_quotes) 49 if (!in_quotes && want_extra_quotes)
50 len++; 50 len++;
51 len++; 51 len++;
52 in_quotes = true; 52 if (want_extra_quotes)
53 in_quotes = true;
53 } 54 }
54 } 55 }
55 if (in_quotes) { 56 if (in_quotes) {
@@ -64,7 +65,7 @@ static int cmdline_length(int argc, char **argv, int index) {
64 return len; 65 return len;
65} 66}
66 67
67static void quote_cmdline(char *command_line, char *window_title, int len, int argc, char **argv, int index) { 68static void quote_cmdline(char *command_line, char *window_title, int len, int argc, char **argv, int index, bool want_extra_quotes) {
68 assert(index != -1); 69 assert(index != -1);
69 70
70 unsigned i,j; 71 unsigned i,j;
@@ -103,14 +104,15 @@ static void quote_cmdline(char *command_line, char *window_title, int len, int a
103 // anything other 104 // anything other
104 else 105 else
105 { 106 {
106 if (!in_quotes) { 107 if (!in_quotes && want_extra_quotes) {
107 // open quotes 108 // open quotes
108 ptr1[0] = '\''; 109 ptr1[0] = '\'';
109 ptr1++; 110 ptr1++;
110 } 111 }
111 ptr1[0] = argv[i + index][j]; 112 ptr1[0] = argv[i + index][j];
112 ptr1++; 113 ptr1++;
113 in_quotes = true; 114 if (want_extra_quotes)
115 in_quotes = true;
114 } 116 }
115 } 117 }
116 // close quotes 118 // close quotes
@@ -134,12 +136,12 @@ static void quote_cmdline(char *command_line, char *window_title, int len, int a
134 assert((unsigned) len == strlen(command_line)); 136 assert((unsigned) len == strlen(command_line));
135} 137}
136 138
137void build_cmdline(char **command_line, char **window_title, int argc, char **argv, int index) { 139void build_cmdline(char **command_line, char **window_title, int argc, char **argv, int index, bool want_extra_quotes) {
138 // index == -1 could happen if we have --shell=none and no program was specified 140 // index == -1 could happen if we have --shell=none and no program was specified
139 // the program should exit with an error before entering this function 141 // the program should exit with an error before entering this function
140 assert(index != -1); 142 assert(index != -1);
141 143
142 int len = cmdline_length(argc, argv, index); 144 int len = cmdline_length(argc, argv, index, want_extra_quotes);
143 if (len > ARG_MAX) { 145 if (len > ARG_MAX) {
144 errno = E2BIG; 146 errno = E2BIG;
145 errExit("cmdline_length"); 147 errExit("cmdline_length");
@@ -152,7 +154,7 @@ void build_cmdline(char **command_line, char **window_title, int argc, char **ar
152 if (!*window_title) 154 if (!*window_title)
153 errExit("malloc"); 155 errExit("malloc");
154 156
155 quote_cmdline(*command_line, *window_title, len, argc, argv, index); 157 quote_cmdline(*command_line, *window_title, len, argc, argv, index, want_extra_quotes);
156 158
157 if (arg_debug) 159 if (arg_debug)
158 printf("Building quoted command line: %s\n", *command_line); 160 printf("Building quoted command line: %s\n", *command_line);
@@ -161,17 +163,17 @@ void build_cmdline(char **command_line, char **window_title, int argc, char **ar
161 assert(*window_title); 163 assert(*window_title);
162} 164}
163 165
164void build_appimage_cmdline(char **command_line, char **window_title, int argc, char **argv, int index) { 166void build_appimage_cmdline(char **command_line, char **window_title, int argc, char **argv, int index, bool want_extra_quotes) {
165 // index == -1 could happen if we have --shell=none and no program was specified 167 // index == -1 could happen if we have --shell=none and no program was specified
166 // the program should exit with an error before entering this function 168 // the program should exit with an error before entering this function
167 assert(index != -1); 169 assert(index != -1);
168 170
169 char *apprun_path = RUN_FIREJAIL_APPIMAGE_DIR "/AppRun"; 171 char *apprun_path = RUN_FIREJAIL_APPIMAGE_DIR "/AppRun";
170 172
171 int len1 = cmdline_length(argc, argv, index); // length of argv w/o changes 173 int len1 = cmdline_length(argc, argv, index, want_extra_quotes); // length of argv w/o changes
172 int len2 = cmdline_length(1, &argv[index], 0); // apptest.AppImage 174 int len2 = cmdline_length(1, &argv[index], 0, want_extra_quotes); // apptest.AppImage
173 int len3 = cmdline_length(1, &apprun_path, 0); // /run/firejail/appimage/AppRun 175 int len3 = cmdline_length(1, &apprun_path, 0, want_extra_quotes); // /run/firejail/appimage/AppRun
174 int len4 = (len1 - len2 + len3) + 1; // apptest.AppImage is replaced by /path/to/AppRun 176 int len4 = (len1 - len2 + len3) + 1; // apptest.AppImage is replaced by /path/to/AppRun
175 177
176 if (len4 > ARG_MAX) { 178 if (len4 > ARG_MAX) {
177 errno = E2BIG; 179 errno = E2BIG;
@@ -187,7 +189,7 @@ void build_appimage_cmdline(char **command_line, char **window_title, int argc,
187 errExit("malloc"); 189 errExit("malloc");
188 190
189 // run default quote_cmdline 191 // run default quote_cmdline
190 quote_cmdline(command_line_tmp, *window_title, len1, argc, argv, index); 192 quote_cmdline(command_line_tmp, *window_title, len1, argc, argv, index, want_extra_quotes);
191 193
192 assert(command_line_tmp); 194 assert(command_line_tmp);
193 assert(*window_title); 195 assert(*window_title);
diff --git a/src/firejail/dbus.c b/src/firejail/dbus.c
index b8aa2c974..9a4cb2e6b 100644
--- a/src/firejail/dbus.c
+++ b/src/firejail/dbus.c
@@ -258,12 +258,8 @@ static char *find_user_socket_by_format(char *format) {
258 if (asprintf(&dbus_user_socket, format, (int) getuid()) == -1) 258 if (asprintf(&dbus_user_socket, format, (int) getuid()) == -1)
259 errExit("asprintf"); 259 errExit("asprintf");
260 struct stat s; 260 struct stat s;
261 if (stat(dbus_user_socket, &s) == -1) { 261 if (lstat(dbus_user_socket, &s) == -1)
262 if (errno == ENOENT) 262 goto fail;
263 goto fail;
264 return NULL;
265 errExit("stat");
266 }
267 if (!S_ISSOCK(s.st_mode)) 263 if (!S_ISSOCK(s.st_mode))
268 goto fail; 264 goto fail;
269 return dbus_user_socket; 265 return dbus_user_socket;
@@ -426,12 +422,8 @@ static void socket_overlay(char *socket_path, char *proxy_path) {
426 errno = ENOTSOCK; 422 errno = ENOTSOCK;
427 errExit("mounting DBus proxy socket"); 423 errExit("mounting DBus proxy socket");
428 } 424 }
429 char *proxy_fd_path; 425 if (bind_mount_fd_to_path(fd, socket_path))
430 if (asprintf(&proxy_fd_path, "/proc/self/fd/%d", fd) == -1)
431 errExit("asprintf");
432 if (mount(proxy_path, socket_path, NULL, MS_BIND | MS_REC, NULL) == -1)
433 errExit("mount bind"); 426 errExit("mount bind");
434 free(proxy_fd_path);
435 close(fd); 427 close(fd);
436} 428}
437 429
@@ -478,7 +470,7 @@ void dbus_apply_policy(void) {
478 create_empty_dir_as_root(RUN_DBUS_DIR, 0755); 470 create_empty_dir_as_root(RUN_DBUS_DIR, 0755);
479 471
480 if (arg_dbus_user != DBUS_POLICY_ALLOW) { 472 if (arg_dbus_user != DBUS_POLICY_ALLOW) {
481 create_empty_file_as_root(RUN_DBUS_USER_SOCKET, 0700); 473 create_empty_file_as_root(RUN_DBUS_USER_SOCKET, 0600);
482 474
483 if (arg_dbus_user == DBUS_POLICY_FILTER) { 475 if (arg_dbus_user == DBUS_POLICY_FILTER) {
484 assert(dbus_user_proxy_socket != NULL); 476 assert(dbus_user_proxy_socket != NULL);
@@ -517,7 +509,7 @@ void dbus_apply_policy(void) {
517 } 509 }
518 510
519 if (arg_dbus_system != DBUS_POLICY_ALLOW) { 511 if (arg_dbus_system != DBUS_POLICY_ALLOW) {
520 create_empty_file_as_root(RUN_DBUS_SYSTEM_SOCKET, 0700); 512 create_empty_file_as_root(RUN_DBUS_SYSTEM_SOCKET, 0600);
521 513
522 if (arg_dbus_system == DBUS_POLICY_FILTER) { 514 if (arg_dbus_system == DBUS_POLICY_FILTER) {
523 assert(dbus_system_proxy_socket != NULL); 515 assert(dbus_system_proxy_socket != NULL);
diff --git a/src/firejail/dhcp.c b/src/firejail/dhcp.c
index 5bcdcad37..ec482e2ea 100644
--- a/src/firejail/dhcp.c
+++ b/src/firejail/dhcp.c
@@ -153,19 +153,13 @@ void dhcp_start(void) {
153 if (!any_dhcp()) 153 if (!any_dhcp())
154 return; 154 return;
155 155
156 char *dhclient_path = RUN_MNT_DIR "/dhclient";; 156 char *dhclient_path = RUN_MNT_DIR "/dhclient";
157 struct stat s; 157 struct stat s;
158 if (stat(dhclient_path, &s) == -1) { 158 if (stat(dhclient_path, &s) == -1) {
159 dhclient_path = "/usr/sbin/dhclient"; 159 fprintf(stderr, "Error: %s was not found.\n", dhclient_path);
160 if (stat(dhclient_path, &s) == -1) { 160 exit(1);
161 fprintf(stderr, "Error: dhclient was not found.\n");
162 exit(1);
163 }
164 } 161 }
165 162
166 sbox_run(SBOX_ROOT| SBOX_SECCOMP, 4, PATH_FCOPY, "--follow-link", dhclient_path, RUN_MNT_DIR);
167 dhclient_path = RUN_MNT_DIR "/dhclient";
168
169 EUID_ROOT(); 163 EUID_ROOT();
170 if (mkdir(RUN_DHCLIENT_DIR, 0700)) 164 if (mkdir(RUN_DHCLIENT_DIR, 0700))
171 errExit("mkdir"); 165 errExit("mkdir");
diff --git a/src/firejail/firejail.h b/src/firejail/firejail.h
index 1c1ad4e97..545573c08 100644
--- a/src/firejail/firejail.h
+++ b/src/firejail/firejail.h
@@ -45,6 +45,15 @@
45 assert(s.st_gid == gid);\ 45 assert(s.st_gid == gid);\
46 assert((s.st_mode & 07777) == (mode));\ 46 assert((s.st_mode & 07777) == (mode));\
47 } while (0) 47 } while (0)
48#define ASSERT_PERMS_AS_USER(file, uid, gid, mode) \
49 do { \
50 assert(file);\
51 struct stat s;\
52 if (stat_as_user(file, &s) == -1) errExit("stat");\
53 assert(s.st_uid == uid);\
54 assert(s.st_gid == gid);\
55 assert((s.st_mode & 07777) == (mode));\
56 } while (0)
48#define ASSERT_PERMS_FD(fd, uid, gid, mode) \ 57#define ASSERT_PERMS_FD(fd, uid, gid, mode) \
49 do { \ 58 do { \
50 struct stat s;\ 59 struct stat s;\
@@ -147,6 +156,8 @@ typedef struct config_t {
147 156
148 // filesystem 157 // filesystem
149 ProfileEntry *profile; 158 ProfileEntry *profile;
159 ProfileEntry *profile_rebuild_etc; // blacklist files in /etc directory used by fs_rebuild_etc()
160
150#define MAX_PROFILE_IGNORE 32 161#define MAX_PROFILE_IGNORE 32
151 char *profile_ignore[MAX_PROFILE_IGNORE]; 162 char *profile_ignore[MAX_PROFILE_IGNORE];
152 char *chrootdir; // chroot directory 163 char *chrootdir; // chroot directory
@@ -489,6 +500,7 @@ int macro_id(const char *name);
489void errLogExit(char* fmt, ...) __attribute__((noreturn)); 500void errLogExit(char* fmt, ...) __attribute__((noreturn));
490void fwarning(char* fmt, ...); 501void fwarning(char* fmt, ...);
491void fmessage(char* fmt, ...); 502void fmessage(char* fmt, ...);
503long long unsigned parse_arg_size(char *str);
492void drop_privs(int nogroups); 504void drop_privs(int nogroups);
493int mkpath_as_root(const char* path); 505int mkpath_as_root(const char* path);
494void extract_command_name(int index, char **argv); 506void extract_command_name(int index, char **argv);
@@ -498,11 +510,14 @@ void logargs(int argc, char **argv) ;
498void logerr(const char *msg); 510void logerr(const char *msg);
499void set_nice(int inc); 511void set_nice(int inc);
500int copy_file(const char *srcname, const char *destname, uid_t uid, gid_t gid, mode_t mode); 512int copy_file(const char *srcname, const char *destname, uid_t uid, gid_t gid, mode_t mode);
501void copy_file_as_user(const char *srcname, const char *destname, uid_t uid, gid_t gid, mode_t mode); 513void copy_file_as_user(const char *srcname, const char *destname, mode_t mode);
502void copy_file_from_user_to_root(const char *srcname, const char *destname, uid_t uid, gid_t gid, mode_t mode); 514void copy_file_from_user_to_root(const char *srcname, const char *destname, uid_t uid, gid_t gid, mode_t mode);
503void touch_file_as_user(const char *fname, mode_t mode); 515void touch_file_as_user(const char *fname, mode_t mode);
504int is_dir(const char *fname); 516int is_dir(const char *fname);
505int is_link(const char *fname); 517int is_link(const char *fname);
518char *realpath_as_user(const char *fname);
519int stat_as_user(const char *fname, struct stat *s);
520int lstat_as_user(const char *fname, struct stat *s);
506void trim_trailing_slash_or_dot(char *path); 521void trim_trailing_slash_or_dot(char *path);
507char *line_remove_spaces(const char *buf); 522char *line_remove_spaces(const char *buf);
508char *split_comma(char *str); 523char *split_comma(char *str);
@@ -526,11 +541,15 @@ unsigned extract_timeout(const char *str);
526void disable_file_or_dir(const char *fname); 541void disable_file_or_dir(const char *fname);
527void disable_file_path(const char *path, const char *file); 542void disable_file_path(const char *path, const char *file);
528int safer_openat(int dirfd, const char *path, int flags); 543int safer_openat(int dirfd, const char *path, int flags);
544int remount_by_fd(int dst, unsigned long mountflags);
545int bind_mount_by_fd(int src, int dst);
546int bind_mount_path_to_fd(const char *srcname, int dst);
547int bind_mount_fd_to_path(int src, const char *destname);
529int has_handler(pid_t pid, int signal); 548int has_handler(pid_t pid, int signal);
530void enter_network_namespace(pid_t pid); 549void enter_network_namespace(pid_t pid);
531int read_pid(const char *name, pid_t *pid); 550int read_pid(const char *name, pid_t *pid);
532pid_t require_pid(const char *name); 551pid_t require_pid(const char *name);
533void check_homedir(void); 552void check_homedir(const char *dir);
534 553
535// Get info regarding the last kernel mount operation from /proc/self/mountinfo 554// Get info regarding the last kernel mount operation from /proc/self/mountinfo
536// The return value points to a static area, and will be overwritten by subsequent calls. 555// The return value points to a static area, and will be overwritten by subsequent calls.
@@ -608,7 +627,6 @@ void fs_trace(void);
608 627
609// fs_hostname.c 628// fs_hostname.c
610void fs_hostname(const char *hostname); 629void fs_hostname(const char *hostname);
611void fs_resolvconf(void);
612char *fs_check_hosts_file(const char *fname); 630char *fs_check_hosts_file(const char *fname);
613void fs_store_hosts_file(void); 631void fs_store_hosts_file(void);
614void fs_mount_hosts_file(void); 632void fs_mount_hosts_file(void);
@@ -651,6 +669,7 @@ void fs_machineid(void);
651void fs_private_dir_copy(const char *private_dir, const char *private_run_dir, const char *private_list); 669void fs_private_dir_copy(const char *private_dir, const char *private_run_dir, const char *private_list);
652void fs_private_dir_mount(const char *private_dir, const char *private_run_dir); 670void fs_private_dir_mount(const char *private_dir, const char *private_run_dir);
653void fs_private_dir_list(const char *private_dir, const char *private_run_dir, const char *private_list); 671void fs_private_dir_list(const char *private_dir, const char *private_run_dir, const char *private_list);
672void fs_rebuild_etc(void);
654 673
655// no_sandbox.c 674// no_sandbox.c
656int check_namespace_virt(void); 675int check_namespace_virt(void);
@@ -759,23 +778,25 @@ enum {
759 CFG_NETWORK, 778 CFG_NETWORK,
760 CFG_RESTRICTED_NETWORK, 779 CFG_RESTRICTED_NETWORK,
761 CFG_FORCE_NONEWPRIVS, 780 CFG_FORCE_NONEWPRIVS,
762 CFG_WHITELIST,
763 CFG_XEPHYR_WINDOW_TITLE, 781 CFG_XEPHYR_WINDOW_TITLE,
764 CFG_OVERLAYFS, 782 CFG_OVERLAYFS,
765 CFG_PRIVATE_HOME, 783 CFG_PRIVATE_BIN,
766 CFG_PRIVATE_BIN_NO_LOCAL, 784 CFG_PRIVATE_BIN_NO_LOCAL,
785 CFG_PRIVATE_CACHE,
786 CFG_PRIVATE_ETC,
787 CFG_PRIVATE_HOME,
788 CFG_PRIVATE_LIB,
789 CFG_PRIVATE_OPT,
790 CFG_PRIVATE_SRV,
767 CFG_FIREJAIL_PROMPT, 791 CFG_FIREJAIL_PROMPT,
768 CFG_FOLLOW_SYMLINK_AS_USER,
769 CFG_DISABLE_MNT, 792 CFG_DISABLE_MNT,
770 CFG_JOIN, 793 CFG_JOIN,
771 CFG_ARP_PROBES, 794 CFG_ARP_PROBES,
772 CFG_XPRA_ATTACH, 795 CFG_XPRA_ATTACH,
773 CFG_BROWSER_DISABLE_U2F, 796 CFG_BROWSER_DISABLE_U2F,
774 CFG_BROWSER_ALLOW_DRM, 797 CFG_BROWSER_ALLOW_DRM,
775 CFG_PRIVATE_LIB,
776 CFG_APPARMOR, 798 CFG_APPARMOR,
777 CFG_DBUS, 799 CFG_DBUS,
778 CFG_PRIVATE_CACHE,
779 CFG_CGROUP, 800 CFG_CGROUP,
780 CFG_NAME_CHANGE, 801 CFG_NAME_CHANGE,
781 CFG_SECCOMP_ERROR_ACTION, 802 CFG_SECCOMP_ERROR_ACTION,
@@ -790,12 +811,14 @@ extern char *xvfb_extra_params;
790extern char *netfilter_default; 811extern char *netfilter_default;
791extern unsigned long join_timeout; 812extern unsigned long join_timeout;
792extern char *config_seccomp_error_action_str; 813extern char *config_seccomp_error_action_str;
814extern char *config_seccomp_filter_add;
793extern char **whitelist_reject_topdirs; 815extern char **whitelist_reject_topdirs;
794 816
795int checkcfg(int val); 817int checkcfg(int val);
796void print_compiletime_support(void); 818void print_compiletime_support(void);
797 819
798// appimage.c 820// appimage.c
821int appimage_find_profile(const char *archive);
799void appimage_set(const char *appimage_path); 822void appimage_set(const char *appimage_path);
800void appimage_mount(void); 823void appimage_mount(void);
801void appimage_clear(void); 824void appimage_clear(void);
@@ -804,8 +827,8 @@ void appimage_clear(void);
804long unsigned int appimage2_size(int fd); 827long unsigned int appimage2_size(int fd);
805 828
806// cmdline.c 829// cmdline.c
807void build_cmdline(char **command_line, char **window_title, int argc, char **argv, int index); 830void build_cmdline(char **command_line, char **window_title, int argc, char **argv, int index, bool want_extra_quotes);
808void build_appimage_cmdline(char **command_line, char **window_title, int argc, char **argv, int index); 831void build_appimage_cmdline(char **command_line, char **window_title, int argc, char **argv, int index, bool want_extra_quotes);
809 832
810// sbox.c 833// sbox.c
811// programs 834// programs
diff --git a/src/firejail/fs.c b/src/firejail/fs.c
index 09de11de9..5ac2da164 100644
--- a/src/firejail/fs.c
+++ b/src/firejail/fs.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firejail.h" 20#include "firejail.h"
21#include "../include/gcov_wrapper.h"
21#include <sys/mount.h> 22#include <sys/mount.h>
22#include <sys/stat.h> 23#include <sys/stat.h>
23#include <sys/statvfs.h> 24#include <sys/statvfs.h>
@@ -54,16 +55,10 @@ static char *opstr[] = {
54 [MOUNT_RDWR_NOCHECK] = "read-write", 55 [MOUNT_RDWR_NOCHECK] = "read-write",
55}; 56};
56 57
57typedef enum {
58 UNSUCCESSFUL,
59 SUCCESSFUL
60} LAST_DISABLE_OPERATION;
61LAST_DISABLE_OPERATION last_disable = UNSUCCESSFUL;
62
63static void disable_file(OPERATION op, const char *filename) { 58static void disable_file(OPERATION op, const char *filename) {
64 assert(filename); 59 assert(filename);
65 assert(op <OPERATION_MAX); 60 assert(op <OPERATION_MAX);
66 last_disable = UNSUCCESSFUL; 61 EUID_ASSERT();
67 62
68 // Resolve all symlinks 63 // Resolve all symlinks
69 char* fname = realpath(filename, NULL); 64 char* fname = realpath(filename, NULL);
@@ -71,20 +66,24 @@ static void disable_file(OPERATION op, const char *filename) {
71 return; 66 return;
72 } 67 }
73 if (fname == NULL && errno == EACCES) { 68 if (fname == NULL && errno == EACCES) {
74 if (arg_debug)
75 printf("Debug: no access to file %s, forcing mount\n", filename);
76 // realpath and stat functions will fail on FUSE filesystems 69 // realpath and stat functions will fail on FUSE filesystems
77 // they don't seem to like a uid of 0 70 // they don't seem to like a uid of 0
78 // force mounting 71 // force mounting
79 int rv = mount(RUN_RO_DIR, filename, "none", MS_BIND, "mode=400,gid=0"); 72 int fd = open(filename, O_PATH|O_CLOEXEC);
80 if (rv == 0) 73 if (fd < 0) {
81 last_disable = SUCCESSFUL; 74 if (arg_debug)
82 else { 75 printf("Warning (blacklisting): cannot open %s: %s\n", filename, strerror(errno));
83 rv = mount(RUN_RO_FILE, filename, "none", MS_BIND, "mode=400,gid=0"); 76 return;
84 if (rv == 0)
85 last_disable = SUCCESSFUL;
86 } 77 }
87 if (last_disable == SUCCESSFUL) { 78
79 EUID_ROOT();
80 int err = bind_mount_path_to_fd(RUN_RO_DIR, fd);
81 if (err != 0)
82 err = bind_mount_path_to_fd(RUN_RO_FILE, fd);
83 EUID_USER();
84 close(fd);
85
86 if (err == 0) {
88 if (arg_debug) 87 if (arg_debug)
89 printf("Disable %s\n", filename); 88 printf("Disable %s\n", filename);
90 if (op == BLACKLIST_FILE) 89 if (op == BLACKLIST_FILE)
@@ -92,21 +91,18 @@ static void disable_file(OPERATION op, const char *filename) {
92 else 91 else
93 fs_logger2("blacklist-nolog", filename); 92 fs_logger2("blacklist-nolog", filename);
94 } 93 }
95 else { 94 else if (arg_debug)
96 if (arg_debug) 95 printf("Warning (blacklisting): cannot mount on %s\n", filename);
97 printf("Warning (blacklisting): %s is an invalid file, skipping...\n", filename);
98 }
99 96
100 return; 97 return;
101 } 98 }
102 99
103 // if the file is not present, do nothing 100 // if the file is not present, do nothing
101 assert(fname);
104 struct stat s; 102 struct stat s;
105 if (fname == NULL) 103 if (stat(fname, &s) < 0) {
106 return;
107 if (stat(fname, &s) == -1) {
108 if (arg_debug) 104 if (arg_debug)
109 fwarning("%s does not exist, skipping...\n", fname); 105 printf("Warning (blacklisting): cannot access %s: %s\n", fname, strerror(errno));
110 free(fname); 106 free(fname);
111 return; 107 return;
112 } 108 }
@@ -115,8 +111,10 @@ static void disable_file(OPERATION op, const char *filename) {
115 // we migth have a file found in ${PATH} pointing to /usr/bin/firejail 111 // we migth have a file found in ${PATH} pointing to /usr/bin/firejail
116 // blacklisting it here will end up breaking situations like user clicks on a link in Thunderbird 112 // blacklisting it here will end up breaking situations like user clicks on a link in Thunderbird
117 // and expects Firefox to open in the same sandbox 113 // and expects Firefox to open in the same sandbox
118 if (strcmp(BINDIR "/firejail", fname) == 0) 114 if (strcmp(BINDIR "/firejail", fname) == 0) {
115 free(fname);
119 return; 116 return;
117 }
120 118
121 // modify the file 119 // modify the file
122 if (op == BLACKLIST_FILE || op == BLACKLIST_NOLOG) { 120 if (op == BLACKLIST_FILE || op == BLACKLIST_NOLOG) {
@@ -141,40 +139,70 @@ static void disable_file(OPERATION op, const char *filename) {
141 printf(" - no logging\n"); 139 printf(" - no logging\n");
142 } 140 }
143 141
142 int fd = open(fname, O_PATH|O_CLOEXEC);
143 if (fd < 0) {
144 if (arg_debug)
145 printf("Warning (blacklisting): cannot open %s: %s\n", fname, strerror(errno));
146 free(fname);
147 return;
148 }
149 EUID_ROOT();
144 if (S_ISDIR(s.st_mode)) { 150 if (S_ISDIR(s.st_mode)) {
145 if (mount(RUN_RO_DIR, fname, "none", MS_BIND, "mode=400,gid=0") < 0) 151 if (bind_mount_path_to_fd(RUN_RO_DIR, fd) < 0)
146 errExit("disable file"); 152 errExit("disable file");
147 } 153 }
148 else { 154 else {
149 if (mount(RUN_RO_FILE, fname, "none", MS_BIND, "mode=400,gid=0") < 0) 155 if (bind_mount_path_to_fd(RUN_RO_FILE, fd) < 0)
150 errExit("disable file"); 156 errExit("disable file");
151 } 157 }
152 last_disable = SUCCESSFUL; 158 EUID_USER();
159 close(fd);
160
153 if (op == BLACKLIST_FILE) 161 if (op == BLACKLIST_FILE)
154 fs_logger2("blacklist", fname); 162 fs_logger2("blacklist", fname);
155 else 163 else
156 fs_logger2("blacklist-nolog", fname); 164 fs_logger2("blacklist-nolog", fname);
165
166 // files in /etc will be reprocessed during /etc rebuild
167 if (strncmp(fname, "/etc/", 5) == 0) {
168 ProfileEntry *prf = malloc(sizeof(ProfileEntry));
169 if (!prf)
170 errExit("malloc");
171 memset(prf, 0, sizeof(ProfileEntry));
172 prf->data = strdup(fname);
173 if (!prf->data)
174 errExit("strdup");
175 prf->next = cfg.profile_rebuild_etc;
176 cfg.profile_rebuild_etc = prf;
177 }
157 } 178 }
158 } 179 }
159 else if (op == MOUNT_READONLY || op == MOUNT_RDWR || op == MOUNT_NOEXEC) { 180 else if (op == MOUNT_READONLY || op == MOUNT_RDWR || op == MOUNT_NOEXEC) {
160 fs_remount_rec(fname, op); 181 fs_remount_rec(fname, op);
161 // todo: last_disable = SUCCESSFUL;
162 } 182 }
163 else if (op == MOUNT_TMPFS) { 183 else if (op == MOUNT_TMPFS) {
164 if (S_ISDIR(s.st_mode)) { 184 if (!S_ISDIR(s.st_mode)) {
165 if (getuid()) { 185 fwarning("%s is not a directory; cannot mount a tmpfs on top of it.\n", fname);
166 if (strncmp(cfg.homedir, fname, strlen(cfg.homedir)) != 0 || 186 free(fname);
167 fname[strlen(cfg.homedir)] != '/') { 187 return;
168 fprintf(stderr, "Error: tmpfs outside $HOME is only available for root\n"); 188 }
169 exit(1); 189
170 } 190 uid_t uid = getuid();
191 if (uid != 0) {
192 // only user owned directories in user home
193 if (s.st_uid != uid ||
194 strncmp(cfg.homedir, fname, strlen(cfg.homedir)) != 0 ||
195 fname[strlen(cfg.homedir)] != '/') {
196 fwarning("you are not allowed to mount a tmpfs on %s\n", fname);
197 free(fname);
198 return;
171 } 199 }
172 fs_tmpfs(fname, getuid());
173 selinux_relabel_path(fname, fname);
174 last_disable = SUCCESSFUL;
175 } 200 }
176 else 201
177 fwarning("%s is not a directory; cannot mount a tmpfs on top of it.\n", fname); 202 fs_tmpfs(fname, uid);
203 EUID_USER(); // fs_tmpfs returns with EUID 0
204
205 selinux_relabel_path(fname, fname);
178 } 206 }
179 else 207 else
180 assert(0); 208 assert(0);
@@ -191,6 +219,7 @@ static int *nbcheck = NULL;
191// Treat pattern as a shell glob pattern and blacklist matching files 219// Treat pattern as a shell glob pattern and blacklist matching files
192static void globbing(OPERATION op, const char *pattern, const char *noblacklist[], size_t noblacklist_len) { 220static void globbing(OPERATION op, const char *pattern, const char *noblacklist[], size_t noblacklist_len) {
193 assert(pattern); 221 assert(pattern);
222 EUID_ASSERT();
194 223
195#ifdef TEST_NO_BLACKLIST_MATCHING 224#ifdef TEST_NO_BLACKLIST_MATCHING
196 if (nbcheck_start == 0) { 225 if (nbcheck_start == 0) {
@@ -264,6 +293,7 @@ void fs_blacklist(void) {
264 if (noblacklist == NULL) 293 if (noblacklist == NULL)
265 errExit("failed allocating memory for noblacklist entries"); 294 errExit("failed allocating memory for noblacklist entries");
266 295
296 EUID_USER();
267 while (entry) { 297 while (entry) {
268 OPERATION op = OPERATION_MAX; 298 OPERATION op = OPERATION_MAX;
269 char *ptr; 299 char *ptr;
@@ -294,11 +324,13 @@ void fs_blacklist(void) {
294 if (arg_debug) 324 if (arg_debug)
295 printf("Mount-bind %s on top of %s\n", dname1, dname2); 325 printf("Mount-bind %s on top of %s\n", dname1, dname2);
296 // preserve dname2 mode and ownership 326 // preserve dname2 mode and ownership
327 // EUID_ROOT(); - option not accessible to non-root users
297 if (mount(dname1, dname2, NULL, MS_BIND|MS_REC, NULL) < 0) 328 if (mount(dname1, dname2, NULL, MS_BIND|MS_REC, NULL) < 0)
298 errExit("mount bind"); 329 errExit("mount bind");
299 /* coverity[toctou] */ 330 /* coverity[toctou] */
300 if (set_perms(dname2, s.st_uid, s.st_gid,s.st_mode)) 331 if (set_perms(dname2, s.st_uid, s.st_gid,s.st_mode))
301 errExit("set_perms"); 332 errExit("set_perms");
333 // EUID_USER();
302 334
303 entry = entry->next; 335 entry = entry->next;
304 continue; 336 continue;
@@ -376,16 +408,12 @@ void fs_blacklist(void) {
376 op = MOUNT_TMPFS; 408 op = MOUNT_TMPFS;
377 } 409 }
378 else if (strncmp(entry->data, "mkdir ", 6) == 0) { 410 else if (strncmp(entry->data, "mkdir ", 6) == 0) {
379 EUID_USER();
380 fs_mkdir(entry->data + 6); 411 fs_mkdir(entry->data + 6);
381 EUID_ROOT();
382 entry = entry->next; 412 entry = entry->next;
383 continue; 413 continue;
384 } 414 }
385 else if (strncmp(entry->data, "mkfile ", 7) == 0) { 415 else if (strncmp(entry->data, "mkfile ", 7) == 0) {
386 EUID_USER();
387 fs_mkfile(entry->data + 7); 416 fs_mkfile(entry->data + 7);
388 EUID_ROOT();
389 entry = entry->next; 417 entry = entry->next;
390 continue; 418 continue;
391 } 419 }
@@ -441,6 +469,8 @@ void fs_blacklist(void) {
441 for (i = 0; i < noblacklist_c; i++) 469 for (i = 0; i < noblacklist_c; i++)
442 free(noblacklist[i]); 470 free(noblacklist[i]);
443 free(noblacklist); 471 free(noblacklist);
472
473 EUID_ROOT();
444} 474}
445 475
446//*********************************************** 476//***********************************************
@@ -449,6 +479,7 @@ void fs_blacklist(void) {
449 479
450// mount a writable tmpfs on directory; requires a resolved path 480// mount a writable tmpfs on directory; requires a resolved path
451void fs_tmpfs(const char *dir, unsigned check_owner) { 481void fs_tmpfs(const char *dir, unsigned check_owner) {
482 EUID_USER();
452 assert(dir); 483 assert(dir);
453 if (arg_debug) 484 if (arg_debug)
454 printf("Mounting tmpfs on %s, check owner: %s\n", dir, (check_owner)? "yes": "no"); 485 printf("Mounting tmpfs on %s, check owner: %s\n", dir, (check_owner)? "yes": "no");
@@ -471,8 +502,9 @@ void fs_tmpfs(const char *dir, unsigned check_owner) {
471 struct statvfs buf; 502 struct statvfs buf;
472 if (fstatvfs(fd, &buf) == -1) 503 if (fstatvfs(fd, &buf) == -1)
473 errExit("fstatvfs"); 504 errExit("fstatvfs");
474 unsigned long flags = buf.f_flag & ~(MS_RDONLY|MS_BIND); 505 unsigned long flags = buf.f_flag & ~(MS_RDONLY|MS_BIND|MS_REMOUNT);
475 // mount via the symbolic link in /proc/self/fd 506 // mount via the symbolic link in /proc/self/fd
507 EUID_ROOT();
476 char *proc; 508 char *proc;
477 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1) 509 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
478 errExit("asprintf"); 510 errExit("asprintf");
@@ -490,38 +522,42 @@ void fs_tmpfs(const char *dir, unsigned check_owner) {
490 522
491// remount path, preserving other mount flags; requires a resolved path 523// remount path, preserving other mount flags; requires a resolved path
492static void fs_remount_simple(const char *path, OPERATION op) { 524static void fs_remount_simple(const char *path, OPERATION op) {
525 EUID_ASSERT();
493 assert(path); 526 assert(path);
494 527
495 // open path without following symbolic links 528 // open path without following symbolic links
496 int fd1 = safer_openat(-1, path, O_PATH|O_NOFOLLOW|O_CLOEXEC); 529 int fd = safer_openat(-1, path, O_PATH|O_NOFOLLOW|O_CLOEXEC);
497 if (fd1 == -1) 530 if (fd < 0)
498 goto out; 531 goto out;
499 struct stat s1; 532
500 if (fstat(fd1, &s1) == -1) { 533 struct stat s;
534 if (fstat(fd, &s) < 0) {
501 // fstat can fail with EACCES if path is a FUSE mount, 535 // fstat can fail with EACCES if path is a FUSE mount,
502 // mounted without 'allow_root' or 'allow_other' 536 // mounted without 'allow_root' or 'allow_other'
503 if (errno != EACCES) 537 if (errno != EACCES)
504 errExit("fstat"); 538 errExit("fstat");
505 close(fd1); 539 close(fd);
506 goto out; 540 goto out;
507 } 541 }
508 // get mount flags 542 // get mount flags
509 struct statvfs buf; 543 struct statvfs buf;
510 if (fstatvfs(fd1, &buf) == -1) 544 if (fstatvfs(fd, &buf) < 0) {
511 errExit("fstatvfs"); 545 close(fd);
546 goto out;
547 }
512 unsigned long flags = buf.f_flag; 548 unsigned long flags = buf.f_flag;
513 549
514 // read-write option 550 // read-write option
515 if (op == MOUNT_RDWR || op == MOUNT_RDWR_NOCHECK) { 551 if (op == MOUNT_RDWR || op == MOUNT_RDWR_NOCHECK) {
516 // nothing to do if there is no read-only flag 552 // nothing to do if there is no read-only flag
517 if ((flags & MS_RDONLY) == 0) { 553 if ((flags & MS_RDONLY) == 0) {
518 close(fd1); 554 close(fd);
519 return; 555 return;
520 } 556 }
521 // allow only user owned directories, except the user is root 557 // allow only user owned directories, except the user is root
522 if (op != MOUNT_RDWR_NOCHECK && getuid() != 0 && s1.st_uid != getuid()) { 558 if (op != MOUNT_RDWR_NOCHECK && getuid() != 0 && s.st_uid != getuid()) {
523 fwarning("you are not allowed to change %s to read-write\n", path); 559 fwarning("you are not allowed to change %s to read-write\n", path);
524 close(fd1); 560 close(fd);
525 return; 561 return;
526 } 562 }
527 flags &= ~MS_RDONLY; 563 flags &= ~MS_RDONLY;
@@ -530,7 +566,7 @@ static void fs_remount_simple(const char *path, OPERATION op) {
530 else if (op == MOUNT_NOEXEC) { 566 else if (op == MOUNT_NOEXEC) {
531 // nothing to do if path is mounted noexec already 567 // nothing to do if path is mounted noexec already
532 if ((flags & (MS_NOEXEC|MS_NODEV|MS_NOSUID)) == (MS_NOEXEC|MS_NODEV|MS_NOSUID)) { 568 if ((flags & (MS_NOEXEC|MS_NODEV|MS_NOSUID)) == (MS_NOEXEC|MS_NODEV|MS_NOSUID)) {
533 close(fd1); 569 close(fd);
534 return; 570 return;
535 } 571 }
536 flags |= MS_NOEXEC|MS_NODEV|MS_NOSUID; 572 flags |= MS_NOEXEC|MS_NODEV|MS_NOSUID;
@@ -539,7 +575,7 @@ static void fs_remount_simple(const char *path, OPERATION op) {
539 else if (op == MOUNT_READONLY) { 575 else if (op == MOUNT_READONLY) {
540 // nothing to do if path is mounted read-only already 576 // nothing to do if path is mounted read-only already
541 if ((flags & MS_RDONLY) == MS_RDONLY) { 577 if ((flags & MS_RDONLY) == MS_RDONLY) {
542 close(fd1); 578 close(fd);
543 return; 579 return;
544 } 580 }
545 flags |= MS_RDONLY; 581 flags |= MS_RDONLY;
@@ -549,29 +585,37 @@ static void fs_remount_simple(const char *path, OPERATION op) {
549 585
550 if (arg_debug) 586 if (arg_debug)
551 printf("Mounting %s %s\n", opstr[op], path); 587 printf("Mounting %s %s\n", opstr[op], path);
588
589 // make path a mount point:
552 // mount --bind path path 590 // mount --bind path path
553 char *proc; 591 EUID_ROOT();
554 if (asprintf(&proc, "/proc/self/fd/%d", fd1) == -1) 592 int err = bind_mount_by_fd(fd, fd);
555 errExit("asprintf"); 593 EUID_USER();
556 if (mount(proc, proc, NULL, MS_BIND|MS_REC, NULL) < 0) 594 if (err) {
557 errExit("mount"); 595 close(fd);
558 free(proc); 596 goto out;
597 }
559 598
560 // mount --bind -o remount,ro path 599 // remount the mount point
561 // need to open path again without following symbolic links 600 // need to open path again
562 int fd2 = safer_openat(-1, path, O_PATH|O_NOFOLLOW|O_CLOEXEC); 601 int fd2 = safer_openat(-1, path, O_PATH|O_NOFOLLOW|O_CLOEXEC);
563 if (fd2 == -1) 602 close(fd); // earliest timepoint to close fd
564 errExit("open"); 603 if (fd2 < 0)
604 goto out;
605
606 // device and inode number should be the same
565 struct stat s2; 607 struct stat s2;
566 if (fstat(fd2, &s2) == -1) 608 if (fstat(fd2, &s2) < 0)
567 errExit("fstat"); 609 errExit("fstat");
568 // device and inode number should be the same 610 if (s.st_dev != s2.st_dev || s.st_ino != s2.st_ino)
569 if (s1.st_dev != s2.st_dev || s1.st_ino != s2.st_ino)
570 errLogExit("invalid %s mount", opstr[op]); 611 errLogExit("invalid %s mount", opstr[op]);
571 if (asprintf(&proc, "/proc/self/fd/%d", fd2) == -1) 612
572 errExit("asprintf"); 613 EUID_ROOT();
573 if (mount(NULL, proc, NULL, flags|MS_BIND|MS_REMOUNT, NULL) < 0) 614 err = remount_by_fd(fd2, flags);
574 errExit("mount"); 615 EUID_USER();
616 close(fd2);
617 if (err)
618 goto out;
575 619
576 // run a sanity check on /proc/self/mountinfo and confirm that target of the last 620 // run a sanity check on /proc/self/mountinfo and confirm that target of the last
577 // mount operation was path; if there are other mount points contained inside path, 621 // mount operation was path; if there are other mount points contained inside path,
@@ -582,10 +626,8 @@ static void fs_remount_simple(const char *path, OPERATION op) {
582 (*(mptr->dir + len) != '\0' && *(mptr->dir + len) != '/')) 626 (*(mptr->dir + len) != '\0' && *(mptr->dir + len) != '/'))
583 && strcmp(path, "/") != 0) // support read-only=/ 627 && strcmp(path, "/") != 0) // support read-only=/
584 errLogExit("invalid %s mount", opstr[op]); 628 errLogExit("invalid %s mount", opstr[op]);
629
585 fs_logger2(opstr[op], path); 630 fs_logger2(opstr[op], path);
586 free(proc);
587 close(fd1);
588 close(fd2);
589 return; 631 return;
590 632
591out: 633out:
@@ -594,7 +636,9 @@ out:
594 636
595// remount recursively; requires a resolved path 637// remount recursively; requires a resolved path
596static void fs_remount_rec(const char *dir, OPERATION op) { 638static void fs_remount_rec(const char *dir, OPERATION op) {
639 EUID_ASSERT();
597 assert(dir); 640 assert(dir);
641
598 struct stat s; 642 struct stat s;
599 if (stat(dir, &s) != 0) 643 if (stat(dir, &s) != 0)
600 return; 644 return;
@@ -632,6 +676,14 @@ static void fs_remount_rec(const char *dir, OPERATION op) {
632// resolve a path and remount it 676// resolve a path and remount it
633void fs_remount(const char *path, OPERATION op, int rec) { 677void fs_remount(const char *path, OPERATION op, int rec) {
634 assert(path); 678 assert(path);
679
680 int called_as_root = 0;
681 if (geteuid() == 0)
682 called_as_root = 1;
683
684 if (called_as_root)
685 EUID_USER();
686
635 char *rpath = realpath(path, NULL); 687 char *rpath = realpath(path, NULL);
636 if (rpath) { 688 if (rpath) {
637 if (rec) 689 if (rec)
@@ -640,10 +692,14 @@ void fs_remount(const char *path, OPERATION op, int rec) {
640 fs_remount_simple(rpath, op); 692 fs_remount_simple(rpath, op);
641 free(rpath); 693 free(rpath);
642 } 694 }
695
696 if (called_as_root)
697 EUID_ROOT();
643} 698}
644 699
645// Disable /mnt, /media, /run/mount and /run/media access 700// Disable /mnt, /media, /run/mount and /run/media access
646void fs_mnt(const int enforce) { 701void fs_mnt(const int enforce) {
702 EUID_USER();
647 if (enforce) { 703 if (enforce) {
648 // disable-mnt set in firejail.config 704 // disable-mnt set in firejail.config
649 // overriding with noblacklist is not possible in this case 705 // overriding with noblacklist is not possible in this case
@@ -653,13 +709,12 @@ void fs_mnt(const int enforce) {
653 disable_file(BLACKLIST_FILE, "/run/media"); 709 disable_file(BLACKLIST_FILE, "/run/media");
654 } 710 }
655 else { 711 else {
656 EUID_USER();
657 profile_add("blacklist /mnt"); 712 profile_add("blacklist /mnt");
658 profile_add("blacklist /media"); 713 profile_add("blacklist /media");
659 profile_add("blacklist /run/mount"); 714 profile_add("blacklist /run/mount");
660 profile_add("blacklist /run/media"); 715 profile_add("blacklist /run/media");
661 EUID_ROOT();
662 } 716 }
717 EUID_ROOT();
663} 718}
664 719
665 720
@@ -674,7 +729,6 @@ void fs_proc_sys_dev_boot(void) {
674 errExit("mounting /proc/sys"); 729 errExit("mounting /proc/sys");
675 fs_logger("read-only /proc/sys"); 730 fs_logger("read-only /proc/sys");
676 731
677
678 /* Mount a version of /sys that describes the network namespace */ 732 /* Mount a version of /sys that describes the network namespace */
679 if (arg_debug) 733 if (arg_debug)
680 printf("Remounting /sys directory\n"); 734 printf("Remounting /sys directory\n");
@@ -689,13 +743,13 @@ void fs_proc_sys_dev_boot(void) {
689 else 743 else
690 fs_logger("remount /sys"); 744 fs_logger("remount /sys");
691 745
746 EUID_USER();
747
692 disable_file(BLACKLIST_FILE, "/sys/firmware"); 748 disable_file(BLACKLIST_FILE, "/sys/firmware");
693 disable_file(BLACKLIST_FILE, "/sys/hypervisor"); 749 disable_file(BLACKLIST_FILE, "/sys/hypervisor");
694 { // allow user access to some directories in /sys/ by specifying 'noblacklist' option 750 { // allow user access to some directories in /sys/ by specifying 'noblacklist' option
695 EUID_USER();
696 profile_add("blacklist /sys/fs"); 751 profile_add("blacklist /sys/fs");
697 profile_add("blacklist /sys/module"); 752 profile_add("blacklist /sys/module");
698 EUID_ROOT();
699 } 753 }
700 disable_file(BLACKLIST_FILE, "/sys/power"); 754 disable_file(BLACKLIST_FILE, "/sys/power");
701 disable_file(BLACKLIST_FILE, "/sys/kernel/debug"); 755 disable_file(BLACKLIST_FILE, "/sys/kernel/debug");
@@ -739,12 +793,8 @@ void fs_proc_sys_dev_boot(void) {
739 // disable /dev/port 793 // disable /dev/port
740 disable_file(BLACKLIST_FILE, "/dev/port"); 794 disable_file(BLACKLIST_FILE, "/dev/port");
741 795
742
743
744 // disable various ipc sockets in /run/user 796 // disable various ipc sockets in /run/user
745 if (!arg_writable_run_user) { 797 if (!arg_writable_run_user) {
746 struct stat s;
747
748 char *fname; 798 char *fname;
749 if (asprintf(&fname, "/run/user/%d", getuid()) == -1) 799 if (asprintf(&fname, "/run/user/%d", getuid()) == -1)
750 errExit("asprintf"); 800 errExit("asprintf");
@@ -755,8 +805,7 @@ void fs_proc_sys_dev_boot(void) {
755 errExit("asprintf"); 805 errExit("asprintf");
756 if (create_empty_dir_as_user(fnamegpg, 0700)) 806 if (create_empty_dir_as_user(fnamegpg, 0700))
757 fs_logger2("create", fnamegpg); 807 fs_logger2("create", fnamegpg);
758 if (stat(fnamegpg, &s) == 0) 808 disable_file(BLACKLIST_FILE, fnamegpg);
759 disable_file(BLACKLIST_FILE, fnamegpg);
760 free(fnamegpg); 809 free(fnamegpg);
761 810
762 // disable /run/user/{uid}/systemd 811 // disable /run/user/{uid}/systemd
@@ -765,8 +814,7 @@ void fs_proc_sys_dev_boot(void) {
765 errExit("asprintf"); 814 errExit("asprintf");
766 if (create_empty_dir_as_user(fnamesysd, 0755)) 815 if (create_empty_dir_as_user(fnamesysd, 0755))
767 fs_logger2("create", fnamesysd); 816 fs_logger2("create", fnamesysd);
768 if (stat(fnamesysd, &s) == 0) 817 disable_file(BLACKLIST_FILE, fnamesysd);
769 disable_file(BLACKLIST_FILE, fnamesysd);
770 free(fnamesysd); 818 free(fnamesysd);
771 } 819 }
772 free(fname); 820 free(fname);
@@ -777,35 +825,30 @@ void fs_proc_sys_dev_boot(void) {
777 disable_file(BLACKLIST_FILE, "/dev/kmsg"); 825 disable_file(BLACKLIST_FILE, "/dev/kmsg");
778 disable_file(BLACKLIST_FILE, "/proc/kmsg"); 826 disable_file(BLACKLIST_FILE, "/proc/kmsg");
779 } 827 }
828
829 EUID_ROOT();
780} 830}
781 831
782// disable firejail configuration in ~/.config/firejail 832// disable firejail configuration in ~/.config/firejail
783void disable_config(void) { 833void disable_config(void) {
784 struct stat s; 834 EUID_USER();
785
786 char *fname; 835 char *fname;
787 if (asprintf(&fname, "%s/.config/firejail", cfg.homedir) == -1) 836 if (asprintf(&fname, "%s/.config/firejail", cfg.homedir) == -1)
788 errExit("asprintf"); 837 errExit("asprintf");
789 if (stat(fname, &s) == 0) 838 disable_file(BLACKLIST_FILE, fname);
790 disable_file(BLACKLIST_FILE, fname);
791 free(fname); 839 free(fname);
792 840
793 // disable run time information 841 // disable run time information
794 if (stat(RUN_FIREJAIL_NETWORK_DIR, &s) == 0) 842 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_NETWORK_DIR);
795 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_NETWORK_DIR); 843 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_BANDWIDTH_DIR);
796 if (stat(RUN_FIREJAIL_BANDWIDTH_DIR, &s) == 0) 844 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_NAME_DIR);
797 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_BANDWIDTH_DIR); 845 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_PROFILE_DIR);
798 if (stat(RUN_FIREJAIL_NAME_DIR, &s) == 0) 846 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_X11_DIR);
799 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_NAME_DIR); 847 EUID_ROOT();
800 if (stat(RUN_FIREJAIL_PROFILE_DIR, &s) == 0)
801 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_PROFILE_DIR);
802 if (stat(RUN_FIREJAIL_X11_DIR, &s) == 0)
803 disable_file(BLACKLIST_FILE, RUN_FIREJAIL_X11_DIR);
804} 848}
805 849
806 850
807// build a basic read-only filesystem 851// build a basic read-only filesystem
808// top level directories could be links, run no after-mount checks
809void fs_basic_fs(void) { 852void fs_basic_fs(void) {
810 uid_t uid = getuid(); 853 uid_t uid = getuid();
811 854
@@ -815,6 +858,7 @@ void fs_basic_fs(void) {
815 if (mount("proc", "/proc", "proc", MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_REC, NULL) < 0) 858 if (mount("proc", "/proc", "proc", MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_REC, NULL) < 0)
816 errExit("mounting /proc"); 859 errExit("mounting /proc");
817 860
861 EUID_USER();
818 if (arg_debug) 862 if (arg_debug)
819 printf("Basic read-only filesystem:\n"); 863 printf("Basic read-only filesystem:\n");
820 if (!arg_writable_etc) { 864 if (!arg_writable_etc) {
@@ -834,6 +878,7 @@ void fs_basic_fs(void) {
834 fs_remount("/lib64", MOUNT_READONLY, 1); 878 fs_remount("/lib64", MOUNT_READONLY, 1);
835 fs_remount("/lib32", MOUNT_READONLY, 1); 879 fs_remount("/lib32", MOUNT_READONLY, 1);
836 fs_remount("/libx32", MOUNT_READONLY, 1); 880 fs_remount("/libx32", MOUNT_READONLY, 1);
881 EUID_ROOT();
837 882
838 // update /var directory in order to support multiple sandboxes running on the same root directory 883 // update /var directory in order to support multiple sandboxes running on the same root directory
839 fs_var_lock(); 884 fs_var_lock();
@@ -862,6 +907,7 @@ void fs_basic_fs(void) {
862#ifdef HAVE_OVERLAYFS 907#ifdef HAVE_OVERLAYFS
863char *fs_check_overlay_dir(const char *subdirname, int allow_reuse) { 908char *fs_check_overlay_dir(const char *subdirname, int allow_reuse) {
864 assert(subdirname); 909 assert(subdirname);
910 EUID_ASSERT();
865 struct stat s; 911 struct stat s;
866 char *dirname; 912 char *dirname;
867 913
@@ -1177,9 +1223,8 @@ void fs_overlayfs(void) {
1177 fs_logger("whitelist /tmp"); 1223 fs_logger("whitelist /tmp");
1178 1224
1179 // chroot in the new filesystem 1225 // chroot in the new filesystem
1180#ifdef HAVE_GCOV
1181 __gcov_flush(); 1226 __gcov_flush();
1182#endif 1227
1183 if (chroot(oroot) == -1) 1228 if (chroot(oroot) == -1)
1184 errExit("chroot"); 1229 errExit("chroot");
1185 1230
@@ -1221,6 +1266,7 @@ void fs_overlayfs(void) {
1221 1266
1222// this function is called from sandbox.c before blacklist/whitelist functions 1267// this function is called from sandbox.c before blacklist/whitelist functions
1223void fs_private_tmp(void) { 1268void fs_private_tmp(void) {
1269 EUID_ASSERT();
1224 if (arg_debug) 1270 if (arg_debug)
1225 printf("Generate private-tmp whitelist commands\n"); 1271 printf("Generate private-tmp whitelist commands\n");
1226 1272
@@ -1241,8 +1287,11 @@ void fs_private_tmp(void) {
1241 1287
1242 // whitelist x11 directory 1288 // whitelist x11 directory
1243 profile_add("whitelist /tmp/.X11-unix"); 1289 profile_add("whitelist /tmp/.X11-unix");
1244 // read-only x11 directory 1290 // read-only x11 directory
1245 profile_add("read-only /tmp/.X11-unix"); 1291 profile_add("read-only /tmp/.X11-unix");
1292
1293 // whitelist sndio directory
1294 profile_add("whitelist /tmp/sndio");
1246 1295
1247 // whitelist any pulse* file in /tmp directory 1296 // whitelist any pulse* file in /tmp directory
1248 // some distros use PulseAudio sockets under /tmp instead of the socket in /urn/user 1297 // some distros use PulseAudio sockets under /tmp instead of the socket in /urn/user
diff --git a/src/firejail/fs_dev.c b/src/firejail/fs_dev.c
index 8c2870a4d..8cc3ecc62 100644
--- a/src/firejail/fs_dev.c
+++ b/src/firejail/fs_dev.c
@@ -187,8 +187,10 @@ static void mount_dev_shm(void) {
187static void process_dev_shm(void) { 187static void process_dev_shm(void) {
188 // Jack audio keeps an Unix socket under (/dev/shm/jack_default_1000_0 or /dev/shm/jack/...) 188 // Jack audio keeps an Unix socket under (/dev/shm/jack_default_1000_0 or /dev/shm/jack/...)
189 // looking for jack socket 189 // looking for jack socket
190 EUID_USER();
190 glob_t globbuf; 191 glob_t globbuf;
191 int globerr = glob(RUN_DEV_DIR "/shm/jack*", GLOB_NOSORT, NULL, &globbuf); 192 int globerr = glob(RUN_DEV_DIR "/shm/jack*", GLOB_NOSORT, NULL, &globbuf);
193 EUID_ROOT();
192 if (globerr && !arg_keep_dev_shm) { 194 if (globerr && !arg_keep_dev_shm) {
193 empty_dev_shm(); 195 empty_dev_shm();
194 return; 196 return;
diff --git a/src/firejail/fs_etc.c b/src/firejail/fs_etc.c
index b0e1e1bf1..76054b485 100644
--- a/src/firejail/fs_etc.c
+++ b/src/firejail/fs_etc.c
@@ -24,6 +24,7 @@
24#include <sys/types.h> 24#include <sys/types.h>
25#include <time.h> 25#include <time.h>
26#include <unistd.h> 26#include <unistd.h>
27#include <dirent.h>
27 28
28// spoof /etc/machine_id 29// spoof /etc/machine_id
29void fs_machineid(void) { 30void fs_machineid(void) {
@@ -250,3 +251,128 @@ void fs_private_dir_list(const char *private_dir, const char *private_run_dir, c
250 fs_private_dir_mount(private_dir, private_run_dir); 251 fs_private_dir_mount(private_dir, private_run_dir);
251 fmessage("Private %s installed in %0.2f ms\n", private_dir, timetrace_end()); 252 fmessage("Private %s installed in %0.2f ms\n", private_dir, timetrace_end());
252} 253}
254
255void fs_rebuild_etc(void) {
256 int have_dhcp = 1;
257 if (cfg.dns1 == NULL && !any_dhcp())
258 have_dhcp = 0;
259
260 if (arg_debug)
261 printf("rebuilding /etc directory\n");
262 if (mkdir(RUN_DNS_ETC, 0755))
263 errExit("mkdir");
264 selinux_relabel_path(RUN_DNS_ETC, "/etc");
265 fs_logger("tmpfs /etc");
266
267 DIR *dir = opendir("/etc");
268 if (!dir)
269 errExit("opendir");
270
271 struct stat s;
272 struct dirent *entry;
273 while ((entry = readdir(dir))) {
274 if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
275 continue;
276
277 // skip files in cfg.profile_rebuild_etc list
278 // these files are already blacklisted
279 {
280 ProfileEntry *prf = cfg.profile_rebuild_etc;
281 int found = 0;
282 while (prf) {
283 if (strcmp(entry->d_name, prf->data + 5) == 0) { // 5 is strlen("/etc/")
284 found = 1;
285 break;
286 }
287 prf = prf->next;
288 }
289 if (found)
290 continue;
291 }
292
293 // for resolv.conf we might have to create a brand new file later
294 if (have_dhcp &&
295 (strcmp(entry->d_name, "resolv.conf") == 0 ||
296 strcmp(entry->d_name, "resolv.conf.dhclient-new") == 0))
297 continue;
298// printf("linking %s\n", entry->d_name);
299
300 char *src;
301 if (asprintf(&src, "/etc/%s", entry->d_name) == -1)
302 errExit("asprintf");
303 if (stat(src, &s) != 0) {
304 free(src);
305 continue;
306 }
307
308 char *dest;
309 if (asprintf(&dest, "%s/%s", RUN_DNS_ETC, entry->d_name) == -1)
310 errExit("asprintf");
311
312 int symlink_done = 0;
313 if (is_link(src)) {
314 char *rp =realpath(src, NULL);
315 if (rp == NULL) {
316 free(src);
317 free(dest);
318 continue;
319 }
320 if (symlink(rp, dest))
321 errExit("symlink");
322 else
323 symlink_done = 1;
324 }
325 else if (S_ISDIR(s.st_mode))
326 create_empty_dir_as_root(dest, s.st_mode);
327 else
328 create_empty_file_as_root(dest, s.st_mode);
329
330 // bind-mount src on top of dest
331 if (!symlink_done) {
332 if (mount(src, dest, NULL, MS_BIND|MS_REC, NULL) < 0)
333 errExit("mount bind mirroring /etc");
334 }
335 fs_logger2("clone", src);
336
337 free(src);
338 free(dest);
339 }
340 closedir(dir);
341
342 // mount bind our private etc directory on top of /etc
343 if (arg_debug)
344 printf("Mount-bind %s on top of /etc\n", RUN_DNS_ETC);
345 if (mount(RUN_DNS_ETC, "/etc", NULL, MS_BIND|MS_REC, NULL) < 0)
346 errExit("mount bind mirroring /etc");
347 fs_logger("mount /etc");
348
349 if (have_dhcp == 0)
350 return;
351
352 if (arg_debug)
353 printf("Creating a new /etc/resolv.conf file\n");
354 FILE *fp = fopen("/etc/resolv.conf", "wxe");
355 if (!fp) {
356 fprintf(stderr, "Error: cannot create /etc/resolv.conf file\n");
357 exit(1);
358 }
359
360 if (cfg.dns1) {
361 if (any_dhcp())
362 fwarning("network setup uses DHCP, nameservers will likely be overwritten\n");
363 fprintf(fp, "nameserver %s\n", cfg.dns1);
364 }
365 if (cfg.dns2)
366 fprintf(fp, "nameserver %s\n", cfg.dns2);
367 if (cfg.dns3)
368 fprintf(fp, "nameserver %s\n", cfg.dns3);
369 if (cfg.dns4)
370 fprintf(fp, "nameserver %s\n", cfg.dns4);
371
372 // mode and owner
373 SET_PERMS_STREAM(fp, 0, 0, 0644);
374
375 fclose(fp);
376
377 fs_logger("create /etc/resolv.conf");
378}
diff --git a/src/firejail/fs_home.c b/src/firejail/fs_home.c
index 4bcefa443..0ed476063 100644
--- a/src/firejail/fs_home.c
+++ b/src/firejail/fs_home.c
@@ -34,24 +34,24 @@
34#define O_PATH 010000000 34#define O_PATH 010000000
35#endif 35#endif
36 36
37static void skel(const char *homedir, uid_t u, gid_t g) { 37static void skel(const char *homedir) {
38 char *fname; 38 EUID_ASSERT();
39 39
40 // zsh 40 // zsh
41 if (!arg_shell_none && (strcmp(cfg.shell,"/usr/bin/zsh") == 0 || strcmp(cfg.shell,"/bin/zsh") == 0)) { 41 if (!arg_shell_none && (strcmp(cfg.shell,"/usr/bin/zsh") == 0 || strcmp(cfg.shell,"/bin/zsh") == 0)) {
42 // copy skel files 42 // copy skel files
43 char *fname;
43 if (asprintf(&fname, "%s/.zshrc", homedir) == -1) 44 if (asprintf(&fname, "%s/.zshrc", homedir) == -1)
44 errExit("asprintf"); 45 errExit("asprintf");
45 struct stat s;
46 // don't copy it if we already have the file 46 // don't copy it if we already have the file
47 if (stat(fname, &s) == 0) 47 if (access(fname, F_OK) == 0)
48 return; 48 return;
49 if (is_link(fname)) { // stat on dangling symlinks fails, try again using lstat 49 if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat
50 fprintf(stderr, "Error: invalid %s file\n", fname); 50 fprintf(stderr, "Error: invalid %s file\n", fname);
51 exit(1); 51 exit(1);
52 } 52 }
53 if (stat("/etc/skel/.zshrc", &s) == 0) { 53 if (access("/etc/skel/.zshrc", R_OK) == 0) {
54 copy_file_as_user("/etc/skel/.zshrc", fname, u, g, 0644); // regular user 54 copy_file_as_user("/etc/skel/.zshrc", fname, 0644); // regular user
55 fs_logger("clone /etc/skel/.zshrc"); 55 fs_logger("clone /etc/skel/.zshrc");
56 fs_logger2("clone", fname); 56 fs_logger2("clone", fname);
57 } 57 }
@@ -65,19 +65,18 @@ static void skel(const char *homedir, uid_t u, gid_t g) {
65 // csh 65 // csh
66 else if (!arg_shell_none && strcmp(cfg.shell,"/bin/csh") == 0) { 66 else if (!arg_shell_none && strcmp(cfg.shell,"/bin/csh") == 0) {
67 // copy skel files 67 // copy skel files
68 char *fname;
68 if (asprintf(&fname, "%s/.cshrc", homedir) == -1) 69 if (asprintf(&fname, "%s/.cshrc", homedir) == -1)
69 errExit("asprintf"); 70 errExit("asprintf");
70 struct stat s;
71
72 // don't copy it if we already have the file 71 // don't copy it if we already have the file
73 if (stat(fname, &s) == 0) 72 if (access(fname, F_OK) == 0)
74 return; 73 return;
75 if (is_link(fname)) { // stat on dangling symlinks fails, try again using lstat 74 if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat
76 fprintf(stderr, "Error: invalid %s file\n", fname); 75 fprintf(stderr, "Error: invalid %s file\n", fname);
77 exit(1); 76 exit(1);
78 } 77 }
79 if (stat("/etc/skel/.cshrc", &s) == 0) { 78 if (access("/etc/skel/.cshrc", R_OK) == 0) {
80 copy_file_as_user("/etc/skel/.cshrc", fname, u, g, 0644); // regular user 79 copy_file_as_user("/etc/skel/.cshrc", fname, 0644); // regular user
81 fs_logger("clone /etc/skel/.cshrc"); 80 fs_logger("clone /etc/skel/.cshrc");
82 fs_logger2("clone", fname); 81 fs_logger2("clone", fname);
83 } 82 }
@@ -91,18 +90,18 @@ static void skel(const char *homedir, uid_t u, gid_t g) {
91 // bash etc. 90 // bash etc.
92 else { 91 else {
93 // copy skel files 92 // copy skel files
93 char *fname;
94 if (asprintf(&fname, "%s/.bashrc", homedir) == -1) 94 if (asprintf(&fname, "%s/.bashrc", homedir) == -1)
95 errExit("asprintf"); 95 errExit("asprintf");
96 struct stat s;
97 // don't copy it if we already have the file 96 // don't copy it if we already have the file
98 if (stat(fname, &s) == 0) 97 if (access(fname, F_OK) == 0)
99 return; 98 return;
100 if (is_link(fname)) { // stat on dangling symlinks fails, try again using lstat 99 if (is_link(fname)) { // access(3) on dangling symlinks fails, try again using lstat
101 fprintf(stderr, "Error: invalid %s file\n", fname); 100 fprintf(stderr, "Error: invalid %s file\n", fname);
102 exit(1); 101 exit(1);
103 } 102 }
104 if (stat("/etc/skel/.bashrc", &s) == 0) { 103 if (access("/etc/skel/.bashrc", R_OK) == 0) {
105 copy_file_as_user("/etc/skel/.bashrc", fname, u, g, 0644); // regular user 104 copy_file_as_user("/etc/skel/.bashrc", fname, 0644); // regular user
106 fs_logger("clone /etc/skel/.bashrc"); 105 fs_logger("clone /etc/skel/.bashrc");
107 fs_logger2("clone", fname); 106 fs_logger2("clone", fname);
108 } 107 }
@@ -112,6 +111,7 @@ static void skel(const char *homedir, uid_t u, gid_t g) {
112} 111}
113 112
114static int store_xauthority(void) { 113static int store_xauthority(void) {
114 EUID_ASSERT();
115 if (arg_x11_block) 115 if (arg_x11_block)
116 return 0; 116 return 0;
117 117
@@ -122,14 +122,15 @@ static int store_xauthority(void) {
122 errExit("asprintf"); 122 errExit("asprintf");
123 123
124 struct stat s; 124 struct stat s;
125 if (stat(src, &s) == 0) { 125 if (lstat(src, &s) == 0) {
126 if (is_link(src)) { 126 if (S_ISLNK(s.st_mode)) {
127 fwarning("invalid .Xauthority file\n"); 127 fwarning("invalid .Xauthority file\n");
128 free(src); 128 free(src);
129 return 0; 129 return 0;
130 } 130 }
131 131
132 // create an empty file as root, and change ownership to user 132 // create an empty file as root, and change ownership to user
133 EUID_ROOT();
133 FILE *fp = fopen(dest, "we"); 134 FILE *fp = fopen(dest, "we");
134 if (fp) { 135 if (fp) {
135 fprintf(fp, "\n"); 136 fprintf(fp, "\n");
@@ -138,10 +139,11 @@ static int store_xauthority(void) {
138 } 139 }
139 else 140 else
140 errExit("fopen"); 141 errExit("fopen");
142 EUID_USER();
141 143
142 copy_file_as_user(src, dest, getuid(), getgid(), 0600); // regular user 144 copy_file_as_user(src, dest, 0600); // regular user
143 fs_logger2("clone", dest);
144 selinux_relabel_path(dest, src); 145 selinux_relabel_path(dest, src);
146 fs_logger2("clone", dest);
145 free(src); 147 free(src);
146 return 1; // file copied 148 return 1; // file copied
147 } 149 }
@@ -151,6 +153,7 @@ static int store_xauthority(void) {
151} 153}
152 154
153static int store_asoundrc(void) { 155static int store_asoundrc(void) {
156 EUID_ASSERT();
154 if (arg_nosound) 157 if (arg_nosound)
155 return 0; 158 return 0;
156 159
@@ -161,11 +164,11 @@ static int store_asoundrc(void) {
161 errExit("asprintf"); 164 errExit("asprintf");
162 165
163 struct stat s; 166 struct stat s;
164 if (stat(src, &s) == 0) { 167 if (lstat(src, &s) == 0) {
165 if (is_link(src)) { 168 if (S_ISLNK(s.st_mode)) {
166 // make sure the real path of the file is inside the home directory 169 // make sure the real path of the file is inside the home directory
167 /* coverity[toctou] */ 170 /* coverity[toctou] */
168 char* rp = realpath(src, NULL); 171 char *rp = realpath(src, NULL);
169 if (!rp) { 172 if (!rp) {
170 fprintf(stderr, "Error: Cannot access %s\n", src); 173 fprintf(stderr, "Error: Cannot access %s\n", src);
171 exit(1); 174 exit(1);
@@ -178,6 +181,7 @@ static int store_asoundrc(void) {
178 } 181 }
179 182
180 // create an empty file as root, and change ownership to user 183 // create an empty file as root, and change ownership to user
184 EUID_ROOT();
181 FILE *fp = fopen(dest, "we"); 185 FILE *fp = fopen(dest, "we");
182 if (fp) { 186 if (fp) {
183 fprintf(fp, "\n"); 187 fprintf(fp, "\n");
@@ -186,10 +190,11 @@ static int store_asoundrc(void) {
186 } 190 }
187 else 191 else
188 errExit("fopen"); 192 errExit("fopen");
193 EUID_USER();
189 194
190 copy_file_as_user(src, dest, getuid(), getgid(), 0644); // regular user 195 copy_file_as_user(src, dest, 0644); // regular user
191 selinux_relabel_path(dest, src);
192 fs_logger2("clone", dest); 196 fs_logger2("clone", dest);
197 selinux_relabel_path(dest, src);
193 free(src); 198 free(src);
194 return 1; // file copied 199 return 1; // file copied
195 } 200 }
@@ -199,6 +204,7 @@ static int store_asoundrc(void) {
199} 204}
200 205
201static void copy_xauthority(void) { 206static void copy_xauthority(void) {
207 EUID_ASSERT();
202 // copy XAUTHORITY_FILE in the new home directory 208 // copy XAUTHORITY_FILE in the new home directory
203 char *src = RUN_XAUTHORITY_FILE ; 209 char *src = RUN_XAUTHORITY_FILE ;
204 char *dest; 210 char *dest;
@@ -211,16 +217,18 @@ static void copy_xauthority(void) {
211 exit(1); 217 exit(1);
212 } 218 }
213 219
214 copy_file_as_user(src, dest, getuid(), getgid(), S_IRUSR | S_IWUSR); // regular user 220 copy_file_as_user(src, dest, S_IRUSR | S_IWUSR); // regular user
215 selinux_relabel_path(dest, src);
216 fs_logger2("clone", dest); 221 fs_logger2("clone", dest);
222 selinux_relabel_path(dest, dest);
217 free(dest); 223 free(dest);
218 224
219 // delete the temporary file 225 EUID_ROOT();
220 unlink(src); 226 unlink(src); // delete the temporary file
227 EUID_USER();
221} 228}
222 229
223static void copy_asoundrc(void) { 230static void copy_asoundrc(void) {
231 EUID_ASSERT();
224 // copy ASOUNDRC_FILE in the new home directory 232 // copy ASOUNDRC_FILE in the new home directory
225 char *src = RUN_ASOUNDRC_FILE ; 233 char *src = RUN_ASOUNDRC_FILE ;
226 char *dest; 234 char *dest;
@@ -233,12 +241,14 @@ static void copy_asoundrc(void) {
233 exit(1); 241 exit(1);
234 } 242 }
235 243
236 copy_file_as_user(src, dest, getuid(), getgid(), S_IRUSR | S_IWUSR); // regular user 244 copy_file_as_user(src, dest, S_IRUSR | S_IWUSR); // regular user
237 fs_logger2("clone", dest); 245 fs_logger2("clone", dest);
246 selinux_relabel_path(dest, dest);
238 free(dest); 247 free(dest);
239 248
240 // delete the temporary file 249 EUID_ROOT();
241 unlink(src); 250 unlink(src); // delete the temporary file
251 EUID_USER();
242} 252}
243 253
244// private mode (--private=homedir): 254// private mode (--private=homedir):
@@ -251,13 +261,14 @@ void fs_private_homedir(void) {
251 char *private_homedir = cfg.home_private; 261 char *private_homedir = cfg.home_private;
252 assert(homedir); 262 assert(homedir);
253 assert(private_homedir); 263 assert(private_homedir);
264 EUID_ASSERT();
265
266 uid_t u = getuid();
267 // gid_t g = getgid();
254 268
255 int xflag = store_xauthority(); 269 int xflag = store_xauthority();
256 int aflag = store_asoundrc(); 270 int aflag = store_asoundrc();
257 271
258 uid_t u = getuid();
259 gid_t g = getgid();
260
261 // mount bind private_homedir on top of homedir 272 // mount bind private_homedir on top of homedir
262 if (arg_debug) 273 if (arg_debug)
263 printf("Mount-bind %s on top of %s\n", private_homedir, homedir); 274 printf("Mount-bind %s on top of %s\n", private_homedir, homedir);
@@ -286,17 +297,11 @@ void fs_private_homedir(void) {
286 exit(1); 297 exit(1);
287 } 298 }
288 // mount via the links in /proc/self/fd 299 // mount via the links in /proc/self/fd
289 char *proc_src, *proc_dst; 300 EUID_ROOT();
290 if (asprintf(&proc_src, "/proc/self/fd/%d", src) == -1) 301 if (bind_mount_by_fd(src, dst))
291 errExit("asprintf");
292 if (asprintf(&proc_dst, "/proc/self/fd/%d", dst) == -1)
293 errExit("asprintf");
294 if (mount(proc_src, proc_dst, NULL, MS_NOSUID | MS_NODEV | MS_BIND | MS_REC, NULL) < 0)
295 errExit("mount bind"); 302 errExit("mount bind");
296 free(proc_src); 303 EUID_USER();
297 free(proc_dst); 304
298 close(src);
299 close(dst);
300 // check /proc/self/mountinfo to confirm the mount is ok 305 // check /proc/self/mountinfo to confirm the mount is ok
301 MountData *mptr = get_last_mount(); 306 MountData *mptr = get_last_mount();
302 size_t len = strlen(homedir); 307 size_t len = strlen(homedir);
@@ -304,6 +309,8 @@ void fs_private_homedir(void) {
304 (*(mptr->dir + len) != '\0' && *(mptr->dir + len) != '/')) 309 (*(mptr->dir + len) != '\0' && *(mptr->dir + len) != '/'))
305 errLogExit("invalid private mount"); 310 errLogExit("invalid private mount");
306 311
312 close(src);
313 close(dst);
307 fs_logger3("mount-bind", private_homedir, homedir); 314 fs_logger3("mount-bind", private_homedir, homedir);
308 fs_logger2("whitelist", homedir); 315 fs_logger2("whitelist", homedir);
309// preserve mode and ownership 316// preserve mode and ownership
@@ -312,6 +319,7 @@ void fs_private_homedir(void) {
312// if (chmod(homedir, s.st_mode) == -1) 319// if (chmod(homedir, s.st_mode) == -1)
313// errExit("mount-bind chmod"); 320// errExit("mount-bind chmod");
314 321
322 EUID_ROOT();
315 if (u != 0) { 323 if (u != 0) {
316 // mask /root 324 // mask /root
317 if (arg_debug) 325 if (arg_debug)
@@ -330,8 +338,9 @@ void fs_private_homedir(void) {
330 selinux_relabel_path("/home", "/home"); 338 selinux_relabel_path("/home", "/home");
331 fs_logger("tmpfs /home"); 339 fs_logger("tmpfs /home");
332 } 340 }
341 EUID_USER();
333 342
334 skel(homedir, u, g); 343 skel(homedir);
335 if (xflag) 344 if (xflag)
336 copy_xauthority(); 345 copy_xauthority();
337 if (aflag) 346 if (aflag)
@@ -346,12 +355,15 @@ void fs_private_homedir(void) {
346void fs_private(void) { 355void fs_private(void) {
347 char *homedir = cfg.homedir; 356 char *homedir = cfg.homedir;
348 assert(homedir); 357 assert(homedir);
358 EUID_ASSERT();
359
349 uid_t u = getuid(); 360 uid_t u = getuid();
350 gid_t g = getgid(); 361 gid_t g = getgid();
351 362
352 int xflag = store_xauthority(); 363 int xflag = store_xauthority();
353 int aflag = store_asoundrc(); 364 int aflag = store_asoundrc();
354 365
366 EUID_ROOT();
355 // mask /root 367 // mask /root
356 if (arg_debug) 368 if (arg_debug)
357 printf("Mounting a new /root directory\n"); 369 printf("Mounting a new /root directory\n");
@@ -394,8 +406,9 @@ void fs_private(void) {
394 406
395 selinux_relabel_path(homedir, homedir); 407 selinux_relabel_path(homedir, homedir);
396 } 408 }
409 EUID_USER();
397 410
398 skel(homedir, u, g); 411 skel(homedir);
399 if (xflag) 412 if (xflag)
400 copy_xauthority(); 413 copy_xauthority();
401 if (aflag) 414 if (aflag)
@@ -438,6 +451,7 @@ void fs_check_private_cwd(const char *dir) {
438// --private-home 451// --private-home
439//*********************************************************************************** 452//***********************************************************************************
440static char *check_dir_or_file(const char *name) { 453static char *check_dir_or_file(const char *name) {
454 EUID_ASSERT();
441 assert(name); 455 assert(name);
442 456
443 // basic checks 457 // basic checks
@@ -498,6 +512,7 @@ errexit:
498} 512}
499 513
500static void duplicate(char *name) { 514static void duplicate(char *name) {
515 EUID_ASSERT();
501 char *fname = check_dir_or_file(name); 516 char *fname = check_dir_or_file(name);
502 517
503 if (arg_debug) 518 if (arg_debug)
@@ -535,28 +550,31 @@ static void duplicate(char *name) {
535// set skel files, 550// set skel files,
536// restore .Xauthority 551// restore .Xauthority
537void fs_private_home_list(void) { 552void fs_private_home_list(void) {
538 timetrace_start();
539
540 char *homedir = cfg.homedir; 553 char *homedir = cfg.homedir;
541 char *private_list = cfg.home_private_keep; 554 char *private_list = cfg.home_private_keep;
542 assert(homedir); 555 assert(homedir);
543 assert(private_list); 556 assert(private_list);
557 EUID_ASSERT();
544 558
545 int xflag = store_xauthority(); 559 timetrace_start();
546 int aflag = store_asoundrc();
547 560
548 uid_t uid = getuid(); 561 uid_t uid = getuid();
549 gid_t gid = getgid(); 562 gid_t gid = getgid();
550 563
564 int xflag = store_xauthority();
565 int aflag = store_asoundrc();
566
551 // create /run/firejail/mnt/home directory 567 // create /run/firejail/mnt/home directory
568 EUID_ROOT();
552 mkdir_attr(RUN_HOME_DIR, 0755, uid, gid); 569 mkdir_attr(RUN_HOME_DIR, 0755, uid, gid);
553 selinux_relabel_path(RUN_HOME_DIR, homedir); 570 selinux_relabel_path(RUN_HOME_DIR, homedir);
571
554 fs_logger_print(); // save the current log 572 fs_logger_print(); // save the current log
573 EUID_USER();
555 574
575 // copy the list of files in the new home directory
556 if (arg_debug) 576 if (arg_debug)
557 printf("Copying files in the new home:\n"); 577 printf("Copying files in the new home:\n");
558
559 // copy the list of files in the new home directory
560 char *dlist = strdup(cfg.home_private_keep); 578 char *dlist = strdup(cfg.home_private_keep);
561 if (!dlist) 579 if (!dlist)
562 errExit("strdup"); 580 errExit("strdup");
@@ -589,24 +607,19 @@ void fs_private_home_list(void) {
589 exit(1); 607 exit(1);
590 } 608 }
591 // mount using the file descriptor 609 // mount using the file descriptor
592 char *proc; 610 EUID_ROOT();
593 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1) 611 if (bind_mount_path_to_fd(RUN_HOME_DIR, fd))
594 errExit("asprintf");
595 if (mount(RUN_HOME_DIR, proc, NULL, MS_BIND|MS_REC, NULL) < 0)
596 errExit("mount bind"); 612 errExit("mount bind");
597 free(proc); 613 EUID_USER();
598 close(fd); 614 close(fd);
615
599 // check /proc/self/mountinfo to confirm the mount is ok 616 // check /proc/self/mountinfo to confirm the mount is ok
600 MountData *mptr = get_last_mount(); 617 MountData *mptr = get_last_mount();
601 if (strcmp(mptr->dir, homedir) != 0 || strcmp(mptr->fstype, "tmpfs") != 0) 618 if (strcmp(mptr->dir, homedir) != 0 || strcmp(mptr->fstype, "tmpfs") != 0)
602 errLogExit("invalid private-home mount"); 619 errLogExit("invalid private-home mount");
603 fs_logger2("tmpfs", homedir); 620 fs_logger2("tmpfs", homedir);
604 621
605 // mask RUN_HOME_DIR, it is writable and not noexec 622 EUID_ROOT();
606 if (mount("tmpfs", RUN_HOME_DIR, "tmpfs", MS_NOSUID | MS_NODEV | MS_STRICTATIME, "mode=755,gid=0") < 0)
607 errExit("mounting tmpfs");
608 fs_logger2("tmpfs", RUN_HOME_DIR);
609
610 if (uid != 0) { 623 if (uid != 0) {
611 // mask /root 624 // mask /root
612 if (arg_debug) 625 if (arg_debug)
@@ -626,7 +639,12 @@ void fs_private_home_list(void) {
626 fs_logger("tmpfs /home"); 639 fs_logger("tmpfs /home");
627 } 640 }
628 641
629 skel(homedir, uid, gid); 642 // mask RUN_HOME_DIR, it is writable and not noexec
643 if (mount("tmpfs", RUN_HOME_DIR, "tmpfs", MS_NOSUID | MS_NODEV | MS_STRICTATIME, "mode=755,gid=0") < 0)
644 errExit("mounting tmpfs");
645 EUID_USER();
646
647 skel(homedir);
630 if (xflag) 648 if (xflag)
631 copy_xauthority(); 649 copy_xauthority();
632 if (aflag) 650 if (aflag)
diff --git a/src/firejail/fs_hostname.c b/src/firejail/fs_hostname.c
index 80046f7ae..1a9a78ceb 100644
--- a/src/firejail/fs_hostname.c
+++ b/src/firejail/fs_hostname.c
@@ -88,109 +88,6 @@ errexit:
88 exit(1); 88 exit(1);
89} 89}
90 90
91void fs_resolvconf(void) {
92 if (cfg.dns1 == NULL && !any_dhcp())
93 return;
94
95 if (arg_debug)
96 printf("mirroring /etc directory\n");
97 if (mkdir(RUN_DNS_ETC, 0755))
98 errExit("mkdir");
99 selinux_relabel_path(RUN_DNS_ETC, "/etc");
100 fs_logger("tmpfs /etc");
101
102 DIR *dir = opendir("/etc");
103 if (!dir)
104 errExit("opendir");
105
106 struct stat s;
107 struct dirent *entry;
108 while ((entry = readdir(dir))) {
109 if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
110 continue;
111 // for resolv.conf we create a brand new file
112 if (strcmp(entry->d_name, "resolv.conf") == 0 ||
113 strcmp(entry->d_name, "resolv.conf.dhclient-new") == 0)
114 continue;
115// printf("linking %s\n", entry->d_name);
116
117 char *src;
118 if (asprintf(&src, "/etc/%s", entry->d_name) == -1)
119 errExit("asprintf");
120 if (stat(src, &s) != 0) {
121 free(src);
122 continue;
123 }
124
125 char *dest;
126 if (asprintf(&dest, "%s/%s", RUN_DNS_ETC, entry->d_name) == -1)
127 errExit("asprintf");
128
129 int symlink_done = 0;
130 if (is_link(src)) {
131 char *rp =realpath(src, NULL);
132 if (rp == NULL) {
133 free(src);
134 free(dest);
135 continue;
136 }
137 if (symlink(rp, dest))
138 errExit("symlink");
139 else
140 symlink_done = 1;
141 }
142 else if (S_ISDIR(s.st_mode))
143 create_empty_dir_as_root(dest, s.st_mode);
144 else
145 create_empty_file_as_root(dest, s.st_mode);
146
147 // bind-mount src on top of dest
148 if (!symlink_done) {
149 if (mount(src, dest, NULL, MS_BIND|MS_REC, NULL) < 0)
150 errExit("mount bind mirroring /etc");
151 }
152 fs_logger2("clone", src);
153
154 free(src);
155 free(dest);
156 }
157 closedir(dir);
158
159 // mount bind our private etc directory on top of /etc
160 if (arg_debug)
161 printf("Mount-bind %s on top of /etc\n", RUN_DNS_ETC);
162 if (mount(RUN_DNS_ETC, "/etc", NULL, MS_BIND|MS_REC, NULL) < 0)
163 errExit("mount bind mirroring /etc");
164 fs_logger("mount /etc");
165
166 if (arg_debug)
167 printf("Creating a new /etc/resolv.conf file\n");
168 FILE *fp = fopen("/etc/resolv.conf", "wxe");
169 if (!fp) {
170 fprintf(stderr, "Error: cannot create /etc/resolv.conf file\n");
171 exit(1);
172 }
173
174 if (cfg.dns1) {
175 if (any_dhcp())
176 fwarning("network setup uses DHCP, nameservers will likely be overwritten\n");
177 fprintf(fp, "nameserver %s\n", cfg.dns1);
178 }
179 if (cfg.dns2)
180 fprintf(fp, "nameserver %s\n", cfg.dns2);
181 if (cfg.dns3)
182 fprintf(fp, "nameserver %s\n", cfg.dns3);
183 if (cfg.dns4)
184 fprintf(fp, "nameserver %s\n", cfg.dns4);
185
186 // mode and owner
187 SET_PERMS_STREAM(fp, 0, 0, 0644);
188
189 fclose(fp);
190
191 fs_logger("create /etc/resolv.conf");
192}
193
194char *fs_check_hosts_file(const char *fname) { 91char *fs_check_hosts_file(const char *fname) {
195 assert(fname); 92 assert(fname);
196 invalid_filename(fname, 0); // no globbing 93 invalid_filename(fname, 0); // no globbing
diff --git a/src/firejail/fs_lib.c b/src/firejail/fs_lib.c
index 5df356d04..9d7a17cf3 100644
--- a/src/firejail/fs_lib.c
+++ b/src/firejail/fs_lib.c
@@ -178,8 +178,7 @@ void fslib_mount(const char *full_path) {
178 178
179 if (*full_path == '\0' || 179 if (*full_path == '\0' ||
180 !valid_full_path(full_path) || 180 !valid_full_path(full_path) ||
181 access(full_path, F_OK) != 0 || 181 stat_as_user(full_path, &s) != 0 ||
182 stat(full_path, &s) != 0 ||
183 s.st_uid != 0) 182 s.st_uid != 0)
184 return; 183 return;
185 184
@@ -203,7 +202,7 @@ void fslib_mount_libs(const char *full_path, unsigned user) {
203 } 202 }
204 203
205 if (arg_debug || arg_debug_private_lib) 204 if (arg_debug || arg_debug_private_lib)
206 printf(" fslib_mount_libs %s (parse as %s)\n", full_path, user ? "user" : "root"); 205 printf(" fslib_mount_libs %s\n", full_path);
207 // create an empty RUN_LIB_FILE and allow the user to write to it 206 // create an empty RUN_LIB_FILE and allow the user to write to it
208 unlink(RUN_LIB_FILE); // in case is there 207 unlink(RUN_LIB_FILE); // in case is there
209 create_empty_file_as_root(RUN_LIB_FILE, 0644); 208 create_empty_file_as_root(RUN_LIB_FILE, 0644);
@@ -212,7 +211,7 @@ void fslib_mount_libs(const char *full_path, unsigned user) {
212 211
213 // run fldd to extract the list of files 212 // run fldd to extract the list of files
214 if (arg_debug || arg_debug_private_lib) 213 if (arg_debug || arg_debug_private_lib)
215 printf(" running fldd %s\n", full_path); 214 printf(" running fldd %s as %s\n", full_path, user ? "user" : "root");
216 unsigned mask; 215 unsigned mask;
217 if (user) 216 if (user)
218 mask = SBOX_USER; 217 mask = SBOX_USER;
@@ -246,7 +245,7 @@ static void load_library(const char *fname) {
246 245
247 // existing file owned by root 246 // existing file owned by root
248 struct stat s; 247 struct stat s;
249 if (!access(fname, F_OK) && stat(fname, &s) == 0 && s.st_uid == 0) { 248 if (stat_as_user(fname, &s) == 0 && s.st_uid == 0) {
250 // load directories, regular 64 bit libraries, and 64 bit executables 249 // load directories, regular 64 bit libraries, and 64 bit executables
251 if (S_ISDIR(s.st_mode)) 250 if (S_ISDIR(s.st_mode))
252 fslib_mount(fname); 251 fslib_mount(fname);
@@ -286,19 +285,21 @@ static void install_list_entry(const char *lib) {
286#define DO_GLOBBING 285#define DO_GLOBBING
287#ifdef DO_GLOBBING 286#ifdef DO_GLOBBING
288 // globbing 287 // globbing
288 EUID_USER();
289 glob_t globbuf; 289 glob_t globbuf;
290 int globerr = glob(fname, GLOB_NOCHECK | GLOB_NOSORT | GLOB_PERIOD, NULL, &globbuf); 290 int globerr = glob(fname, GLOB_NOCHECK | GLOB_NOSORT | GLOB_PERIOD, NULL, &globbuf);
291 if (globerr) { 291 if (globerr) {
292 fprintf(stderr, "Error: failed to glob private-lib pattern %s\n", fname); 292 fprintf(stderr, "Error: failed to glob private-lib pattern %s\n", fname);
293 exit(1); 293 exit(1);
294 } 294 }
295 EUID_ROOT();
295 size_t j; 296 size_t j;
296 for (j = 0; j < globbuf.gl_pathc; j++) { 297 for (j = 0; j < globbuf.gl_pathc; j++) {
297 assert(globbuf.gl_pathv[j]); 298 assert(globbuf.gl_pathv[j]);
298//printf("glob %s\n", globbuf.gl_pathv[j]); 299//printf("glob %s\n", globbuf.gl_pathv[j]);
299 // GLOB_NOCHECK - no pattern matched returns the original pattern; try to load it anyway 300 // GLOB_NOCHECK - no pattern matched returns the original pattern; try to load it anyway
300 301
301 // foobar/* includes foobar/. and foobar/.. 302 // foobar/* expands to foobar/. and foobar/..
302 const char *base = gnu_basename(globbuf.gl_pathv[j]); 303 const char *base = gnu_basename(globbuf.gl_pathv[j]);
303 if (strcmp(base, ".") == 0 || strcmp(base, "..") == 0) 304 if (strcmp(base, ".") == 0 || strcmp(base, "..") == 0)
304 continue; 305 continue;
diff --git a/src/firejail/fs_mkdir.c b/src/firejail/fs_mkdir.c
index 8cfeea582..4983db0a0 100644
--- a/src/firejail/fs_mkdir.c
+++ b/src/firejail/fs_mkdir.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */ 19 */
20#include "firejail.h" 20#include "firejail.h"
21#include "../include/gcov_wrapper.h"
21#include <sys/types.h> 22#include <sys/types.h>
22#include <sys/stat.h> 23#include <sys/stat.h>
23#include <unistd.h> 24#include <unistd.h>
@@ -25,7 +26,6 @@
25#include <sys/wait.h> 26#include <sys/wait.h>
26#include <string.h> 27#include <string.h>
27 28
28
29static void check(const char *fname) { 29static void check(const char *fname) {
30 // manufacture /run/user directory 30 // manufacture /run/user directory
31 char *runuser; 31 char *runuser;
@@ -95,9 +95,9 @@ void fs_mkdir(const char *name) {
95 95
96 // create directory 96 // create directory
97 mkdir_recursive(expanded); 97 mkdir_recursive(expanded);
98#ifdef HAVE_GCOV 98
99 __gcov_flush(); 99 __gcov_flush();
100#endif 100
101 _exit(0); 101 _exit(0);
102 } 102 }
103 // wait for the child to finish 103 // wait for the child to finish
diff --git a/src/firejail/fs_trace.c b/src/firejail/fs_trace.c
index 1fc38361e..475a391ec 100644
--- a/src/firejail/fs_trace.c
+++ b/src/firejail/fs_trace.c
@@ -71,12 +71,8 @@ void fs_tracefile(void) {
71 // mount using the symbolic link in /proc/self/fd 71 // mount using the symbolic link in /proc/self/fd
72 if (arg_debug) 72 if (arg_debug)
73 printf("Bind mount %s to %s\n", arg_tracefile, RUN_TRACE_FILE); 73 printf("Bind mount %s to %s\n", arg_tracefile, RUN_TRACE_FILE);
74 char *proc; 74 if (bind_mount_fd_to_path(fd, RUN_TRACE_FILE))
75 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
76 errExit("asprintf");
77 if (mount(proc, RUN_TRACE_FILE, NULL, MS_BIND|MS_REC, NULL) < 0)
78 errExit("mount bind " RUN_TRACE_FILE); 75 errExit("mount bind " RUN_TRACE_FILE);
79 free(proc);
80 close(fd); 76 close(fd);
81 // now that RUN_TRACE_FILE is user-writable, mount it noexec 77 // now that RUN_TRACE_FILE is user-writable, mount it noexec
82 fs_remount(RUN_TRACE_FILE, MOUNT_NOEXEC, 0); 78 fs_remount(RUN_TRACE_FILE, MOUNT_NOEXEC, 0);
diff --git a/src/firejail/fs_var.c b/src/firejail/fs_var.c
index bae3d6df0..20e262d80 100644
--- a/src/firejail/fs_var.c
+++ b/src/firejail/fs_var.c
@@ -323,4 +323,8 @@ void fs_var_utmp(void) {
323 if (mount(RUN_UTMP_FILE, UTMP_FILE, NULL, MS_BIND|MS_NOSUID|MS_NOEXEC | MS_NODEV | MS_REC, NULL) < 0) 323 if (mount(RUN_UTMP_FILE, UTMP_FILE, NULL, MS_BIND|MS_NOSUID|MS_NOEXEC | MS_NODEV | MS_REC, NULL) < 0)
324 errExit("mount bind utmp"); 324 errExit("mount bind utmp");
325 fs_logger2("create", UTMP_FILE); 325 fs_logger2("create", UTMP_FILE);
326
327 // blacklist RUN_UTMP_FILE
328 if (mount(RUN_RO_FILE, RUN_UTMP_FILE, NULL, MS_BIND, "mode=400,gid=0") < 0)
329 errExit("mount bind");
326} 330}
diff --git a/src/firejail/fs_whitelist.c b/src/firejail/fs_whitelist.c
index c7dbe6496..943f275de 100644
--- a/src/firejail/fs_whitelist.c
+++ b/src/firejail/fs_whitelist.c
@@ -104,21 +104,19 @@ static int whitelist_mkpath(const char* path, mode_t mode) {
104 return fd; 104 return fd;
105} 105}
106 106
107static void whitelist_file(int dirfd, const char *topdir, const char *relpath, const char *path) { 107static void whitelist_file(int dirfd, const char *relpath, const char *path) {
108 assert(topdir && relpath && path); 108 assert(relpath && path);
109
110 if (arg_debug || arg_debug_whitelists)
111 printf("Debug %d: dirfd: %d; topdir: %s; relpath: %s; path: %s\n", __LINE__, dirfd, topdir, relpath, path);
112 109
113 // open mount source, using a file descriptor that refers to the 110 // open mount source, using a file descriptor that refers to the
114 // top level directory 111 // top level directory
115 // as the top level directory was opened before mounting the tmpfs 112 // as the top level directory was opened before mounting the tmpfs
116 // we still have full access to all directory contents 113 // we still have full access to all directory contents
117 // take care to not follow symbolic links 114 // take care to not follow symbolic links (dirfd was obtained without
115 // following a link, too)
118 int fd = safer_openat(dirfd, relpath, O_PATH|O_NOFOLLOW|O_CLOEXEC); 116 int fd = safer_openat(dirfd, relpath, O_PATH|O_NOFOLLOW|O_CLOEXEC);
119 if (fd == -1) { 117 if (fd == -1) {
120 if (arg_debug || arg_debug_whitelists) 118 if (arg_debug || arg_debug_whitelists)
121 printf("Debug %d: skip whitelisting of %s\n", __LINE__, path); 119 printf("Debug %d: skip whitelist %s\n", __LINE__, path);
122 return; 120 return;
123 } 121 }
124 struct stat s; 122 struct stat s;
@@ -126,14 +124,15 @@ static void whitelist_file(int dirfd, const char *topdir, const char *relpath, c
126 errExit("fstat"); 124 errExit("fstat");
127 if (S_ISLNK(s.st_mode)) { 125 if (S_ISLNK(s.st_mode)) {
128 if (arg_debug || arg_debug_whitelists) 126 if (arg_debug || arg_debug_whitelists)
129 printf("Debug %d: skip whitelisting of %s\n", __LINE__, path); 127 printf("Debug %d: skip whitelist %s\n", __LINE__, path);
130 close(fd); 128 close(fd);
131 return; 129 return;
132 } 130 }
133 131
134 // create mount target as root, except if inside home or run/user/$UID directory 132 // create mount target as root, except if inside home or run/user/$UID directory
135 int userprivs = 0; 133 int userprivs = 0;
136 if (strcmp(topdir, cfg.homedir) == 0 || strcmp(topdir, runuser) == 0) { 134 if ((strncmp(path, cfg.homedir, homedir_len) == 0 && path[homedir_len] == '/') ||
135 (strncmp(path, runuser, runuser_len) == 0 && path[runuser_len] == '/')) {
137 EUID_USER(); 136 EUID_USER();
138 userprivs = 1; 137 userprivs = 1;
139 } 138 }
@@ -145,7 +144,7 @@ static void whitelist_file(int dirfd, const char *topdir, const char *relpath, c
145 // if there is a symlink somewhere in the path of the mount target, 144 // if there is a symlink somewhere in the path of the mount target,
146 // assume the file is whitelisted already 145 // assume the file is whitelisted already
147 if (arg_debug || arg_debug_whitelists) 146 if (arg_debug || arg_debug_whitelists)
148 printf("Debug %d: skip whitelisting of %s\n", __LINE__, path); 147 printf("Debug %d: skip whitelist %s\n", __LINE__, path);
149 close(fd); 148 close(fd);
150 if (userprivs) 149 if (userprivs)
151 EUID_ROOT(); 150 EUID_ROOT();
@@ -163,7 +162,7 @@ static void whitelist_file(int dirfd, const char *topdir, const char *relpath, c
163 if (mkdirat(fd2, file, 0755) == -1 && errno != EEXIST) { 162 if (mkdirat(fd2, file, 0755) == -1 && errno != EEXIST) {
164 if (arg_debug || arg_debug_whitelists) { 163 if (arg_debug || arg_debug_whitelists) {
165 perror("mkdir"); 164 perror("mkdir");
166 printf("Debug %d: skip whitelisting of %s\n", __LINE__, path); 165 printf("Debug %d: skip whitelist %s\n", __LINE__, path);
167 } 166 }
168 close(fd); 167 close(fd);
169 close(fd2); 168 close(fd2);
@@ -181,7 +180,7 @@ static void whitelist_file(int dirfd, const char *topdir, const char *relpath, c
181 if (fd3 == -1) { 180 if (fd3 == -1) {
182 if (errno != EEXIST && (arg_debug || arg_debug_whitelists)) { 181 if (errno != EEXIST && (arg_debug || arg_debug_whitelists)) {
183 perror("open"); 182 perror("open");
184 printf("Debug %d: skip whitelisting of %s\n", __LINE__, path); 183 printf("Debug %d: skip whitelist %s\n", __LINE__, path);
185 } 184 }
186 close(fd); 185 close(fd);
187 close(fd2); 186 close(fd2);
@@ -196,15 +195,7 @@ static void whitelist_file(int dirfd, const char *topdir, const char *relpath, c
196 195
197 if (arg_debug || arg_debug_whitelists) 196 if (arg_debug || arg_debug_whitelists)
198 printf("Whitelisting %s\n", path); 197 printf("Whitelisting %s\n", path);
199 198 if (bind_mount_by_fd(fd, fd3))
200 // in order to make this mount resilient against symlink attacks, use
201 // magic links in /proc/self/fd instead of mounting the paths directly
202 char *proc_src, *proc_dst;
203 if (asprintf(&proc_src, "/proc/self/fd/%d", fd) == -1)
204 errExit("asprintf");
205 if (asprintf(&proc_dst, "/proc/self/fd/%d", fd3) == -1)
206 errExit("asprintf");
207 if (mount(proc_src, proc_dst, NULL, MS_BIND | MS_REC, NULL) < 0)
208 errExit("mount bind"); 199 errExit("mount bind");
209 // check the last mount operation 200 // check the last mount operation
210 MountData *mptr = get_last_mount(); // will do exit(1) if the mount cannot be found 201 MountData *mptr = get_last_mount(); // will do exit(1) if the mount cannot be found
@@ -222,22 +213,18 @@ static void whitelist_file(int dirfd, const char *topdir, const char *relpath, c
222 // - there should be more than one '/' char in dest string 213 // - there should be more than one '/' char in dest string
223 if (mptr->dir == strrchr(mptr->dir, '/')) 214 if (mptr->dir == strrchr(mptr->dir, '/'))
224 errLogExit("invalid whitelist mount"); 215 errLogExit("invalid whitelist mount");
225 free(proc_src);
226 free(proc_dst);
227 close(fd); 216 close(fd);
228 close(fd3); 217 close(fd3);
229 fs_logger2("whitelist", path); 218 fs_logger2("whitelist", path);
230} 219}
231 220
232static void whitelist_symlink(const char *topdir, const char *link, const char *target) { 221static void whitelist_symlink(const char *link, const char *target) {
233 assert(topdir && link && target); 222 assert(link && target);
234
235 if (arg_debug || arg_debug_whitelists)
236 printf("Debug %d: topdir: %s; link: %s; target: %s\n", __LINE__, topdir, link, target);
237 223
238 // create files as root, except if inside home or run/user/$UID directory 224 // create files as root, except if inside home or run/user/$UID directory
239 int userprivs = 0; 225 int userprivs = 0;
240 if (strcmp(topdir, cfg.homedir) == 0 || strcmp(topdir, runuser) == 0) { 226 if ((strncmp(link, cfg.homedir, homedir_len) == 0 && link[homedir_len] == '/') ||
227 (strncmp(link, runuser, runuser_len) == 0 && link[runuser_len] == '/')) {
241 EUID_USER(); 228 EUID_USER();
242 userprivs = 1; 229 userprivs = 1;
243 } 230 }
@@ -270,6 +257,7 @@ static void whitelist_symlink(const char *topdir, const char *link, const char *
270} 257}
271 258
272static void globbing(const char *pattern) { 259static void globbing(const char *pattern) {
260 EUID_ASSERT();
273 assert(pattern); 261 assert(pattern);
274 262
275 // globbing 263 // globbing
@@ -313,7 +301,10 @@ static void tmpfs_topdirs(const TopDir *topdirs) {
313 301
314 int i; 302 int i;
315 for (i = 0; i < TOP_MAX && topdirs[i].path; i++) { 303 for (i = 0; i < TOP_MAX && topdirs[i].path; i++) {
316 // do user home and /run/user/$UID last 304 // do nested top level directories last
305 // this way '--whitelist=nested_top_level_dir'
306 // yields the full, unmodified directory
307 // instead of the tmpfs
317 if (strcmp(topdirs[i].path, cfg.homedir) == 0) { 308 if (strcmp(topdirs[i].path, cfg.homedir) == 0) {
318 tmpfs_home = 1; 309 tmpfs_home = 1;
319 continue; 310 continue;
@@ -334,25 +325,22 @@ static void tmpfs_topdirs(const TopDir *topdirs) {
334 325
335 // mount tmpfs 326 // mount tmpfs
336 fs_tmpfs(topdirs[i].path, 0); 327 fs_tmpfs(topdirs[i].path, 0);
328 selinux_relabel_path(topdirs[i].path, topdirs[i].path);
337 329
338 // init tmpfs 330 // init tmpfs
339 if (strcmp(topdirs[i].path, "/run") == 0) { 331 if (strcmp(topdirs[i].path, "/run") == 0) {
340 // restore /run/firejail directory 332 // restore /run/firejail directory
341 if (mkdir(RUN_FIREJAIL_DIR, 0755) == -1) 333 if (mkdir(RUN_FIREJAIL_DIR, 0755) == -1)
342 errExit("mkdir"); 334 errExit("mkdir");
343 char *proc; 335 if (bind_mount_fd_to_path(fd, RUN_FIREJAIL_DIR))
344 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
345 errExit("asprintf");
346 if (mount(proc, RUN_FIREJAIL_DIR, NULL, MS_BIND | MS_REC, NULL) < 0)
347 errExit("mount bind"); 336 errExit("mount bind");
348 free(proc);
349 close(fd); 337 close(fd);
350 fs_logger2("whitelist", RUN_FIREJAIL_DIR); 338 fs_logger2("whitelist", RUN_FIREJAIL_DIR);
351 339
352 // restore /run/user/$UID directory 340 // restore /run/user/$UID directory
353 // get path relative to /run 341 // get path relative to /run
354 const char *rel = runuser + 5; 342 const char *rel = runuser + 5;
355 whitelist_file(topdirs[i].fd, topdirs[i].path, rel, runuser); 343 whitelist_file(topdirs[i].fd, rel, runuser);
356 } 344 }
357 else if (strcmp(topdirs[i].path, "/tmp") == 0) { 345 else if (strcmp(topdirs[i].path, "/tmp") == 0) {
358 // fix pam-tmpdir (#2685) 346 // fix pam-tmpdir (#2685)
@@ -376,19 +364,21 @@ static void tmpfs_topdirs(const TopDir *topdirs) {
376 364
377 // restore user home directory if it is masked by the tmpfs 365 // restore user home directory if it is masked by the tmpfs
378 // creates path owned by root 366 // creates path owned by root
367 // does nothing if user home directory doesn't exist
379 size_t topdir_len = strlen(topdirs[i].path); 368 size_t topdir_len = strlen(topdirs[i].path);
380 if (strncmp(topdirs[i].path, cfg.homedir, topdir_len) == 0 && cfg.homedir[topdir_len] == '/') { 369 if (strncmp(topdirs[i].path, cfg.homedir, topdir_len) == 0 && cfg.homedir[topdir_len] == '/') {
381 // get path relative to top level directory 370 // get path relative to top level directory
382 const char *rel = cfg.homedir + topdir_len + 1; 371 const char *rel = cfg.homedir + topdir_len + 1;
383 whitelist_file(topdirs[i].fd, topdirs[i].path, rel, cfg.homedir); 372 whitelist_file(topdirs[i].fd, rel, cfg.homedir);
384 } 373 }
385
386 selinux_relabel_path(topdirs[i].path, topdirs[i].path);
387 } 374 }
388 375
389 // user home directory 376 // user home directory
390 if (tmpfs_home) 377 if (tmpfs_home) {
378 EUID_USER();
391 fs_private(); // checks owner if outside /home 379 fs_private(); // checks owner if outside /home
380 EUID_ROOT();
381 }
392 382
393 // /run/user/$UID directory 383 // /run/user/$UID directory
394 if (tmpfs_runuser) { 384 if (tmpfs_runuser) {
@@ -420,6 +410,13 @@ static TopDir *add_topdir(const char *dir, TopDir *topdirs, const char *path) {
420 strcmp(dir, "/sys") == 0) 410 strcmp(dir, "/sys") == 0)
421 whitelist_error(path); 411 whitelist_error(path);
422 412
413 // whitelisting home directory is disabled if --private option is present
414 if (arg_private && strcmp(dir, cfg.homedir) == 0) {
415 if (arg_debug || arg_debug_whitelists)
416 printf("Debug %d: skip %s - a private home dir is configured!\n", __LINE__, path);
417 return NULL;
418 }
419
423 // do nothing if directory doesn't exist 420 // do nothing if directory doesn't exist
424 struct stat s; 421 struct stat s;
425 if (lstat(dir, &s) != 0) { 422 if (lstat(dir, &s) != 0) {
@@ -437,8 +434,7 @@ static TopDir *add_topdir(const char *dir, TopDir *topdirs, const char *path) {
437 } 434 }
438 // do nothing if directory is disabled by administrator 435 // do nothing if directory is disabled by administrator
439 if (reject_topdir(dir)) { 436 if (reject_topdir(dir)) {
440 fwarning("skipping whitelist %s because\n" 437 fmessage("Whitelist top level directory %s is disabled in Firejail configuration file\n", dir);
441 "whitelist top level directory is disabled in Firejail configuration file\n", path);
442 return NULL; 438 return NULL;
443 } 439 }
444 440
@@ -453,15 +449,14 @@ static TopDir *add_topdir(const char *dir, TopDir *topdirs, const char *path) {
453 TopDir *rv = topdirs + cnt; 449 TopDir *rv = topdirs + cnt;
454 cnt++; 450 cnt++;
455 451
456 char *dup = strdup(dir); 452 rv->path = strdup(dir);
457 if (!dup) 453 if (!rv->path)
458 errExit("strdup"); 454 errExit("strdup");
459 rv->path = dup;
460 455
461 // open the directory, don't follow symbolic links 456 // open the directory, don't follow symbolic links
462 rv->fd = safer_openat(-1, dup, O_PATH|O_NOFOLLOW|O_DIRECTORY|O_CLOEXEC); 457 rv->fd = safer_openat(-1, dir, O_PATH|O_NOFOLLOW|O_DIRECTORY|O_CLOEXEC);
463 if (rv->fd == -1) { 458 if (rv->fd == -1) {
464 fprintf(stderr, "Error: cannot open %s\n", dup); 459 fprintf(stderr, "Error: cannot open %s\n", dir);
465 exit(1); 460 exit(1);
466 } 461 }
467 462
@@ -592,6 +587,10 @@ void fs_whitelist(void) {
592 if (strstr(new_name, "..")) 587 if (strstr(new_name, ".."))
593 whitelist_error(new_name); 588 whitelist_error(new_name);
594 589
590 // /run/firejail is not allowed
591 if (strncmp(new_name, RUN_FIREJAIL_DIR, strlen(RUN_FIREJAIL_DIR)) == 0)
592 whitelist_error(new_name);
593
595 TopDir *current_top = NULL; 594 TopDir *current_top = NULL;
596 if (!nowhitelist_flag) { 595 if (!nowhitelist_flag) {
597 // extract whitelist top level directory 596 // extract whitelist top level directory
@@ -649,6 +648,10 @@ void fs_whitelist(void) {
649 continue; 648 continue;
650 } 649 }
651 650
651 // /run/firejail is not allowed
652 if (strncmp(fname, RUN_FIREJAIL_DIR, strlen(RUN_FIREJAIL_DIR)) == 0)
653 whitelist_error(fname);
654
652 if (nowhitelist_flag) { 655 if (nowhitelist_flag) {
653 // store the path in nowhitelist array 656 // store the path in nowhitelist array
654 if (arg_debug || arg_debug_whitelists) 657 if (arg_debug || arg_debug_whitelists)
@@ -727,14 +730,18 @@ void fs_whitelist(void) {
727 if (strncmp(file, topdir, topdir_len) == 0 && file[topdir_len] == '/') { 730 if (strncmp(file, topdir, topdir_len) == 0 && file[topdir_len] == '/') {
728 // get path relative to top level directory 731 // get path relative to top level directory
729 const char *rel = file + topdir_len + 1; 732 const char *rel = file + topdir_len + 1;
730 whitelist_file(dirfd, topdir, rel, file); 733
734 if (arg_debug || arg_debug_whitelists)
735 printf("Debug %d: file: %s; dirfd: %d; topdir: %s; rel: %s\n", __LINE__, file, dirfd, topdir, rel);
736 whitelist_file(dirfd, rel, file);
731 } 737 }
732 738
733 // create the link if any 739 // create the link if any
734 if (link) 740 if (link) {
735 whitelist_symlink(topdir, link, file); 741 whitelist_symlink(link, file);
742 free(link);
743 }
736 744
737 free(link);
738 free(file); 745 free(file);
739 free(entry->wparam); 746 free(entry->wparam);
740 entry->wparam = NULL; 747 entry->wparam = NULL;
diff --git a/src/firejail/join.c b/src/firejail/join.c
index bab4b830f..394bbb528 100644
--- a/src/firejail/join.c
+++ b/src/firejail/join.c
@@ -147,7 +147,7 @@ static void extract_command(int argc, char **argv, int index) {
147 } 147 }
148 148
149 // build command 149 // build command
150 build_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, index); 150 build_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, index, true);
151} 151}
152 152
153static void extract_nogroups(pid_t pid) { 153static void extract_nogroups(pid_t pid) {
diff --git a/src/firejail/ls.c b/src/firejail/ls.c
index 796c42290..70985ba9e 100644
--- a/src/firejail/ls.c
+++ b/src/firejail/ls.c
@@ -19,6 +19,7 @@
19*/ 19*/
20 20
21#include "firejail.h" 21#include "firejail.h"
22#include "../include/gcov_wrapper.h"
22#include <sys/types.h> 23#include <sys/types.h>
23#include <sys/stat.h> 24#include <sys/stat.h>
24#include <sys/wait.h> 25#include <sys/wait.h>
@@ -349,9 +350,8 @@ void sandboxfs(int op, pid_t pid, const char *path1, const char *path2) {
349 ls(fname1); 350 ls(fname1);
350 else 351 else
351 cat(fname1); 352 cat(fname1);
352#ifdef HAVE_GCOV 353
353 __gcov_flush(); 354 __gcov_flush();
354#endif
355 } 355 }
356 // get file from host and store it in the sandbox 356 // get file from host and store it in the sandbox
357 else if (op == SANDBOX_FS_PUT && path2) { 357 else if (op == SANDBOX_FS_PUT && path2) {
@@ -383,9 +383,9 @@ void sandboxfs(int op, pid_t pid, const char *path1, const char *path2) {
383 // copy the file 383 // copy the file
384 if (copy_file(src_fname, tmp_fname, getuid(), getgid(), 0600)) // already a regular user 384 if (copy_file(src_fname, tmp_fname, getuid(), getgid(), 0600)) // already a regular user
385 _exit(1); 385 _exit(1);
386#ifdef HAVE_GCOV 386
387 __gcov_flush(); 387 __gcov_flush();
388#endif 388
389 _exit(0); 389 _exit(0);
390 } 390 }
391 391
@@ -415,9 +415,9 @@ void sandboxfs(int op, pid_t pid, const char *path1, const char *path2) {
415 // copy the file 415 // copy the file
416 if (copy_file(tmp_fname, dest_fname, getuid(), getgid(), 0600)) // already a regular user 416 if (copy_file(tmp_fname, dest_fname, getuid(), getgid(), 0600)) // already a regular user
417 _exit(1); 417 _exit(1);
418#ifdef HAVE_GCOV 418
419 __gcov_flush(); 419 __gcov_flush();
420#endif 420
421 _exit(0); 421 _exit(0);
422 } 422 }
423 423
diff --git a/src/firejail/macros.c b/src/firejail/macros.c
index bcac1feb4..cd29d8f85 100644
--- a/src/firejail/macros.c
+++ b/src/firejail/macros.c
@@ -149,6 +149,7 @@ static char *resolve_xdg(const char *var) {
149 149
150// returns mallocated memory 150// returns mallocated memory
151static char *resolve_hardcoded(char *entries[]) { 151static char *resolve_hardcoded(char *entries[]) {
152 EUID_ASSERT();
152 char *fname; 153 char *fname;
153 struct stat s; 154 struct stat s;
154 155
diff --git a/src/firejail/main.c b/src/firejail/main.c
index 7cfa58078..f64994e02 100644
--- a/src/firejail/main.c
+++ b/src/firejail/main.c
@@ -20,6 +20,7 @@
20#include "firejail.h" 20#include "firejail.h"
21#include "../include/pid.h" 21#include "../include/pid.h"
22#include "../include/firejail_user.h" 22#include "../include/firejail_user.h"
23#include "../include/gcov_wrapper.h"
23#include "../include/syscall.h" 24#include "../include/syscall.h"
24#include "../include/seccomp.h" 25#include "../include/seccomp.h"
25#define _GNU_SOURCE 26#define _GNU_SOURCE
@@ -259,8 +260,8 @@ static void init_cfg(int argc, char **argv) {
259 fprintf(stderr, "Error: user %s doesn't have a user directory assigned\n", cfg.username); 260 fprintf(stderr, "Error: user %s doesn't have a user directory assigned\n", cfg.username);
260 exit(1); 261 exit(1);
261 } 262 }
263 check_homedir(pw->pw_dir);
262 cfg.homedir = clean_pathname(pw->pw_dir); 264 cfg.homedir = clean_pathname(pw->pw_dir);
263 check_homedir();
264 265
265 // initialize random number generator 266 // initialize random number generator
266 sandbox_pid = getpid(); 267 sandbox_pid = getpid();
@@ -862,12 +863,11 @@ static void run_cmd_and_exit(int i, int argc, char **argv) {
862char *guess_shell(void) { 863char *guess_shell(void) {
863 const char *shell; 864 const char *shell;
864 char *retval; 865 char *retval;
865 struct stat s;
866 866
867 shell = env_get("SHELL"); 867 shell = env_get("SHELL");
868 if (shell) { 868 if (shell) {
869 invalid_filename(shell, 0); // no globbing 869 invalid_filename(shell, 0); // no globbing
870 if (!is_dir(shell) && strstr(shell, "..") == NULL && stat(shell, &s) == 0 && access(shell, X_OK) == 0 && 870 if (access(shell, X_OK) == 0 && !is_dir(shell) && strstr(shell, "..") == NULL &&
871 strcmp(shell, PATH_FIREJAIL) != 0) 871 strcmp(shell, PATH_FIREJAIL) != 0)
872 goto found; 872 goto found;
873 } 873 }
@@ -878,12 +878,15 @@ char *guess_shell(void) {
878 int i = 0; 878 int i = 0;
879 while (shells[i] != NULL) { 879 while (shells[i] != NULL) {
880 // access call checks as real UID/GID, not as effective UID/GID 880 // access call checks as real UID/GID, not as effective UID/GID
881 if (stat(shells[i], &s) == 0 && access(shells[i], X_OK) == 0) { 881 if (access(shells[i], X_OK) == 0) {
882 shell = shells[i]; 882 shell = shells[i];
883 break; 883 goto found;
884 } 884 }
885 i++; 885 i++;
886 } 886 }
887
888 return NULL;
889
887 found: 890 found:
888 retval = strdup(shell); 891 retval = strdup(shell);
889 if (!retval) 892 if (!retval)
@@ -961,7 +964,7 @@ void filter_add_blacklist_override(int fd, int syscall, int arg, void *ptrarg, b
961static int check_postexec(const char *list) { 964static int check_postexec(const char *list) {
962 char *prelist, *postlist; 965 char *prelist, *postlist;
963 966
964 if (list) { 967 if (list && list[0]) {
965 syscalls_in_list(list, "@default-keep", -1, &prelist, &postlist, true); 968 syscalls_in_list(list, "@default-keep", -1, &prelist, &postlist, true);
966 if (postlist) 969 if (postlist)
967 return 1; 970 return 1;
@@ -1256,17 +1259,19 @@ int main(int argc, char **argv, char **envp) {
1256 for (i = 1; i < argc; i++) { 1259 for (i = 1; i < argc; i++) {
1257 run_cmd_and_exit(i, argc, argv); // will exit if the command is recognized 1260 run_cmd_and_exit(i, argc, argv); // will exit if the command is recognized
1258 1261
1259 if (strcmp(argv[i], "--debug") == 0 && !arg_quiet) 1262 if (strcmp(argv[i], "--debug") == 0) {
1260 arg_debug = 1; 1263 arg_debug = 1;
1261 else if (strcmp(argv[i], "--debug-blacklists") == 0) 1264 arg_quiet = 0;
1265 }
1266 else if (strcmp(argv[i], "--debug-deny") == 0)
1262 arg_debug_blacklists = 1; 1267 arg_debug_blacklists = 1;
1263 else if (strcmp(argv[i], "--debug-whitelists") == 0) 1268 else if (strcmp(argv[i], "--debug-allow") == 0)
1264 arg_debug_whitelists = 1; 1269 arg_debug_whitelists = 1;
1265 else if (strcmp(argv[i], "--debug-private-lib") == 0) 1270 else if (strcmp(argv[i], "--debug-private-lib") == 0)
1266 arg_debug_private_lib = 1; 1271 arg_debug_private_lib = 1;
1267 else if (strcmp(argv[i], "--quiet") == 0) { 1272 else if (strcmp(argv[i], "--quiet") == 0) {
1268 arg_quiet = 1; 1273 if (!arg_debug)
1269 arg_debug = 0; 1274 arg_quiet = 1;
1270 } 1275 }
1271 else if (strcmp(argv[i], "--allow-debuggers") == 0) { 1276 else if (strcmp(argv[i], "--allow-debuggers") == 0) {
1272 // already handled 1277 // already handled
@@ -1488,8 +1493,11 @@ int main(int argc, char **argv, char **envp) {
1488 arg_rlimit_nproc = 1; 1493 arg_rlimit_nproc = 1;
1489 } 1494 }
1490 else if (strncmp(argv[i], "--rlimit-fsize=", 15) == 0) { 1495 else if (strncmp(argv[i], "--rlimit-fsize=", 15) == 0) {
1491 check_unsigned(argv[i] + 15, "Error: invalid rlimit"); 1496 cfg.rlimit_fsize = parse_arg_size(argv[i] + 15);
1492 sscanf(argv[i] + 15, "%llu", &cfg.rlimit_fsize); 1497 if (cfg.rlimit_fsize == 0) {
1498 perror("Error: invalid rlimit-fsize. Only use positive numbers and k, m or g suffix.");
1499 exit(1);
1500 }
1493 arg_rlimit_fsize = 1; 1501 arg_rlimit_fsize = 1;
1494 } 1502 }
1495 else if (strncmp(argv[i], "--rlimit-sigpending=", 20) == 0) { 1503 else if (strncmp(argv[i], "--rlimit-sigpending=", 20) == 0) {
@@ -1498,8 +1506,11 @@ int main(int argc, char **argv, char **envp) {
1498 arg_rlimit_sigpending = 1; 1506 arg_rlimit_sigpending = 1;
1499 } 1507 }
1500 else if (strncmp(argv[i], "--rlimit-as=", 12) == 0) { 1508 else if (strncmp(argv[i], "--rlimit-as=", 12) == 0) {
1501 check_unsigned(argv[i] + 12, "Error: invalid rlimit"); 1509 cfg.rlimit_as = parse_arg_size(argv[i] + 12);
1502 sscanf(argv[i] + 12, "%llu", &cfg.rlimit_as); 1510 if (cfg.rlimit_as == 0) {
1511 perror("Error: invalid rlimit-as. Only use positive numbers and k, m or g suffix.");
1512 exit(1);
1513 }
1503 arg_rlimit_as = 1; 1514 arg_rlimit_as = 1;
1504 } 1515 }
1505 else if (strncmp(argv[i], "--ipc-namespace", 15) == 0) 1516 else if (strncmp(argv[i], "--ipc-namespace", 15) == 0)
@@ -1554,6 +1565,8 @@ int main(int argc, char **argv, char **envp) {
1554 profile_check_line(line, 0, NULL); // will exit if something wrong 1565 profile_check_line(line, 0, NULL); // will exit if something wrong
1555 profile_add(line); 1566 profile_add(line);
1556 } 1567 }
1568
1569 // blacklist/deny
1557 else if (strncmp(argv[i], "--blacklist=", 12) == 0) { 1570 else if (strncmp(argv[i], "--blacklist=", 12) == 0) {
1558 char *line; 1571 char *line;
1559 if (asprintf(&line, "blacklist %s", argv[i] + 12) == -1) 1572 if (asprintf(&line, "blacklist %s", argv[i] + 12) == -1)
@@ -1562,6 +1575,14 @@ int main(int argc, char **argv, char **envp) {
1562 profile_check_line(line, 0, NULL); // will exit if something wrong 1575 profile_check_line(line, 0, NULL); // will exit if something wrong
1563 profile_add(line); 1576 profile_add(line);
1564 } 1577 }
1578 else if (strncmp(argv[i], "--deny=", 7) == 0) {
1579 char *line;
1580 if (asprintf(&line, "blacklist %s", argv[i] + 7) == -1)
1581 errExit("asprintf");
1582
1583 profile_check_line(line, 0, NULL); // will exit if something wrong
1584 profile_add(line);
1585 }
1565 else if (strncmp(argv[i], "--noblacklist=", 14) == 0) { 1586 else if (strncmp(argv[i], "--noblacklist=", 14) == 0) {
1566 char *line; 1587 char *line;
1567 if (asprintf(&line, "noblacklist %s", argv[i] + 14) == -1) 1588 if (asprintf(&line, "noblacklist %s", argv[i] + 14) == -1)
@@ -1570,19 +1591,31 @@ int main(int argc, char **argv, char **envp) {
1570 profile_check_line(line, 0, NULL); // will exit if something wrong 1591 profile_check_line(line, 0, NULL); // will exit if something wrong
1571 profile_add(line); 1592 profile_add(line);
1572 } 1593 }
1594 else if (strncmp(argv[i], "--nodeny=", 9) == 0) {
1595 char *line;
1596 if (asprintf(&line, "noblacklist %s", argv[i] + 9) == -1)
1597 errExit("asprintf");
1598
1599 profile_check_line(line, 0, NULL); // will exit if something wrong
1600 profile_add(line);
1601 }
1573 1602
1574#ifdef HAVE_WHITELIST 1603 // whitelist
1575 else if (strncmp(argv[i], "--whitelist=", 12) == 0) { 1604 else if (strncmp(argv[i], "--whitelist=", 12) == 0) {
1576 if (checkcfg(CFG_WHITELIST)) { 1605 char *line;
1577 char *line; 1606 if (asprintf(&line, "whitelist %s", argv[i] + 12) == -1)
1578 if (asprintf(&line, "whitelist %s", argv[i] + 12) == -1) 1607 errExit("asprintf");
1579 errExit("asprintf");
1580 1608
1581 profile_check_line(line, 0, NULL); // will exit if something wrong 1609 profile_check_line(line, 0, NULL); // will exit if something wrong
1582 profile_add(line); 1610 profile_add(line);
1583 } 1611 }
1584 else 1612 else if (strncmp(argv[i], "--allow=", 8) == 0) {
1585 exit_err_feature("whitelist"); 1613 char *line;
1614 if (asprintf(&line, "whitelist %s", argv[i] + 8) == -1)
1615 errExit("asprintf");
1616
1617 profile_check_line(line, 0, NULL); // will exit if something wrong
1618 profile_add(line);
1586 } 1619 }
1587 else if (strncmp(argv[i], "--nowhitelist=", 14) == 0) { 1620 else if (strncmp(argv[i], "--nowhitelist=", 14) == 0) {
1588 char *line; 1621 char *line;
@@ -1592,7 +1625,16 @@ int main(int argc, char **argv, char **envp) {
1592 profile_check_line(line, 0, NULL); // will exit if something wrong 1625 profile_check_line(line, 0, NULL); // will exit if something wrong
1593 profile_add(line); 1626 profile_add(line);
1594 } 1627 }
1595#endif 1628 else if (strncmp(argv[i], "--noallow=", 10) == 0) {
1629 char *line;
1630 if (asprintf(&line, "nowhitelist %s", argv[i] + 10) == -1)
1631 errExit("asprintf");
1632
1633 profile_check_line(line, 0, NULL); // will exit if something wrong
1634 profile_add(line);
1635 }
1636
1637
1596 else if (strncmp(argv[i], "--mkdir=", 8) == 0) { 1638 else if (strncmp(argv[i], "--mkdir=", 8) == 0) {
1597 char *line; 1639 char *line;
1598 if (asprintf(&line, "mkdir %s", argv[i] + 8) == -1) 1640 if (asprintf(&line, "mkdir %s", argv[i] + 8) == -1)
@@ -1957,61 +1999,77 @@ int main(int argc, char **argv, char **envp) {
1957 arg_keep_dev_shm = 1; 1999 arg_keep_dev_shm = 1;
1958 } 2000 }
1959 else if (strncmp(argv[i], "--private-etc=", 14) == 0) { 2001 else if (strncmp(argv[i], "--private-etc=", 14) == 0) {
1960 if (arg_writable_etc) { 2002 if (checkcfg(CFG_PRIVATE_ETC)) {
1961 fprintf(stderr, "Error: --private-etc and --writable-etc are mutually exclusive\n"); 2003 if (arg_writable_etc) {
1962 exit(1); 2004 fprintf(stderr, "Error: --private-etc and --writable-etc are mutually exclusive\n");
1963 } 2005 exit(1);
2006 }
1964 2007
1965 // extract private etc list 2008 // extract private etc list
1966 if (*(argv[i] + 14) == '\0') { 2009 if (*(argv[i] + 14) == '\0') {
1967 fprintf(stderr, "Error: invalid private-etc option\n"); 2010 fprintf(stderr, "Error: invalid private-etc option\n");
1968 exit(1); 2011 exit(1);
2012 }
2013 if (cfg.etc_private_keep) {
2014 if ( asprintf(&cfg.etc_private_keep, "%s,%s", cfg.etc_private_keep, argv[i] + 14) < 0 )
2015 errExit("asprintf");
2016 } else
2017 cfg.etc_private_keep = argv[i] + 14;
2018 arg_private_etc = 1;
1969 } 2019 }
1970 if (cfg.etc_private_keep) { 2020 else
1971 if ( asprintf(&cfg.etc_private_keep, "%s,%s", cfg.etc_private_keep, argv[i] + 14) < 0 ) 2021 exit_err_feature("private-etc");
1972 errExit("asprintf");
1973 } else
1974 cfg.etc_private_keep = argv[i] + 14;
1975 arg_private_etc = 1;
1976 } 2022 }
1977 else if (strncmp(argv[i], "--private-opt=", 14) == 0) { 2023 else if (strncmp(argv[i], "--private-opt=", 14) == 0) {
1978 // extract private opt list 2024 if (checkcfg(CFG_PRIVATE_OPT)) {
1979 if (*(argv[i] + 14) == '\0') { 2025 // extract private opt list
1980 fprintf(stderr, "Error: invalid private-opt option\n"); 2026 if (*(argv[i] + 14) == '\0') {
1981 exit(1); 2027 fprintf(stderr, "Error: invalid private-opt option\n");
2028 exit(1);
2029 }
2030 if (cfg.opt_private_keep) {
2031 if ( asprintf(&cfg.opt_private_keep, "%s,%s", cfg.opt_private_keep, argv[i] + 14) < 0 )
2032 errExit("asprintf");
2033 } else
2034 cfg.opt_private_keep = argv[i] + 14;
2035 arg_private_opt = 1;
1982 } 2036 }
1983 if (cfg.opt_private_keep) { 2037 else
1984 if ( asprintf(&cfg.opt_private_keep, "%s,%s", cfg.opt_private_keep, argv[i] + 14) < 0 ) 2038 exit_err_feature("private-opt");
1985 errExit("asprintf");
1986 } else
1987 cfg.opt_private_keep = argv[i] + 14;
1988 arg_private_opt = 1;
1989 } 2039 }
1990 else if (strncmp(argv[i], "--private-srv=", 14) == 0) { 2040 else if (strncmp(argv[i], "--private-srv=", 14) == 0) {
1991 // extract private srv list 2041 if (checkcfg(CFG_PRIVATE_SRV)) {
1992 if (*(argv[i] + 14) == '\0') { 2042 // extract private srv list
1993 fprintf(stderr, "Error: invalid private-srv option\n"); 2043 if (*(argv[i] + 14) == '\0') {
1994 exit(1); 2044 fprintf(stderr, "Error: invalid private-srv option\n");
2045 exit(1);
2046 }
2047 if (cfg.srv_private_keep) {
2048 if ( asprintf(&cfg.srv_private_keep, "%s,%s", cfg.srv_private_keep, argv[i] + 14) < 0 )
2049 errExit("asprintf");
2050 } else
2051 cfg.srv_private_keep = argv[i] + 14;
2052 arg_private_srv = 1;
1995 } 2053 }
1996 if (cfg.srv_private_keep) { 2054 else
1997 if ( asprintf(&cfg.srv_private_keep, "%s,%s", cfg.srv_private_keep, argv[i] + 14) < 0 ) 2055 exit_err_feature("private-srv");
1998 errExit("asprintf");
1999 } else
2000 cfg.srv_private_keep = argv[i] + 14;
2001 arg_private_srv = 1;
2002 } 2056 }
2003 else if (strncmp(argv[i], "--private-bin=", 14) == 0) { 2057 else if (strncmp(argv[i], "--private-bin=", 14) == 0) {
2004 // extract private bin list 2058 if (checkcfg(CFG_PRIVATE_BIN)) {
2005 if (*(argv[i] + 14) == '\0') { 2059 // extract private bin list
2006 fprintf(stderr, "Error: invalid private-bin option\n"); 2060 if (*(argv[i] + 14) == '\0') {
2007 exit(1); 2061 fprintf(stderr, "Error: invalid private-bin option\n");
2062 exit(1);
2063 }
2064 if (cfg.bin_private_keep) {
2065 if ( asprintf(&cfg.bin_private_keep, "%s,%s", cfg.bin_private_keep, argv[i] + 14) < 0 )
2066 errExit("asprintf");
2067 } else
2068 cfg.bin_private_keep = argv[i] + 14;
2069 arg_private_bin = 1;
2008 } 2070 }
2009 if (cfg.bin_private_keep) { 2071 else
2010 if ( asprintf(&cfg.bin_private_keep, "%s,%s", cfg.bin_private_keep, argv[i] + 14) < 0 ) 2072 exit_err_feature("private-bin");
2011 errExit("asprintf");
2012 } else
2013 cfg.bin_private_keep = argv[i] + 14;
2014 arg_private_bin = 1;
2015 } 2073 }
2016 else if (strncmp(argv[i], "--private-lib", 13) == 0) { 2074 else if (strncmp(argv[i], "--private-lib", 13) == 0) {
2017 if (checkcfg(CFG_PRIVATE_LIB)) { 2075 if (checkcfg(CFG_PRIVATE_LIB)) {
@@ -2799,6 +2857,11 @@ int main(int argc, char **argv, char **envp) {
2799 // build the sandbox command 2857 // build the sandbox command
2800 if (prog_index == -1 && cfg.shell) { 2858 if (prog_index == -1 && cfg.shell) {
2801 assert(cfg.command_line == NULL); // runs cfg.shell 2859 assert(cfg.command_line == NULL); // runs cfg.shell
2860 if (arg_appimage) {
2861 fprintf(stderr, "Error: no appimage archive specified\n");
2862 exit(1);
2863 }
2864
2802 cfg.window_title = cfg.shell; 2865 cfg.window_title = cfg.shell;
2803 cfg.command_name = cfg.shell; 2866 cfg.command_name = cfg.shell;
2804 } 2867 }
@@ -2806,10 +2869,11 @@ int main(int argc, char **argv, char **envp) {
2806 if (arg_debug) 2869 if (arg_debug)
2807 printf("Configuring appimage environment\n"); 2870 printf("Configuring appimage environment\n");
2808 appimage_set(cfg.command_name); 2871 appimage_set(cfg.command_name);
2809 build_appimage_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, prog_index); 2872 build_appimage_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, prog_index, true);
2810 } 2873 }
2811 else { 2874 else {
2812 build_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, prog_index); 2875 // Only add extra quotes if we were not launched by sshd.
2876 build_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, prog_index, !parent_sshd);
2813 } 2877 }
2814/* else { 2878/* else {
2815 fprintf(stderr, "Error: command must be specified when --shell=none used.\n"); 2879 fprintf(stderr, "Error: command must be specified when --shell=none used.\n");
@@ -2823,7 +2887,13 @@ int main(int argc, char **argv, char **envp) {
2823 2887
2824 // load the profile 2888 // load the profile
2825 if (!arg_noprofile && !custom_profile) { 2889 if (!arg_noprofile && !custom_profile) {
2826 custom_profile = profile_find_firejail(cfg.command_name, 1); 2890 if (arg_appimage) {
2891 custom_profile = appimage_find_profile(cfg.command_name);
2892 // disable shell=* for appimages
2893 arg_shell_none = 0;
2894 }
2895 else
2896 custom_profile = profile_find_firejail(cfg.command_name, 1);
2827 } 2897 }
2828 2898
2829 // use default.profile as the default 2899 // use default.profile as the default
@@ -2837,7 +2907,7 @@ int main(int argc, char **argv, char **envp) {
2837 custom_profile = profile_find_firejail(profile_name, 1); 2907 custom_profile = profile_find_firejail(profile_name, 1);
2838 2908
2839 if (!custom_profile) { 2909 if (!custom_profile) {
2840 fprintf(stderr, "Error: no default.profile installed\n"); 2910 fprintf(stderr, "Error: no %s installed\n", profile_name);
2841 exit(1); 2911 exit(1);
2842 } 2912 }
2843 2913
@@ -2853,6 +2923,15 @@ int main(int argc, char **argv, char **envp) {
2853 // check network configuration options - it will exit if anything went wrong 2923 // check network configuration options - it will exit if anything went wrong
2854 net_check_cfg(); 2924 net_check_cfg();
2855 2925
2926 // customization of default seccomp filter
2927 if (config_seccomp_filter_add) {
2928 if (arg_seccomp && !cfg.seccomp_list_keep && !cfg.seccomp_list_drop)
2929 profile_list_augment(&cfg.seccomp_list, config_seccomp_filter_add);
2930
2931 if (arg_seccomp32 && !cfg.seccomp_list_keep32 && !cfg.seccomp_list_drop32)
2932 profile_list_augment(&cfg.seccomp_list32, config_seccomp_filter_add);
2933 }
2934
2856 if (arg_seccomp) 2935 if (arg_seccomp)
2857 arg_seccomp_postexec = check_postexec(cfg.seccomp_list) || check_postexec(cfg.seccomp_list_drop); 2936 arg_seccomp_postexec = check_postexec(cfg.seccomp_list) || check_postexec(cfg.seccomp_list_drop);
2858 2937
@@ -2988,9 +3067,9 @@ int main(int argc, char **argv, char **envp) {
2988 network_main(child); 3067 network_main(child);
2989 if (arg_debug) 3068 if (arg_debug)
2990 printf("Host network configured\n"); 3069 printf("Host network configured\n");
2991#ifdef HAVE_GCOV 3070
2992 __gcov_flush(); 3071 __gcov_flush();
2993#endif 3072
2994 _exit(0); 3073 _exit(0);
2995 } 3074 }
2996 3075
diff --git a/src/firejail/mountinfo.c b/src/firejail/mountinfo.c
index a700729d3..64a94bd84 100644
--- a/src/firejail/mountinfo.c
+++ b/src/firejail/mountinfo.c
@@ -22,7 +22,7 @@
22 22
23#include <fcntl.h> 23#include <fcntl.h>
24#ifndef O_PATH 24#ifndef O_PATH
25# define O_PATH 010000000 25#define O_PATH 010000000
26#endif 26#endif
27 27
28#define MAX_BUF 4096 28#define MAX_BUF 4096
@@ -153,6 +153,7 @@ MountData *get_last_mount(void) {
153 153
154// Extract the mount id from /proc/self/fdinfo and return it. 154// Extract the mount id from /proc/self/fdinfo and return it.
155int get_mount_id(const char *path) { 155int get_mount_id(const char *path) {
156 EUID_ASSERT();
156 assert(path); 157 assert(path);
157 158
158 int fd = open(path, O_PATH|O_CLOEXEC); 159 int fd = open(path, O_PATH|O_CLOEXEC);
@@ -162,7 +163,9 @@ int get_mount_id(const char *path) {
162 char *fdinfo; 163 char *fdinfo;
163 if (asprintf(&fdinfo, "/proc/self/fdinfo/%d", fd) == -1) 164 if (asprintf(&fdinfo, "/proc/self/fdinfo/%d", fd) == -1)
164 errExit("asprintf"); 165 errExit("asprintf");
166 EUID_ROOT();
165 FILE *fp = fopen(fdinfo, "re"); 167 FILE *fp = fopen(fdinfo, "re");
168 EUID_USER();
166 free(fdinfo); 169 free(fdinfo);
167 if (!fp) 170 if (!fp)
168 goto errexit; 171 goto errexit;
diff --git a/src/firejail/no_sandbox.c b/src/firejail/no_sandbox.c
index 0e153c47b..665bef73d 100644
--- a/src/firejail/no_sandbox.c
+++ b/src/firejail/no_sandbox.c
@@ -204,7 +204,7 @@ void run_no_sandbox(int argc, char **argv) {
204 // force --shell=none in order to not break firecfg symbolic links 204 // force --shell=none in order to not break firecfg symbolic links
205 arg_shell_none = 1; 205 arg_shell_none = 1;
206 206
207 build_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, prog_index); 207 build_cmdline(&cfg.command_line, &cfg.window_title, argc, argv, prog_index, true);
208 } 208 }
209 209
210 fwarning("an existing sandbox was detected. " 210 fwarning("an existing sandbox was detected. "
diff --git a/src/firejail/paths.c b/src/firejail/paths.c
index b800fa944..d58a9d272 100644
--- a/src/firejail/paths.c
+++ b/src/firejail/paths.c
@@ -136,7 +136,7 @@ int program_in_path(const char *program) {
136 // ('x' permission means something different for directories). 136 // ('x' permission means something different for directories).
137 // exec follows symlinks, so use stat, not lstat. 137 // exec follows symlinks, so use stat, not lstat.
138 struct stat st; 138 struct stat st;
139 if (stat(scratch, &st)) { 139 if (stat_as_user(scratch, &st)) {
140 perror(scratch); 140 perror(scratch);
141 exit(1); 141 exit(1);
142 } 142 }
diff --git a/src/firejail/profile.c b/src/firejail/profile.c
index dd4506ac1..b7c7185a6 100644
--- a/src/firejail/profile.c
+++ b/src/firejail/profile.c
@@ -18,10 +18,12 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firejail.h" 20#include "firejail.h"
21#include "../include/gcov_wrapper.h"
21#include "../include/seccomp.h" 22#include "../include/seccomp.h"
22#include "../include/syscall.h" 23#include "../include/syscall.h"
23#include <dirent.h> 24#include <dirent.h>
24#include <sys/stat.h> 25#include <sys/stat.h>
26
25extern char *xephyr_screen; 27extern char *xephyr_screen;
26 28
27#define MAX_READ 8192 // line buffer for profile files 29#define MAX_READ 8192 // line buffer for profile files
@@ -1275,56 +1277,69 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
1275 1277
1276 // private /etc list of files and directories 1278 // private /etc list of files and directories
1277 if (strncmp(ptr, "private-etc ", 12) == 0) { 1279 if (strncmp(ptr, "private-etc ", 12) == 0) {
1278 if (arg_writable_etc) { 1280 if (checkcfg(CFG_PRIVATE_ETC)) {
1279 fprintf(stderr, "Error: --private-etc and --writable-etc are mutually exclusive\n"); 1281 if (arg_writable_etc) {
1280 exit(1); 1282 fprintf(stderr, "Error: --private-etc and --writable-etc are mutually exclusive\n");
1281 } 1283 exit(1);
1282 if (cfg.etc_private_keep) { 1284 }
1283 if ( asprintf(&cfg.etc_private_keep, "%s,%s", cfg.etc_private_keep, ptr + 12) < 0 ) 1285 if (cfg.etc_private_keep) {
1284 errExit("asprintf"); 1286 if ( asprintf(&cfg.etc_private_keep, "%s,%s", cfg.etc_private_keep, ptr + 12) < 0 )
1285 } else { 1287 errExit("asprintf");
1286 cfg.etc_private_keep = ptr + 12; 1288 } else {
1289 cfg.etc_private_keep = ptr + 12;
1290 }
1291 arg_private_etc = 1;
1287 } 1292 }
1288 arg_private_etc = 1; 1293 else
1289 1294 warning_feature_disabled("private-etc");
1290 return 0; 1295 return 0;
1291 } 1296 }
1292 1297
1293 // private /opt list of files and directories 1298 // private /opt list of files and directories
1294 if (strncmp(ptr, "private-opt ", 12) == 0) { 1299 if (strncmp(ptr, "private-opt ", 12) == 0) {
1295 if (cfg.opt_private_keep) { 1300 if (checkcfg(CFG_PRIVATE_OPT)) {
1296 if ( asprintf(&cfg.opt_private_keep, "%s,%s", cfg.opt_private_keep, ptr + 12) < 0 ) 1301 if (cfg.opt_private_keep) {
1297 errExit("asprintf"); 1302 if ( asprintf(&cfg.opt_private_keep, "%s,%s", cfg.opt_private_keep, ptr + 12) < 0 )
1298 } else { 1303 errExit("asprintf");
1299 cfg.opt_private_keep = ptr + 12; 1304 } else {
1305 cfg.opt_private_keep = ptr + 12;
1306 }
1307 arg_private_opt = 1;
1300 } 1308 }
1301 arg_private_opt = 1; 1309 else
1302 1310 warning_feature_disabled("private-opt");
1303 return 0; 1311 return 0;
1304 } 1312 }
1305 1313
1306 // private /srv list of files and directories 1314 // private /srv list of files and directories
1307 if (strncmp(ptr, "private-srv ", 12) == 0) { 1315 if (strncmp(ptr, "private-srv ", 12) == 0) {
1308 if (cfg.srv_private_keep) { 1316 if (checkcfg(CFG_PRIVATE_SRV)) {
1309 if ( asprintf(&cfg.srv_private_keep, "%s,%s", cfg.srv_private_keep, ptr + 12) < 0 ) 1317 if (cfg.srv_private_keep) {
1310 errExit("asprintf"); 1318 if ( asprintf(&cfg.srv_private_keep, "%s,%s", cfg.srv_private_keep, ptr + 12) < 0 )
1311 } else { 1319 errExit("asprintf");
1312 cfg.srv_private_keep = ptr + 12; 1320 } else {
1321 cfg.srv_private_keep = ptr + 12;
1322 }
1323 arg_private_srv = 1;
1313 } 1324 }
1314 arg_private_srv = 1; 1325 else
1315 1326 warning_feature_disabled("private-srv");
1316 return 0; 1327 return 0;
1317 } 1328 }
1318 1329
1319 // private /bin list of files 1330 // private /bin list of files
1320 if (strncmp(ptr, "private-bin ", 12) == 0) { 1331 if (strncmp(ptr, "private-bin ", 12) == 0) {
1321 if (cfg.bin_private_keep) { 1332 if (checkcfg(CFG_PRIVATE_BIN)) {
1322 if ( asprintf(&cfg.bin_private_keep, "%s,%s", cfg.bin_private_keep, ptr + 12) < 0 ) 1333 if (cfg.bin_private_keep) {
1323 errExit("asprintf"); 1334 if ( asprintf(&cfg.bin_private_keep, "%s,%s", cfg.bin_private_keep, ptr + 12) < 0 )
1324 } else { 1335 errExit("asprintf");
1325 cfg.bin_private_keep = ptr + 12; 1336 } else {
1337 cfg.bin_private_keep = ptr + 12;
1338 }
1339 arg_private_bin = 1;
1326 } 1340 }
1327 arg_private_bin = 1; 1341 else
1342 warning_feature_disabled("private-bin");
1328 return 0; 1343 return 0;
1329 } 1344 }
1330 1345
@@ -1492,8 +1507,11 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
1492 arg_rlimit_nproc = 1; 1507 arg_rlimit_nproc = 1;
1493 } 1508 }
1494 else if (strncmp(ptr, "rlimit-fsize ", 13) == 0) { 1509 else if (strncmp(ptr, "rlimit-fsize ", 13) == 0) {
1495 check_unsigned(ptr + 13, "Error: invalid rlimit in profile file: "); 1510 cfg.rlimit_fsize = parse_arg_size(ptr + 13);
1496 sscanf(ptr + 13, "%llu", &cfg.rlimit_fsize); 1511 if (cfg.rlimit_fsize == 0) {
1512 perror("Error: invalid rlimit-fsize in profile file. Only use positive numbers and k, m or g suffix.");
1513 exit(1);
1514 }
1497 arg_rlimit_fsize = 1; 1515 arg_rlimit_fsize = 1;
1498 } 1516 }
1499 else if (strncmp(ptr, "rlimit-sigpending ", 18) == 0) { 1517 else if (strncmp(ptr, "rlimit-sigpending ", 18) == 0) {
@@ -1502,8 +1520,11 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
1502 arg_rlimit_sigpending = 1; 1520 arg_rlimit_sigpending = 1;
1503 } 1521 }
1504 else if (strncmp(ptr, "rlimit-as ", 10) == 0) { 1522 else if (strncmp(ptr, "rlimit-as ", 10) == 0) {
1505 check_unsigned(ptr + 10, "Error: invalid rlimit in profile file: "); 1523 cfg.rlimit_as = parse_arg_size(ptr + 10);
1506 sscanf(ptr + 10, "%llu", &cfg.rlimit_as); 1524 if (cfg.rlimit_as == 0) {
1525 perror("Error: invalid rlimit-as in profile file. Only use positive numbers and k, m or g suffix.");
1526 exit(1);
1527 }
1507 arg_rlimit_as = 1; 1528 arg_rlimit_as = 1;
1508 } 1529 }
1509 else { 1530 else {
@@ -1568,22 +1589,8 @@ int profile_check_line(char *ptr, int lineno, const char *fname) {
1568 else if (strncmp(ptr, "noblacklist ", 12) == 0) 1589 else if (strncmp(ptr, "noblacklist ", 12) == 0)
1569 ptr += 12; 1590 ptr += 12;
1570 else if (strncmp(ptr, "whitelist ", 10) == 0) { 1591 else if (strncmp(ptr, "whitelist ", 10) == 0) {
1571#ifdef HAVE_WHITELIST 1592 arg_whitelist = 1;
1572 if (checkcfg(CFG_WHITELIST)) { 1593 ptr += 10;
1573 arg_whitelist = 1;
1574 ptr += 10;
1575 }
1576 else {
1577 static int whitelist_warning_printed = 0;
1578 if (!whitelist_warning_printed) {
1579 warning_feature_disabled("whitelist");
1580 whitelist_warning_printed = 1;
1581 }
1582 return 0;
1583 }
1584#else
1585 return 0;
1586#endif
1587 } 1594 }
1588 else if (strncmp(ptr, "nowhitelist ", 12) == 0) 1595 else if (strncmp(ptr, "nowhitelist ", 12) == 0)
1589 ptr += 12; 1596 ptr += 12;
@@ -1714,23 +1721,65 @@ void profile_read(const char *fname) {
1714 int lineno = 0; 1721 int lineno = 0;
1715 while (fgets(buf, MAX_READ, fp)) { 1722 while (fgets(buf, MAX_READ, fp)) {
1716 ++lineno; 1723 ++lineno;
1724
1725 // remove comments
1726 char *ptr = strchr(buf, '#');
1727 if (ptr)
1728 *ptr = '\0';
1729
1717 // remove empty space - ptr in allocated memory 1730 // remove empty space - ptr in allocated memory
1718 char *ptr = line_remove_spaces(buf); 1731 ptr = line_remove_spaces(buf);
1719 if (ptr == NULL) 1732 if (ptr == NULL)
1720 continue; 1733 continue;
1721 1734 if (*ptr == '\0') {
1722 // comments
1723 if (*ptr == '#' || *ptr == '\0') {
1724 free(ptr); 1735 free(ptr);
1725 continue; 1736 continue;
1726 } 1737 }
1727 1738
1739 // translate allow/deny to whitelist/blacklist
1740 if (strncmp(ptr, "allow ", 6) == 0) {
1741 char *tmp;
1742 if (asprintf(&tmp, "whitelist %s", ptr + 6) == -1)
1743 errExit("asprintf");
1744 free(ptr);
1745 ptr = tmp;
1746 }
1747 else if (strncmp(ptr, "deny ", 5) == 0) {
1748 char *tmp;
1749 if (asprintf(&tmp, "blacklist %s", ptr + 5) == -1)
1750 errExit("asprintf");
1751 free(ptr);
1752 ptr = tmp;
1753 }
1754 else if (strncmp(ptr, "deny-nolog ", 11) == 0) {
1755 char *tmp;
1756 if (asprintf(&tmp, "blacklist-nolog %s", ptr + 11) == -1)
1757 errExit("asprintf");
1758 free(ptr);
1759 ptr = tmp;
1760 }
1761 // translate noallow/nodeny to nowhitelist/noblacklist
1762 else if (strncmp(ptr, "noallow ", 8) == 0) {
1763 char *tmp;
1764 if (asprintf(&tmp, "nowhitelist %s", ptr + 8) == -1)
1765 errExit("asprintf");
1766 free(ptr);
1767 ptr = tmp;
1768 }
1769 else if (strncmp(ptr, "nodeny ", 7) == 0) {
1770 char *tmp;
1771 if (asprintf(&tmp, "noblacklist %s", ptr + 7) == -1)
1772 errExit("asprintf");
1773 free(ptr);
1774 ptr = tmp;
1775 }
1776
1728 // process quiet 1777 // process quiet
1729 // todo: a quiet in the profile file cannot be disabled by --ignore on command line 1778 // todo: a quiet in the profile file cannot be disabled by --ignore on command line
1730 if (strcmp(ptr, "quiet") == 0) { 1779 if (strcmp(ptr, "quiet") == 0) {
1731 if (is_in_ignore_list(ptr)) 1780 if (is_in_ignore_list(ptr))
1732 arg_quiet = 0; 1781 arg_quiet = 0;
1733 else 1782 else if (!arg_debug)
1734 arg_quiet = 1; 1783 arg_quiet = 1;
1735 free(ptr); 1784 free(ptr);
1736 continue; 1785 continue;
@@ -1777,9 +1826,8 @@ void profile_read(const char *fname) {
1777// else { 1826// else {
1778// free(ptr); 1827// free(ptr);
1779// } 1828// }
1780#ifdef HAVE_GCOV 1829
1781 __gcov_flush(); 1830 __gcov_flush();
1782#endif
1783 } 1831 }
1784 fclose(fp); 1832 fclose(fp);
1785} 1833}
diff --git a/src/firejail/pulseaudio.c b/src/firejail/pulseaudio.c
index 1b01a71c6..f8d4c2f3c 100644
--- a/src/firejail/pulseaudio.c
+++ b/src/firejail/pulseaudio.c
@@ -75,31 +75,34 @@ void pulseaudio_disable(void) {
75 closedir(dir); 75 closedir(dir);
76} 76}
77 77
78static void pulseaudio_fallback(const char *path) {
79 assert(path);
80
81 fmessage("Cannot mount tmpfs on %s/.config/pulse\n", cfg.homedir);
82 env_store_name_val("PULSE_CLIENTCONFIG", path, SETENV);
83}
84
85// disable shm in pulseaudio (issue #69) 78// disable shm in pulseaudio (issue #69)
86void pulseaudio_init(void) { 79void pulseaudio_init(void) {
87 struct stat s;
88
89 // do we have pulseaudio in the system? 80 // do we have pulseaudio in the system?
90 if (stat(PULSE_CLIENT_SYSCONF, &s) == -1) { 81 if (access(PULSE_CLIENT_SYSCONF, R_OK)) {
91 if (arg_debug) 82 if (arg_debug)
92 printf("%s not found\n", PULSE_CLIENT_SYSCONF); 83 printf("Cannot read %s\n", PULSE_CLIENT_SYSCONF);
93 return; 84 return;
94 } 85 }
95 86
87 // create ~/.config/pulse directory if not present
88 char *homeusercfg = NULL;
89 if (asprintf(&homeusercfg, "%s/.config", cfg.homedir) == -1)
90 errExit("asprintf");
91 if (create_empty_dir_as_user(homeusercfg, 0700))
92 fs_logger2("create", homeusercfg);
93
94 free(homeusercfg);
95 if (asprintf(&homeusercfg, "%s/.config/pulse", cfg.homedir) == -1)
96 errExit("asprintf");
97 if (create_empty_dir_as_user(homeusercfg, 0700))
98 fs_logger2("create", homeusercfg);
99
96 // create the new user pulseaudio directory 100 // create the new user pulseaudio directory
101 // that will be mounted over ~/.config/pulse
97 if (mkdir(RUN_PULSE_DIR, 0700) == -1) 102 if (mkdir(RUN_PULSE_DIR, 0700) == -1)
98 errExit("mkdir"); 103 errExit("mkdir");
99 selinux_relabel_path(RUN_PULSE_DIR, RUN_PULSE_DIR); 104 selinux_relabel_path(RUN_PULSE_DIR, homeusercfg);
100 // mount it nosuid, noexec, nodev
101 fs_remount(RUN_PULSE_DIR, MOUNT_NOEXEC, 0); 105 fs_remount(RUN_PULSE_DIR, MOUNT_NOEXEC, 0);
102
103 // create the new client.conf file 106 // create the new client.conf file
104 char *pulsecfg = NULL; 107 char *pulsecfg = NULL;
105 if (asprintf(&pulsecfg, "%s/client.conf", RUN_PULSE_DIR) == -1) 108 if (asprintf(&pulsecfg, "%s/client.conf", RUN_PULSE_DIR) == -1)
@@ -116,37 +119,14 @@ void pulseaudio_init(void) {
116 if (set_perms(RUN_PULSE_DIR, getuid(), getgid(), 0700)) 119 if (set_perms(RUN_PULSE_DIR, getuid(), getgid(), 0700))
117 errExit("set_perms"); 120 errExit("set_perms");
118 121
119 // create ~/.config/pulse directory if not present
120 char *homeusercfg = NULL;
121 if (asprintf(&homeusercfg, "%s/.config", cfg.homedir) == -1)
122 errExit("asprintf");
123 if (create_empty_dir_as_user(homeusercfg, 0700))
124 fs_logger2("create", homeusercfg);
125
126 free(homeusercfg);
127 if (asprintf(&homeusercfg, "%s/.config/pulse", cfg.homedir) == -1)
128 errExit("asprintf");
129 if (create_empty_dir_as_user(homeusercfg, 0700))
130 fs_logger2("create", homeusercfg);
131
132 // if ~/.config/pulse exists and there are no symbolic links, mount the new directory 122 // if ~/.config/pulse exists and there are no symbolic links, mount the new directory
133 // else set environment variable 123 // else set environment variable
124 EUID_USER();
134 int fd = safer_openat(-1, homeusercfg, O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC); 125 int fd = safer_openat(-1, homeusercfg, O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC);
126 EUID_ROOT();
135 if (fd == -1) { 127 if (fd == -1) {
136 pulseaudio_fallback(pulsecfg); 128 fwarning("not mounting tmpfs on %s\n", homeusercfg);
137 goto out; 129 env_store_name_val("PULSE_CLIENTCONFIG", pulsecfg, SETENV);
138 }
139 // confirm the actual mount destination is owned by the user
140 if (fstat(fd, &s) == -1) { // FUSE
141 if (errno != EACCES)
142 errExit("fstat");
143 close(fd);
144 pulseaudio_fallback(pulsecfg);
145 goto out;
146 }
147 if (s.st_uid != getuid()) {
148 close(fd);
149 pulseaudio_fallback(pulsecfg);
150 goto out; 130 goto out;
151 } 131 }
152 // preserve a read-only mount 132 // preserve a read-only mount
@@ -158,17 +138,13 @@ void pulseaudio_init(void) {
158 // mount via the link in /proc/self/fd 138 // mount via the link in /proc/self/fd
159 if (arg_debug) 139 if (arg_debug)
160 printf("Mounting %s on %s\n", RUN_PULSE_DIR, homeusercfg); 140 printf("Mounting %s on %s\n", RUN_PULSE_DIR, homeusercfg);
161 char *proc; 141 if (bind_mount_path_to_fd(RUN_PULSE_DIR, fd))
162 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
163 errExit("asprintf");
164 if (mount(RUN_PULSE_DIR, proc, "none", MS_BIND, NULL) < 0)
165 errExit("mount pulseaudio"); 142 errExit("mount pulseaudio");
166 // check /proc/self/mountinfo to confirm the mount is ok 143 // check /proc/self/mountinfo to confirm the mount is ok
167 MountData *mptr = get_last_mount(); 144 MountData *mptr = get_last_mount();
168 if (strcmp(mptr->dir, homeusercfg) != 0 || strcmp(mptr->fstype, "tmpfs") != 0) 145 if (strcmp(mptr->dir, homeusercfg) != 0 || strcmp(mptr->fstype, "tmpfs") != 0)
169 errLogExit("invalid pulseaudio mount"); 146 errLogExit("invalid pulseaudio mount");
170 fs_logger2("tmpfs", homeusercfg); 147 fs_logger2("tmpfs", homeusercfg);
171 free(proc);
172 close(fd); 148 close(fd);
173 149
174 char *p; 150 char *p;
diff --git a/src/firejail/restrict_users.c b/src/firejail/restrict_users.c
index 53e395b89..6f17231a4 100644
--- a/src/firejail/restrict_users.c
+++ b/src/firejail/restrict_users.c
@@ -104,12 +104,8 @@ static void sanitize_home(void) {
104 selinux_relabel_path(cfg.homedir, cfg.homedir); 104 selinux_relabel_path(cfg.homedir, cfg.homedir);
105 105
106 // bring back real user home directory 106 // bring back real user home directory
107 char *proc; 107 if (bind_mount_fd_to_path(fd, cfg.homedir))
108 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
109 errExit("asprintf");
110 if (mount(proc, cfg.homedir, NULL, MS_BIND|MS_REC, NULL) < 0)
111 errExit("mount bind"); 108 errExit("mount bind");
112 free(proc);
113 close(fd); 109 close(fd);
114 110
115 if (!arg_private) 111 if (!arg_private)
@@ -154,12 +150,8 @@ static void sanitize_run(void) {
154 selinux_relabel_path(runuser, runuser); 150 selinux_relabel_path(runuser, runuser);
155 151
156 // bring back real run/user/$UID directory 152 // bring back real run/user/$UID directory
157 char *proc; 153 if (bind_mount_fd_to_path(fd, runuser))
158 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
159 errExit("asprintf");
160 if (mount(proc, runuser, NULL, MS_BIND|MS_REC, NULL) < 0)
161 errExit("mount bind"); 154 errExit("mount bind");
162 free(proc);
163 close(fd); 155 close(fd);
164 156
165 fs_logger2("whitelist", runuser); 157 fs_logger2("whitelist", runuser);
@@ -246,6 +238,11 @@ static void sanitize_passwd(void) {
246 // mount-bind tne new password file 238 // mount-bind tne new password file
247 if (mount(RUN_PASSWD_FILE, "/etc/passwd", "none", MS_BIND, "mode=400,gid=0") < 0) 239 if (mount(RUN_PASSWD_FILE, "/etc/passwd", "none", MS_BIND, "mode=400,gid=0") < 0)
248 errExit("mount"); 240 errExit("mount");
241
242 // blacklist RUN_PASSWD_FILE
243 if (mount(RUN_RO_FILE, RUN_PASSWD_FILE, "none", MS_BIND, "mode=400,gid=0") < 0)
244 errExit("mount");
245
249 fs_logger("create /etc/passwd"); 246 fs_logger("create /etc/passwd");
250 247
251 return; 248 return;
@@ -376,6 +373,11 @@ static void sanitize_group(void) {
376 // mount-bind tne new group file 373 // mount-bind tne new group file
377 if (mount(RUN_GROUP_FILE, "/etc/group", "none", MS_BIND, "mode=400,gid=0") < 0) 374 if (mount(RUN_GROUP_FILE, "/etc/group", "none", MS_BIND, "mode=400,gid=0") < 0)
378 errExit("mount"); 375 errExit("mount");
376
377 // blacklist RUN_GROUP_FILE
378 if (mount(RUN_RO_FILE, RUN_GROUP_FILE, "none", MS_BIND, "mode=400,gid=0") < 0)
379 errExit("mount");
380
379 fs_logger("create /etc/group"); 381 fs_logger("create /etc/group");
380 382
381 return; 383 return;
diff --git a/src/firejail/rlimit.c b/src/firejail/rlimit.c
index 78f00bc63..f177f4b89 100644
--- a/src/firejail/rlimit.c
+++ b/src/firejail/rlimit.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firejail.h" 20#include "firejail.h"
21#include "../include/gcov_wrapper.h"
21#include <sys/time.h> 22#include <sys/time.h>
22#include <sys/resource.h> 23#include <sys/resource.h>
23 24
@@ -33,9 +34,9 @@ void set_rlimits(void) {
33 // set the new limit 34 // set the new limit
34 rl.rlim_cur = (rlim_t) cfg.rlimit_cpu; 35 rl.rlim_cur = (rlim_t) cfg.rlimit_cpu;
35 rl.rlim_max = (rlim_t) cfg.rlimit_cpu; 36 rl.rlim_max = (rlim_t) cfg.rlimit_cpu;
36#ifdef HAVE_GCOV 37
37 __gcov_dump(); 38 __gcov_dump();
38#endif 39
39 if (setrlimit(RLIMIT_CPU, &rl) == -1) 40 if (setrlimit(RLIMIT_CPU, &rl) == -1)
40 errExit("setrlimit"); 41 errExit("setrlimit");
41 if (arg_debug) 42 if (arg_debug)
@@ -50,9 +51,10 @@ void set_rlimits(void) {
50 // set the new limit 51 // set the new limit
51 rl.rlim_cur = (rlim_t) cfg.rlimit_nofile; 52 rl.rlim_cur = (rlim_t) cfg.rlimit_nofile;
52 rl.rlim_max = (rlim_t) cfg.rlimit_nofile; 53 rl.rlim_max = (rlim_t) cfg.rlimit_nofile;
53#ifdef HAVE_GCOV // gcov-instrumented programs might crash at this point 54
55 // gcov-instrumented programs might crash at this point
54 __gcov_dump(); 56 __gcov_dump();
55#endif 57
56 if (setrlimit(RLIMIT_NOFILE, &rl) == -1) 58 if (setrlimit(RLIMIT_NOFILE, &rl) == -1)
57 errExit("setrlimit"); 59 errExit("setrlimit");
58 if (arg_debug) 60 if (arg_debug)
@@ -67,9 +69,9 @@ void set_rlimits(void) {
67 // set the new limit 69 // set the new limit
68 rl.rlim_cur = (rlim_t) cfg.rlimit_nproc; 70 rl.rlim_cur = (rlim_t) cfg.rlimit_nproc;
69 rl.rlim_max = (rlim_t) cfg.rlimit_nproc; 71 rl.rlim_max = (rlim_t) cfg.rlimit_nproc;
70#ifdef HAVE_GCOV 72
71 __gcov_dump(); 73 __gcov_dump();
72#endif 74
73 if (setrlimit(RLIMIT_NPROC, &rl) == -1) 75 if (setrlimit(RLIMIT_NPROC, &rl) == -1)
74 errExit("setrlimit"); 76 errExit("setrlimit");
75 if (arg_debug) 77 if (arg_debug)
@@ -84,9 +86,9 @@ void set_rlimits(void) {
84 // set the new limit 86 // set the new limit
85 rl.rlim_cur = (rlim_t) cfg.rlimit_fsize; 87 rl.rlim_cur = (rlim_t) cfg.rlimit_fsize;
86 rl.rlim_max = (rlim_t) cfg.rlimit_fsize; 88 rl.rlim_max = (rlim_t) cfg.rlimit_fsize;
87#ifdef HAVE_GCOV 89
88 __gcov_dump(); 90 __gcov_dump();
89#endif 91
90 if (setrlimit(RLIMIT_FSIZE, &rl) == -1) 92 if (setrlimit(RLIMIT_FSIZE, &rl) == -1)
91 errExit("setrlimit"); 93 errExit("setrlimit");
92 if (arg_debug) 94 if (arg_debug)
@@ -101,9 +103,9 @@ void set_rlimits(void) {
101 // set the new limit 103 // set the new limit
102 rl.rlim_cur = (rlim_t) cfg.rlimit_sigpending; 104 rl.rlim_cur = (rlim_t) cfg.rlimit_sigpending;
103 rl.rlim_max = (rlim_t) cfg.rlimit_sigpending; 105 rl.rlim_max = (rlim_t) cfg.rlimit_sigpending;
104#ifdef HAVE_GCOV 106
105 __gcov_dump(); 107 __gcov_dump();
106#endif 108
107 if (setrlimit(RLIMIT_SIGPENDING, &rl) == -1) 109 if (setrlimit(RLIMIT_SIGPENDING, &rl) == -1)
108 errExit("setrlimit"); 110 errExit("setrlimit");
109 if (arg_debug) 111 if (arg_debug)
@@ -118,9 +120,9 @@ void set_rlimits(void) {
118 // set the new limit 120 // set the new limit
119 rl.rlim_cur = (rlim_t) cfg.rlimit_as; 121 rl.rlim_cur = (rlim_t) cfg.rlimit_as;
120 rl.rlim_max = (rlim_t) cfg.rlimit_as; 122 rl.rlim_max = (rlim_t) cfg.rlimit_as;
121#ifdef HAVE_GCOV 123
122 __gcov_dump(); 124 __gcov_dump();
123#endif 125
124 if (setrlimit(RLIMIT_AS, &rl) == -1) 126 if (setrlimit(RLIMIT_AS, &rl) == -1)
125 errExit("setrlimit"); 127 errExit("setrlimit");
126 if (arg_debug) 128 if (arg_debug)
diff --git a/src/firejail/sandbox.c b/src/firejail/sandbox.c
index 08f0f32c9..59ddfb855 100644
--- a/src/firejail/sandbox.c
+++ b/src/firejail/sandbox.c
@@ -19,6 +19,7 @@
19*/ 19*/
20 20
21#include "firejail.h" 21#include "firejail.h"
22#include "../include/gcov_wrapper.h"
22#include "../include/seccomp.h" 23#include "../include/seccomp.h"
23#include <sys/mman.h> 24#include <sys/mman.h>
24#include <sys/mount.h> 25#include <sys/mount.h>
@@ -49,7 +50,6 @@
49#include <sys/apparmor.h> 50#include <sys/apparmor.h>
50#endif 51#endif
51 52
52
53static int force_nonewprivs = 0; 53static int force_nonewprivs = 0;
54 54
55static int monitored_pid = 0; 55static int monitored_pid = 0;
@@ -227,7 +227,7 @@ static void sandbox_if_up(Bridge *br) {
227 if (br->arg_ip_none == 1); // do nothing 227 if (br->arg_ip_none == 1); // do nothing
228 else if (br->arg_ip_none == 0 && br->macvlan == 0) { 228 else if (br->arg_ip_none == 0 && br->macvlan == 0) {
229 if (br->ipsandbox == br->ip) { 229 if (br->ipsandbox == br->ip) {
230 fprintf(stderr, "Error: %d.%d.%d.%d is interface %s address.\n", PRINT_IP(br->ipsandbox), br->dev); 230 fprintf(stderr, "Error: %d.%d.%d.%d is interface %s address, exiting...\n", PRINT_IP(br->ipsandbox), br->dev);
231 exit(1); 231 exit(1);
232 } 232 }
233 233
@@ -245,13 +245,17 @@ static void sandbox_if_up(Bridge *br) {
245 br->ipsandbox = arp_assign(dev, br); //br->ip, br->mask); 245 br->ipsandbox = arp_assign(dev, br); //br->ip, br->mask);
246 else { 246 else {
247 if (br->ipsandbox == br->ip) { 247 if (br->ipsandbox == br->ip) {
248 fprintf(stderr, "Error: %d.%d.%d.%d is interface %s address.\n", PRINT_IP(br->ipsandbox), br->dev); 248 fprintf(stderr, "Error: %d.%d.%d.%d is interface %s address, exiting...\n", PRINT_IP(br->ipsandbox), br->dev);
249 exit(1);
250 }
251 if (br->ipsandbox == cfg.defaultgw) {
252 fprintf(stderr, "Error: %d.%d.%d.%d is the default gateway, exiting...\n", PRINT_IP(br->ipsandbox));
249 exit(1); 253 exit(1);
250 } 254 }
251 255
252 uint32_t rv = arp_check(dev, br->ipsandbox); 256 uint32_t rv = arp_check(dev, br->ipsandbox);
253 if (rv) { 257 if (rv) {
254 fprintf(stderr, "Error: the address %d.%d.%d.%d is already in use.\n", PRINT_IP(br->ipsandbox)); 258 fprintf(stderr, "Error: the address %d.%d.%d.%d is already in use, exiting...\n", PRINT_IP(br->ipsandbox));
255 exit(1); 259 exit(1);
256 } 260 }
257 } 261 }
@@ -500,9 +504,8 @@ void start_application(int no_sandbox, int fd, char *set_sandbox_status) {
500 exit(1); 504 exit(1);
501 } 505 }
502 506
503#ifdef HAVE_GCOV
504 __gcov_dump(); 507 __gcov_dump();
505#endif 508
506 seccomp_install_filters(); 509 seccomp_install_filters();
507 510
508 if (set_sandbox_status) 511 if (set_sandbox_status)
@@ -556,9 +559,8 @@ void start_application(int no_sandbox, int fd, char *set_sandbox_status) {
556 if (!arg_command && !arg_quiet) 559 if (!arg_command && !arg_quiet)
557 print_time(); 560 print_time();
558 561
559#ifdef HAVE_GCOV
560 __gcov_dump(); 562 __gcov_dump();
561#endif 563
562 seccomp_install_filters(); 564 seccomp_install_filters();
563 565
564 if (set_sandbox_status) 566 if (set_sandbox_status)
@@ -833,6 +835,7 @@ int sandbox(void* sandbox_arg) {
833 // private mode 835 // private mode
834 //**************************** 836 //****************************
835 if (arg_private) { 837 if (arg_private) {
838 EUID_USER();
836 if (cfg.home_private) { // --private= 839 if (cfg.home_private) { // --private=
837 if (cfg.chrootdir) 840 if (cfg.chrootdir)
838 fwarning("private=directory feature is disabled in chroot\n"); 841 fwarning("private=directory feature is disabled in chroot\n");
@@ -851,6 +854,7 @@ int sandbox(void* sandbox_arg) {
851 } 854 }
852 else // --private 855 else // --private
853 fs_private(); 856 fs_private();
857 EUID_ROOT();
854 } 858 }
855 859
856 if (arg_private_dev) 860 if (arg_private_dev)
@@ -1039,7 +1043,7 @@ int sandbox(void* sandbox_arg) {
1039 //**************************** 1043 //****************************
1040 // set dns 1044 // set dns
1041 //**************************** 1045 //****************************
1042 fs_resolvconf(); 1046 fs_rebuild_etc();
1043 1047
1044 //**************************** 1048 //****************************
1045 // start dhcp client 1049 // start dhcp client
diff --git a/src/firejail/sbox.c b/src/firejail/sbox.c
index 4a8dd1bf7..37111324a 100644
--- a/src/firejail/sbox.c
+++ b/src/firejail/sbox.c
@@ -265,7 +265,6 @@ int sbox_run(unsigned filtermask, int num, ...) {
265} 265}
266 266
267int sbox_run_v(unsigned filtermask, char * const arg[]) { 267int sbox_run_v(unsigned filtermask, char * const arg[]) {
268 EUID_ROOT();
269 assert(arg); 268 assert(arg);
270 269
271 if (arg_debug) { 270 if (arg_debug) {
@@ -285,6 +284,7 @@ int sbox_run_v(unsigned filtermask, char * const arg[]) {
285 if (child < 0) 284 if (child < 0)
286 errExit("fork"); 285 errExit("fork");
287 if (child == 0) { 286 if (child == 0) {
287 EUID_ROOT();
288 sbox_do_exec_v(filtermask, arg); 288 sbox_do_exec_v(filtermask, arg);
289 } 289 }
290 290
@@ -293,7 +293,7 @@ int sbox_run_v(unsigned filtermask, char * const arg[]) {
293 errExit("waitpid"); 293 errExit("waitpid");
294 } 294 }
295 if (WIFEXITED(status) && WEXITSTATUS(status) != 0) { 295 if (WIFEXITED(status) && WEXITSTATUS(status) != 0) {
296 fprintf(stderr, "Error: failed to run %s\n", arg[0]); 296 fprintf(stderr, "Error: failed to run %s, exiting...\n", arg[0]);
297 exit(1); 297 exit(1);
298 } 298 }
299 299
diff --git a/src/firejail/seccomp.c b/src/firejail/seccomp.c
index 9670fe816..3d9bf9082 100644
--- a/src/firejail/seccomp.c
+++ b/src/firejail/seccomp.c
@@ -208,7 +208,8 @@ int seccomp_filter_drop(bool native) {
208 // - seccomp 208 // - seccomp
209 if (cfg.seccomp_list_drop == NULL) { 209 if (cfg.seccomp_list_drop == NULL) {
210 // default seccomp if error action is not changed 210 // default seccomp if error action is not changed
211 if (cfg.seccomp_list == NULL && arg_seccomp_error_action == DEFAULT_SECCOMP_ERROR_ACTION) { 211 if ((cfg.seccomp_list == NULL || cfg.seccomp_list[0] == '\0')
212 && arg_seccomp_error_action == DEFAULT_SECCOMP_ERROR_ACTION) {
212 if (arg_seccomp_block_secondary) 213 if (arg_seccomp_block_secondary)
213 seccomp_filter_block_secondary(); 214 seccomp_filter_block_secondary();
214 else { 215 else {
@@ -261,7 +262,7 @@ int seccomp_filter_drop(bool native) {
261 } 262 }
262 263
263 // build the seccomp filter as a regular user 264 // build the seccomp filter as a regular user
264 if (list) 265 if (list && list[0])
265 if (arg_allow_debuggers) 266 if (arg_allow_debuggers)
266 rv = sbox_run(SBOX_USER | SBOX_CAPS_NONE | SBOX_SECCOMP, 7, 267 rv = sbox_run(SBOX_USER | SBOX_CAPS_NONE | SBOX_SECCOMP, 7,
267 PATH_FSECCOMP, command, "drop", filter, postexec_filter, list, "allow-debuggers"); 268 PATH_FSECCOMP, command, "drop", filter, postexec_filter, list, "allow-debuggers");
diff --git a/src/firejail/selinux.c b/src/firejail/selinux.c
index 06189d7f6..6969e7a3d 100644
--- a/src/firejail/selinux.c
+++ b/src/firejail/selinux.c
@@ -19,10 +19,13 @@
19*/ 19*/
20#if HAVE_SELINUX 20#if HAVE_SELINUX
21#include "firejail.h" 21#include "firejail.h"
22
23#include <sys/types.h> 22#include <sys/types.h>
24#include <sys/stat.h> 23#include <sys/stat.h>
24
25#include <fcntl.h> 25#include <fcntl.h>
26#ifndef O_PATH
27#define O_PATH 010000000
28#endif
26 29
27#include <selinux/context.h> 30#include <selinux/context.h>
28#include <selinux/label.h> 31#include <selinux/label.h>
@@ -52,8 +55,9 @@ void selinux_relabel_path(const char *path, const char *inside_path)
52 if (!label_hnd) 55 if (!label_hnd)
53 errExit("selabel_open"); 56 errExit("selabel_open");
54 57
55 /* Open the file as O_PATH, to pin it while we determine and adjust the label */ 58 /* Open the file as O_PATH, to pin it while we determine and adjust the label
56 fd = open(path, O_NOFOLLOW|O_CLOEXEC|O_PATH); 59 * Defeat symlink races by not allowing symbolic links */
60 fd = safer_openat(-1, path, O_NOFOLLOW|O_CLOEXEC|O_PATH);
57 if (fd < 0) 61 if (fd < 0)
58 return; 62 return;
59 if (fstat(fd, &st) < 0) 63 if (fstat(fd, &st) < 0)
diff --git a/src/firejail/shutdown.c b/src/firejail/shutdown.c
index fbfe1765b..d1be6eed4 100644
--- a/src/firejail/shutdown.c
+++ b/src/firejail/shutdown.c
@@ -36,8 +36,10 @@ void shut(pid_t pid) {
36 } 36 }
37 free(comm); 37 free(comm);
38 } 38 }
39 else 39 else {
40 errExit("/proc/PID/comm"); 40 fprintf(stderr, "Error: cannot find process %d\n", pid);
41 exit(1);
42 }
41 43
42 // check privileges for non-root users 44 // check privileges for non-root users
43 uid_t uid = getuid(); 45 uid_t uid = getuid();
diff --git a/src/firejail/usage.c b/src/firejail/usage.c
index 888a6ffed..b4f3021c7 100644
--- a/src/firejail/usage.c
+++ b/src/firejail/usage.c
@@ -28,6 +28,7 @@ static char *usage_str =
28 "\n" 28 "\n"
29 "Options:\n" 29 "Options:\n"
30 " -- - signal the end of options and disables further option processing.\n" 30 " -- - signal the end of options and disables further option processing.\n"
31 " --allow=filename - allow file system access.\n"
31 " --allow-debuggers - allow tools such as strace and gdb inside the sandbox.\n" 32 " --allow-debuggers - allow tools such as strace and gdb inside the sandbox.\n"
32 " --allusers - all user home directories are visible inside the sandbox.\n" 33 " --allusers - all user home directories are visible inside the sandbox.\n"
33 " --apparmor - enable AppArmor confinement.\n" 34 " --apparmor - enable AppArmor confinement.\n"
@@ -38,13 +39,12 @@ static char *usage_str =
38#endif 39#endif
39 " --bind=dirname1,dirname2 - mount-bind dirname1 on top of dirname2.\n" 40 " --bind=dirname1,dirname2 - mount-bind dirname1 on top of dirname2.\n"
40 " --bind=filename1,filename2 - mount-bind filename1 on top of filename2.\n" 41 " --bind=filename1,filename2 - mount-bind filename1 on top of filename2.\n"
41 " --blacklist=filename - blacklist directory or file.\n" 42 " --build - build a profile for the application.\n"
42 " --build - build a whitelisted profile for the application.\n" 43 " --build=filename - build a profile for the application.\n"
43 " --build=filename - build a whitelisted profile for the application.\n"
44 " --caps - enable default Linux capabilities filter.\n" 44 " --caps - enable default Linux capabilities filter.\n"
45 " --caps.drop=all - drop all capabilities.\n" 45 " --caps.drop=all - drop all capabilities.\n"
46 " --caps.drop=capability,capability - blacklist capabilities filter.\n" 46 " --caps.drop=capability,capability - drop capabilities.\n"
47 " --caps.keep=capability,capability - whitelist capabilities filter.\n" 47 " --caps.keep=capability,capability - allow capabilities.\n"
48 " --caps.print=name|pid - print the caps filter.\n" 48 " --caps.print=name|pid - print the caps filter.\n"
49#ifdef HAVE_FILE_TRANSFER 49#ifdef HAVE_FILE_TRANSFER
50 " --cat=name|pid filename - print content of file from sandbox container.\n" 50 " --cat=name|pid filename - print content of file from sandbox container.\n"
@@ -58,34 +58,35 @@ static char *usage_str =
58#ifdef HAVE_DBUSPROXY 58#ifdef HAVE_DBUSPROXY
59 " --dbus-log=file - set DBus log file location.\n" 59 " --dbus-log=file - set DBus log file location.\n"
60 " --dbus-system=filter|none - set system DBus access policy.\n" 60 " --dbus-system=filter|none - set system DBus access policy.\n"
61 " --dbus-system.broadcast=rule - allow signals on the system DBus according to rule.\n" 61 " --dbus-system.broadcast=rule - allow signals on the system DBus according\n"
62 "\tto rule.\n"
62 " --dbus-system.call=rule - allow calls on the system DBus according to rule.\n" 63 " --dbus-system.call=rule - allow calls on the system DBus according to rule.\n"
63 " --dbus-system.log - turn on logging for the system DBus." 64 " --dbus-system.log - turn on logging for the system DBus.\n"
64 " --dbus-system.own=name - allow ownership of name on the system DBus.\n" 65 " --dbus-system.own=name - allow ownership of name on the system DBus.\n"
65 " --dbus-system.see=name - allow seeing name on the system DBus.\n" 66 " --dbus-system.see=name - allow seeing name on the system DBus.\n"
66 " --dbus-system.talk=name - allow talking to name on the system DBus.\n" 67 " --dbus-system.talk=name - allow talking to name on the system DBus.\n"
67 " --dbus-user=filter|none - set session DBus access policy.\n" 68 " --dbus-user=filter|none - set session DBus access policy.\n"
68 " --dbus-user.broadcast=rule - allow signals on the session DBus according to rule.\n" 69 " --dbus-user.broadcast=rule - allow signals on the session DBus according\n"
70 "\tto rule.\n"
69 " --dbus-user.call=rule - allow calls on the session DBus according to rule.\n" 71 " --dbus-user.call=rule - allow calls on the session DBus according to rule.\n"
70 " --dbus-user.log - turn on logging for the user DBus." 72 " --dbus-user.log - turn on logging for the user DBus.\n"
71 " --dbus-user.own=name - allow ownership of name on the session DBus.\n" 73 " --dbus-user.own=name - allow ownership of name on the session DBus.\n"
72 " --dbus-user.see=name - allow seeing name on the session DBus.\n" 74 " --dbus-user.see=name - allow seeing name on the session DBus.\n"
73 " --dbus-user.talk=name - allow talking to name on the session DBus.\n" 75 " --dbus-user.talk=name - allow talking to name on the session DBus.\n"
74#endif 76#endif
75 " --debug - print sandbox debug messages.\n" 77 " --debug - print sandbox debug messages.\n"
76 " --debug-blacklists - debug blacklisting.\n" 78 " --debug-allow - debug file system access.\n"
79 " --debug-deny - debug file system access.\n"
77 " --debug-caps - print all recognized capabilities.\n" 80 " --debug-caps - print all recognized capabilities.\n"
78 " --debug-errnos - print all recognized error numbers.\n" 81 " --debug-errnos - print all recognized error numbers.\n"
79 " --debug-private-lib - debug for --private-lib option.\n" 82 " --debug-private-lib - debug for --private-lib option.\n"
80 " --debug-protocols - print all recognized protocols.\n" 83 " --debug-protocols - print all recognized protocols.\n"
81 " --debug-syscalls - print all recognized system calls.\n" 84 " --debug-syscalls - print all recognized system calls.\n"
82 " --debug-syscalls32 - print all recognized 32 bit system calls.\n" 85 " --debug-syscalls32 - print all recognized 32 bit system calls.\n"
83#ifdef HAVE_WHITELIST
84 " --debug-whitelists - debug whitelisting.\n"
85#endif
86#ifdef HAVE_NETWORK 86#ifdef HAVE_NETWORK
87 " --defaultgw=address - configure default gateway.\n" 87 " --defaultgw=address - configure default gateway.\n"
88#endif 88#endif
89 " --deny=filename - deny access to directory or file.\n"
89 " --deterministic-exit-code - always exit with first child's status code.\n" 90 " --deterministic-exit-code - always exit with first child's status code.\n"
90 " --dns=address - set DNS server.\n" 91 " --dns=address - set DNS server.\n"
91 " --dns.print=name|pid - print DNS configuration.\n" 92 " --dns.print=name|pid - print DNS configuration.\n"
@@ -143,14 +144,15 @@ static char *usage_str =
143 " --netfilter.print=name|pid - print the firewall.\n" 144 " --netfilter.print=name|pid - print the firewall.\n"
144 " --netfilter6=filename - enable IPv6 firewall.\n" 145 " --netfilter6=filename - enable IPv6 firewall.\n"
145 " --netfilter6.print=name|pid - print the IPv6 firewall.\n" 146 " --netfilter6.print=name|pid - print the IPv6 firewall.\n"
146 " --netmask=address - define a network mask when dealing with unconfigured" 147 " --netmask=address - define a network mask when dealing with unconfigured\n"
147 "\tparrent interfaces.\n" 148 "\tparrent interfaces.\n"
148 " --netns=name - Run the program in a named, persistent network namespace.\n" 149 " --netns=name - Run the program in a named, persistent network namespace.\n"
149 " --netstats - monitor network statistics.\n" 150 " --netstats - monitor network statistics.\n"
150#endif 151#endif
151 " --nice=value - set nice value.\n" 152 " --nice=value - set nice value.\n"
152 " --no3d - disable 3D hardware acceleration.\n" 153 " --no3d - disable 3D hardware acceleration.\n"
153 " --noblacklist=filename - disable blacklist for file or directory.\n" 154 " --noallow=filename - disable allow command for file or directory.\n"
155 " --nodeny=filename - disable deny command for file or directory.\n"
154 " --nodbus - disable D-Bus access.\n" 156 " --nodbus - disable D-Bus access.\n"
155 " --nodvd - disable DVD and audio CD devices.\n" 157 " --nodvd - disable DVD and audio CD devices.\n"
156 " --noexec=filename - remount the file or directory noexec nosuid and nodev.\n" 158 " --noexec=filename - remount the file or directory noexec nosuid and nodev.\n"
@@ -165,7 +167,6 @@ static char *usage_str =
165 " --noautopulse - disable automatic ~/.config/pulse init.\n" 167 " --noautopulse - disable automatic ~/.config/pulse init.\n"
166 " --novideo - disable video devices.\n" 168 " --novideo - disable video devices.\n"
167 " --nou2f - disable U2F devices.\n" 169 " --nou2f - disable U2F devices.\n"
168 " --nowhitelist=filename - disable whitelist for file or directory.\n"
169#ifdef HAVE_OUTPUT 170#ifdef HAVE_OUTPUT
170 " --output=logfile - stdout logging and log rotation.\n" 171 " --output=logfile - stdout logging and log rotation.\n"
171 " --output-stderr=logfile - stdout and stderr logging and log rotation.\n" 172 " --output-stderr=logfile - stdout and stderr logging and log rotation.\n"
@@ -222,14 +223,14 @@ static char *usage_str =
222#ifdef HAVE_NETWORK 223#ifdef HAVE_NETWORK
223 " --scan - ARP-scan all the networks from inside a network namespace.\n" 224 " --scan - ARP-scan all the networks from inside a network namespace.\n"
224#endif 225#endif
225 " --seccomp - enable seccomp filter and apply the default blacklist.\n" 226 " --seccomp - enable seccomp filter and drop the default syscalls.\n"
226 " --seccomp=syscall,syscall,syscall - enable seccomp filter, blacklist the\n" 227 " --seccomp=syscall,syscall,syscall - enable seccomp filter, drop the\n"
227 "\tdefault syscall list and the syscalls specified by the command.\n" 228 "\tdefault syscall list and the syscalls specified by the command.\n"
228 " --seccomp.block-secondary - build only the native architecture filters.\n" 229 " --seccomp.block-secondary - build only the native architecture filters.\n"
229 " --seccomp.drop=syscall,syscall,syscall - enable seccomp filter, and\n" 230 " --seccomp.drop=syscall,syscall,syscall - enable seccomp filter, and\n"
230 "\tblacklist the syscalls specified by the command.\n" 231 "\tdrop the syscalls specified by the command.\n"
231 " --seccomp.keep=syscall,syscall,syscall - enable seccomp filter, and\n" 232 " --seccomp.keep=syscall,syscall,syscall - enable seccomp filter, and\n"
232 "\twhitelist the syscalls specified by the command.\n" 233 "\tallow the syscalls specified by the command.\n"
233 " --seccomp.print=name|pid - print the seccomp filter for the sandbox\n" 234 " --seccomp.print=name|pid - print the seccomp filter for the sandbox\n"
234 "\tidentified by name or PID.\n" 235 "\tidentified by name or PID.\n"
235 " --seccomp.32[.drop,.keep][=syscall] - like above but for 32 bit architecture.\n" 236 " --seccomp.32[.drop,.keep][=syscall] - like above but for 32 bit architecture.\n"
@@ -244,7 +245,7 @@ static char *usage_str =
244 " --top - monitor the most CPU-intensive sandboxes.\n" 245 " --top - monitor the most CPU-intensive sandboxes.\n"
245 " --trace - trace open, access and connect system calls.\n" 246 " --trace - trace open, access and connect system calls.\n"
246 " --tracelog - add a syslog message for every access to files or\n" 247 " --tracelog - add a syslog message for every access to files or\n"
247 "\tdirectories blacklisted by the security profile.\n" 248 "\tdirectories dropped by the security profile.\n"
248 " --tree - print a tree of all sandboxed processes.\n" 249 " --tree - print a tree of all sandboxed processes.\n"
249 " --tunnel[=devname] - connect the sandbox to a tunnel created by\n" 250 " --tunnel[=devname] - connect the sandbox to a tunnel created by\n"
250 "\tfiretunnel utility.\n" 251 "\tfiretunnel utility.\n"
@@ -252,9 +253,6 @@ static char *usage_str =
252#ifdef HAVE_NETWORK 253#ifdef HAVE_NETWORK
253 " --veth-name=name - use this name for the interface connected to the bridge.\n" 254 " --veth-name=name - use this name for the interface connected to the bridge.\n"
254#endif 255#endif
255#ifdef HAVE_WHITELIST
256 " --whitelist=filename - whitelist directory or file.\n"
257#endif
258 " --writable-etc - /etc directory is mounted read-write.\n" 256 " --writable-etc - /etc directory is mounted read-write.\n"
259 " --writable-run-user - allow access to /run/user/$UID/systemd and\n" 257 " --writable-run-user - allow access to /run/user/$UID/systemd and\n"
260 "\t/run/user/$UID/gnupg.\n" 258 "\t/run/user/$UID/gnupg.\n"
diff --git a/src/firejail/util.c b/src/firejail/util.c
index 2731f61dc..de31ebdd6 100644
--- a/src/firejail/util.c
+++ b/src/firejail/util.c
@@ -19,6 +19,7 @@
19 */ 19 */
20#define _XOPEN_SOURCE 500 20#define _XOPEN_SOURCE 500
21#include "firejail.h" 21#include "firejail.h"
22#include "../include/gcov_wrapper.h"
22#include <ftw.h> 23#include <ftw.h>
23#include <sys/stat.h> 24#include <sys/stat.h>
24#include <sys/mount.h> 25#include <sys/mount.h>
@@ -31,6 +32,9 @@
31#include <sys/wait.h> 32#include <sys/wait.h>
32#include <limits.h> 33#include <limits.h>
33 34
35#include <string.h>
36#include <ctype.h>
37
34#include <fcntl.h> 38#include <fcntl.h>
35#ifndef O_PATH 39#ifndef O_PATH
36#define O_PATH 010000000 40#define O_PATH 010000000
@@ -46,6 +50,44 @@
46#define EMPTY_STRING ("") 50#define EMPTY_STRING ("")
47 51
48 52
53long long unsigned parse_arg_size(char *str) {
54 long long unsigned result = 0;
55 int len = strlen(str);
56 sscanf(str, "%llu", &result);
57
58 char suffix = *(str + len - 1);
59 if (!isdigit(suffix) && (suffix == 'k' || suffix == 'm' || suffix == 'g')) {
60 len -= 1;
61 }
62
63 /* checks for is value valid positive number */
64 for (int i = 0; i < len; i++) {
65 if (!isdigit(*(str+i))) {
66 return 0;
67 }
68 }
69
70 if (isdigit(suffix))
71 return result;
72
73 switch (suffix) {
74 case 'k':
75 result *= 1024;
76 break;
77 case 'm':
78 result *= 1024 * 1024;
79 break;
80 case 'g':
81 result *= 1024 * 1024 * 1024;
82 break;
83 default:
84 result = 0;
85 break;
86 }
87
88 return result;
89}
90
49// send the error to /var/log/auth.log and exit after a small delay 91// send the error to /var/log/auth.log and exit after a small delay
50void errLogExit(char* fmt, ...) { 92void errLogExit(char* fmt, ...) {
51 va_list args; 93 va_list args;
@@ -325,7 +367,7 @@ int copy_file(const char *srcname, const char *destname, uid_t uid, gid_t gid, m
325} 367}
326 368
327// return -1 if error, 0 if no error 369// return -1 if error, 0 if no error
328void copy_file_as_user(const char *srcname, const char *destname, uid_t uid, gid_t gid, mode_t mode) { 370void copy_file_as_user(const char *srcname, const char *destname, mode_t mode) {
329 pid_t child = fork(); 371 pid_t child = fork();
330 if (child < 0) 372 if (child < 0)
331 errExit("fork"); 373 errExit("fork");
@@ -333,13 +375,13 @@ void copy_file_as_user(const char *srcname, const char *destname, uid_t uid, gid
333 // drop privileges 375 // drop privileges
334 drop_privs(0); 376 drop_privs(0);
335 377
336 // copy, set permissions and ownership 378 // copy, set permissions
337 int rv = copy_file(srcname, destname, uid, gid, mode); // already a regular user 379 int rv = copy_file(srcname, destname, -1, -1, mode); // already a regular user
338 if (rv) 380 if (rv)
339 fwarning("cannot copy %s\n", srcname); 381 fwarning("cannot copy %s\n", srcname);
340#ifdef HAVE_GCOV 382
341 __gcov_flush(); 383 __gcov_flush();
342#endif 384
343 _exit(0); 385 _exit(0);
344 } 386 }
345 // wait for the child to finish 387 // wait for the child to finish
@@ -371,9 +413,9 @@ void copy_file_from_user_to_root(const char *srcname, const char *destname, uid_
371 close(src); 413 close(src);
372 } 414 }
373 close(dst); 415 close(dst);
374#ifdef HAVE_GCOV 416
375 __gcov_flush(); 417 __gcov_flush();
376#endif 418
377 _exit(0); 419 _exit(0);
378 } 420 }
379 // wait for the child to finish 421 // wait for the child to finish
@@ -394,17 +436,17 @@ void touch_file_as_user(const char *fname, mode_t mode) {
394 // drop privileges 436 // drop privileges
395 drop_privs(0); 437 drop_privs(0);
396 438
397 FILE *fp = fopen(fname, "wx"); 439 int fd = open(fname, O_RDONLY|O_CREAT|O_EXCL|O_CLOEXEC, S_IRUSR | S_IWUSR);
398 if (fp) { 440 if (fd > -1) {
399 fprintf(fp, "\n"); 441 int err = fchmod(fd, mode);
400 SET_PERMS_STREAM(fp, -1, -1, mode); 442 (void) err;
401 fclose(fp); 443 close(fd);
402 } 444 }
403 else 445 else
404 fwarning("cannot create %s\n", fname); 446 fwarning("cannot create %s\n", fname);
405#ifdef HAVE_GCOV 447
406 __gcov_flush(); 448 __gcov_flush();
407#endif 449
408 _exit(0); 450 _exit(0);
409 } 451 }
410 // wait for the child to finish 452 // wait for the child to finish
@@ -417,6 +459,13 @@ int is_dir(const char *fname) {
417 if (*fname == '\0') 459 if (*fname == '\0')
418 return 0; 460 return 0;
419 461
462 int called_as_root = 0;
463 if (geteuid() == 0)
464 called_as_root = 1;
465
466 if (called_as_root)
467 EUID_USER();
468
420 // if fname doesn't end in '/', add one 469 // if fname doesn't end in '/', add one
421 int rv; 470 int rv;
422 struct stat s; 471 struct stat s;
@@ -432,6 +481,9 @@ int is_dir(const char *fname) {
432 free(tmp); 481 free(tmp);
433 } 482 }
434 483
484 if (called_as_root)
485 EUID_ROOT();
486
435 if (rv == -1) 487 if (rv == -1)
436 return 0; 488 return 0;
437 489
@@ -447,18 +499,83 @@ int is_link(const char *fname) {
447 if (*fname == '\0') 499 if (*fname == '\0')
448 return 0; 500 return 0;
449 501
450 char *dup = strdup(fname); 502 int called_as_root = 0;
451 if (!dup) 503 if (geteuid() == 0)
504 called_as_root = 1;
505
506 if (called_as_root)
507 EUID_USER();
508
509 // remove trailing '/' if any
510 char *tmp = strdup(fname);
511 if (!tmp)
452 errExit("strdup"); 512 errExit("strdup");
453 trim_trailing_slash_or_dot(dup); 513 trim_trailing_slash_or_dot(tmp);
454 514
455 char c; 515 char c;
456 ssize_t rv = readlink(dup, &c, 1); 516 ssize_t rv = readlink(tmp, &c, 1);
517 free(tmp);
518
519 if (called_as_root)
520 EUID_ROOT();
457 521
458 free(dup);
459 return (rv != -1); 522 return (rv != -1);
460} 523}
461 524
525char *realpath_as_user(const char *fname) {
526 assert(fname);
527
528 int called_as_root = 0;
529 if (geteuid() == 0)
530 called_as_root = 1;
531
532 if (called_as_root)
533 EUID_USER();
534
535 char *rv = realpath(fname, NULL);
536
537 if (called_as_root)
538 EUID_ROOT();
539
540 return rv;
541}
542
543int stat_as_user(const char *fname, struct stat *s) {
544 assert(fname);
545
546 int called_as_root = 0;
547 if (geteuid() == 0)
548 called_as_root = 1;
549
550 if (called_as_root)
551 EUID_USER();
552
553 int rv = stat(fname, s);
554
555 if (called_as_root)
556 EUID_ROOT();
557
558 return rv;
559}
560
561int lstat_as_user(const char *fname, struct stat *s) {
562 assert(fname);
563
564 int called_as_root = 0;
565 if (geteuid() == 0)
566 called_as_root = 1;
567
568 if (called_as_root)
569 EUID_USER();
570
571 int rv = lstat(fname, s);
572
573 if (called_as_root)
574 EUID_ROOT();
575
576 return rv;
577}
578
462// remove all slashes and single dots from the end of a path 579// remove all slashes and single dots from the end of a path
463// for example /foo/bar///././. -> /foo/bar 580// for example /foo/bar///././. -> /foo/bar
464void trim_trailing_slash_or_dot(char *path) { 581void trim_trailing_slash_or_dot(char *path) {
@@ -647,9 +764,11 @@ int find_child(pid_t parent, pid_t *child) {
647 if (parent == atoi(ptr)) { 764 if (parent == atoi(ptr)) {
648 // we don't want /usr/bin/xdg-dbus-proxy! 765 // we don't want /usr/bin/xdg-dbus-proxy!
649 char *cmdline = pid_proc_cmdline(pid); 766 char *cmdline = pid_proc_cmdline(pid);
650 if (strncmp(cmdline, XDG_DBUS_PROXY_PATH, strlen(XDG_DBUS_PROXY_PATH)) != 0) 767 if (cmdline) {
651 *child = pid; 768 if (strncmp(cmdline, XDG_DBUS_PROXY_PATH, strlen(XDG_DBUS_PROXY_PATH)) != 0)
652 free(cmdline); 769 *child = pid;
770 free(cmdline);
771 }
653 } 772 }
654 break; // stop reading the file 773 break; // stop reading the file
655 } 774 }
@@ -889,35 +1008,37 @@ static int remove_callback(const char *fpath, const struct stat *sb, int typefla
889 1008
890int remove_overlay_directory(void) { 1009int remove_overlay_directory(void) {
891 EUID_ASSERT(); 1010 EUID_ASSERT();
892 struct stat s;
893 sleep(1); 1011 sleep(1);
894 1012
895 char *path; 1013 char *path;
896 if (asprintf(&path, "%s/.firejail", cfg.homedir) == -1) 1014 if (asprintf(&path, "%s/.firejail", cfg.homedir) == -1)
897 errExit("asprintf"); 1015 errExit("asprintf");
898 1016
899 if (lstat(path, &s) == 0) { 1017 if (access(path, F_OK) == 0) {
900 // deal with obvious problems such as symlinks and root ownership
901 if (!S_ISDIR(s.st_mode)) {
902 if (S_ISLNK(s.st_mode))
903 fprintf(stderr, "Error: %s is a symbolic link\n", path);
904 else
905 fprintf(stderr, "Error: %s is not a directory\n", path);
906 exit(1);
907 }
908 if (s.st_uid != getuid()) {
909 fprintf(stderr, "Error: %s is not owned by the current user\n", path);
910 exit(1);
911 }
912
913 pid_t child = fork(); 1018 pid_t child = fork();
914 if (child < 0) 1019 if (child < 0)
915 errExit("fork"); 1020 errExit("fork");
916 if (child == 0) { 1021 if (child == 0) {
917 // open ~/.firejail, fails if there is any symlink 1022 // open ~/.firejail
918 int fd = safer_openat(-1, path, O_PATH|O_DIRECTORY|O_NOFOLLOW|O_CLOEXEC); 1023 int fd = safer_openat(-1, path, O_PATH|O_NOFOLLOW|O_CLOEXEC);
919 if (fd == -1) 1024 if (fd == -1) {
920 errExit("safer_openat"); 1025 fprintf(stderr, "Error: cannot open %s\n", path);
1026 exit(1);
1027 }
1028 struct stat s;
1029 if (fstat(fd, &s) == -1)
1030 errExit("fstat");
1031 if (!S_ISDIR(s.st_mode)) {
1032 if (S_ISLNK(s.st_mode))
1033 fprintf(stderr, "Error: %s is a symbolic link\n", path);
1034 else
1035 fprintf(stderr, "Error: %s is not a directory\n", path);
1036 exit(1);
1037 }
1038 if (s.st_uid != getuid()) {
1039 fprintf(stderr, "Error: %s is not owned by the current user\n", path);
1040 exit(1);
1041 }
921 // chdir to ~/.firejail 1042 // chdir to ~/.firejail
922 if (fchdir(fd) == -1) 1043 if (fchdir(fd) == -1)
923 errExit("fchdir"); 1044 errExit("fchdir");
@@ -932,15 +1053,15 @@ int remove_overlay_directory(void) {
932 // remove ~/.firejail 1053 // remove ~/.firejail
933 if (rmdir(path) == -1) 1054 if (rmdir(path) == -1)
934 errExit("rmdir"); 1055 errExit("rmdir");
935#ifdef HAVE_GCOV 1056
936 __gcov_flush(); 1057 __gcov_flush();
937#endif 1058
938 _exit(0); 1059 _exit(0);
939 } 1060 }
940 // wait for the child to finish 1061 // wait for the child to finish
941 waitpid(child, NULL, 0); 1062 waitpid(child, NULL, 0);
942 // check if ~/.firejail was deleted 1063 // check if ~/.firejail was deleted
943 if (stat(path, &s) == 0) 1064 if (access(path, F_OK) == 0)
944 return 1; 1065 return 1;
945 } 1066 }
946 return 0; 1067 return 0;
@@ -973,9 +1094,8 @@ void flush_stdin(void) {
973int create_empty_dir_as_user(const char *dir, mode_t mode) { 1094int create_empty_dir_as_user(const char *dir, mode_t mode) {
974 assert(dir); 1095 assert(dir);
975 mode &= 07777; 1096 mode &= 07777;
976 struct stat s;
977 1097
978 if (stat(dir, &s)) { 1098 if (access(dir, F_OK) != 0) {
979 if (arg_debug) 1099 if (arg_debug)
980 printf("Creating empty %s directory\n", dir); 1100 printf("Creating empty %s directory\n", dir);
981 pid_t child = fork(); 1101 pid_t child = fork();
@@ -986,18 +1106,18 @@ int create_empty_dir_as_user(const char *dir, mode_t mode) {
986 drop_privs(0); 1106 drop_privs(0);
987 1107
988 if (mkdir(dir, mode) == 0) { 1108 if (mkdir(dir, mode) == 0) {
989 if (chmod(dir, mode) == -1) 1109 int err = chmod(dir, mode);
990 {;} // do nothing 1110 (void) err;
991 } 1111 }
992 else if (arg_debug) 1112 else if (arg_debug)
993 printf("Directory %s not created: %s\n", dir, strerror(errno)); 1113 printf("Directory %s not created: %s\n", dir, strerror(errno));
994#ifdef HAVE_GCOV 1114
995 __gcov_flush(); 1115 __gcov_flush();
996#endif 1116
997 _exit(0); 1117 _exit(0);
998 } 1118 }
999 waitpid(child, NULL, 0); 1119 waitpid(child, NULL, 0);
1000 if (stat(dir, &s) == 0) 1120 if (access(dir, F_OK) == 0)
1001 return 1; 1121 return 1;
1002 } 1122 }
1003 return 0; 1123 return 0;
@@ -1030,8 +1150,10 @@ void create_empty_file_as_root(const char *fname, mode_t mode) {
1030 if (stat(fname, &s)) { 1150 if (stat(fname, &s)) {
1031 if (arg_debug) 1151 if (arg_debug)
1032 printf("Creating empty %s file\n", fname); 1152 printf("Creating empty %s file\n", fname);
1033 1153 /* coverity[toctou] */
1034 FILE *fp = fopen(fname, "wxe"); 1154 // don't fail if file already exists. This can be the case in a race
1155 // condition, when two jails launch at the same time. Compare to #1013
1156 FILE *fp = fopen(fname, "we");
1035 if (!fp) 1157 if (!fp)
1036 errExit("fopen"); 1158 errExit("fopen");
1037 SET_PERMS_STREAM(fp, 0, 0, mode); 1159 SET_PERMS_STREAM(fp, 0, 0, mode);
@@ -1106,20 +1228,35 @@ unsigned extract_timeout(const char *str) {
1106} 1228}
1107 1229
1108void disable_file_or_dir(const char *fname) { 1230void disable_file_or_dir(const char *fname) {
1231 assert(geteuid() == 0);
1232 assert(fname);
1233
1234 EUID_USER();
1235 int fd = open(fname, O_PATH|O_CLOEXEC);
1236 EUID_ROOT();
1237 if (fd < 0)
1238 return;
1239
1109 struct stat s; 1240 struct stat s;
1110 if (stat(fname, &s) != -1) { 1241 if (fstat(fd, &s) < 0) { // FUSE
1111 if (arg_debug) 1242 if (errno != EACCES)
1112 printf("blacklist %s\n", fname); 1243 errExit("fstat");
1113 if (is_dir(fname)) { 1244 close(fd);
1114 if (mount(RUN_RO_DIR, fname, "none", MS_BIND, "mode=400,gid=0") < 0) 1245 return;
1115 errExit("disable directory"); 1246 }
1116 } 1247
1117 else { 1248 if (arg_debug)
1118 if (mount(RUN_RO_FILE, fname, "none", MS_BIND, "mode=400,gid=0") < 0) 1249 printf("blacklist %s\n", fname);
1119 errExit("disable file"); 1250 if (S_ISDIR(s.st_mode)) {
1120 } 1251 if (bind_mount_path_to_fd(RUN_RO_DIR, fd) < 0)
1121 fs_logger2("blacklist", fname); 1252 errExit("disable directory");
1122 } 1253 }
1254 else {
1255 if (bind_mount_path_to_fd(RUN_RO_FILE, fd) < 0)
1256 errExit("disable file");
1257 }
1258 close(fd);
1259 fs_logger2("blacklist", fname);
1123} 1260}
1124 1261
1125void disable_file_path(const char *path, const char *file) { 1262void disable_file_path(const char *path, const char *file) {
@@ -1206,6 +1343,60 @@ int safer_openat(int dirfd, const char *path, int flags) {
1206 return fd; 1343 return fd;
1207} 1344}
1208 1345
1346int remount_by_fd(int dst, unsigned long mountflags) {
1347 char *proc;
1348 if (asprintf(&proc, "/proc/self/fd/%d", dst) < 0)
1349 errExit("asprintf");
1350
1351 int rv = mount(NULL, proc, NULL, mountflags|MS_BIND|MS_REMOUNT, NULL);
1352 if (rv < 0 && arg_debug)
1353 printf("Failed mount: %s\n", strerror(errno));
1354
1355 free(proc);
1356 return rv;
1357}
1358
1359int bind_mount_by_fd(int src, int dst) {
1360 char *proc_src, *proc_dst;
1361 if (asprintf(&proc_src, "/proc/self/fd/%d", src) < 0 ||
1362 asprintf(&proc_dst, "/proc/self/fd/%d", dst) < 0)
1363 errExit("asprintf");
1364
1365 int rv = mount(proc_src, proc_dst, NULL, MS_BIND|MS_REC, NULL);
1366 if (rv < 0 && arg_debug)
1367 printf("Failed mount: %s\n", strerror(errno));
1368
1369 free(proc_src);
1370 free(proc_dst);
1371 return rv;
1372}
1373
1374int bind_mount_fd_to_path(int src, const char *destname) {
1375 char *proc;
1376 if (asprintf(&proc, "/proc/self/fd/%d", src) < 0)
1377 errExit("asprintf");
1378
1379 int rv = mount(proc, destname, NULL, MS_BIND|MS_REC, NULL);
1380 if (rv < 0 && arg_debug)
1381 printf("Failed mount: %s\n", strerror(errno));
1382
1383 free(proc);
1384 return rv;
1385}
1386
1387int bind_mount_path_to_fd(const char *srcname, int dst) {
1388 char *proc;
1389 if (asprintf(&proc, "/proc/self/fd/%d", dst) < 0)
1390 errExit("asprintf");
1391
1392 int rv = mount(srcname, proc, NULL, MS_BIND|MS_REC, NULL);
1393 if (rv < 0 && arg_debug)
1394 printf("Failed mount: %s\n", strerror(errno));
1395
1396 free(proc);
1397 return rv;
1398}
1399
1209int has_handler(pid_t pid, int signal) { 1400int has_handler(pid_t pid, int signal) {
1210 if (signal > 0 && signal <= SIGRTMAX) { 1401 if (signal > 0 && signal <= SIGRTMAX) {
1211 char *fname; 1402 char *fname;
@@ -1315,14 +1506,14 @@ static int has_link(const char *dir) {
1315 return 0; 1506 return 0;
1316} 1507}
1317 1508
1318void check_homedir(void) { 1509void check_homedir(const char *dir) {
1319 assert(cfg.homedir); 1510 assert(dir);
1320 if (cfg.homedir[0] != '/') { 1511 if (dir[0] != '/') {
1321 fprintf(stderr, "Error: invalid user directory \"%s\"\n", cfg.homedir); 1512 fprintf(stderr, "Error: invalid user directory \"%s\"\n", cfg.homedir);
1322 exit(1); 1513 exit(1);
1323 } 1514 }
1324 // symlinks are rejected in many places 1515 // symlinks are rejected in many places
1325 if (has_link(cfg.homedir)) { 1516 if (has_link(dir)) {
1326 fprintf(stderr, "No full support for symbolic links in path of user directory.\n" 1517 fprintf(stderr, "No full support for symbolic links in path of user directory.\n"
1327 "Please provide resolved path in password database (/etc/passwd).\n\n"); 1518 "Please provide resolved path in password database (/etc/passwd).\n\n");
1328 } 1519 }
diff --git a/src/firejail/x11.c b/src/firejail/x11.c
index 257d376a1..896aa2fd3 100644
--- a/src/firejail/x11.c
+++ b/src/firejail/x11.c
@@ -204,7 +204,6 @@ static int random_display_number(void) {
204void x11_start_xvfb(int argc, char **argv) { 204void x11_start_xvfb(int argc, char **argv) {
205 EUID_ASSERT(); 205 EUID_ASSERT();
206 int i; 206 int i;
207 struct stat s;
208 pid_t jail = 0; 207 pid_t jail = 0;
209 pid_t server = 0; 208 pid_t server = 0;
210 209
@@ -348,7 +347,7 @@ void x11_start_xvfb(int argc, char **argv) {
348 // wait for x11 server to start 347 // wait for x11 server to start
349 while (++n < 10) { 348 while (++n < 10) {
350 sleep(1); 349 sleep(1);
351 if (stat(fname, &s) == 0) 350 if (access(fname, F_OK) == 0)
352 break; 351 break;
353 }; 352 };
354 353
@@ -427,7 +426,6 @@ static char *extract_setting(int argc, char **argv, const char *argument) {
427void x11_start_xephyr(int argc, char **argv) { 426void x11_start_xephyr(int argc, char **argv) {
428 EUID_ASSERT(); 427 EUID_ASSERT();
429 int i; 428 int i;
430 struct stat s;
431 pid_t jail = 0; 429 pid_t jail = 0;
432 pid_t server = 0; 430 pid_t server = 0;
433 431
@@ -586,7 +584,7 @@ void x11_start_xephyr(int argc, char **argv) {
586 // wait for x11 server to start 584 // wait for x11 server to start
587 while (++n < 10) { 585 while (++n < 10) {
588 sleep(1); 586 sleep(1);
589 if (stat(fname, &s) == 0) 587 if (access(fname, F_OK) == 0)
590 break; 588 break;
591 }; 589 };
592 590
@@ -701,7 +699,6 @@ static char * get_title_arg_str() {
701static void __attribute__((noreturn)) x11_start_xpra_old(int argc, char **argv, int display, char *display_str) { 699static void __attribute__((noreturn)) x11_start_xpra_old(int argc, char **argv, int display, char *display_str) {
702 EUID_ASSERT(); 700 EUID_ASSERT();
703 int i; 701 int i;
704 struct stat s;
705 pid_t client = 0; 702 pid_t client = 0;
706 pid_t server = 0; 703 pid_t server = 0;
707 704
@@ -818,7 +815,7 @@ static void __attribute__((noreturn)) x11_start_xpra_old(int argc, char **argv,
818 // wait for x11 server to start 815 // wait for x11 server to start
819 while (++n < 10) { 816 while (++n < 10) {
820 sleep(1); 817 sleep(1);
821 if (stat(fname, &s) == 0) 818 if (access(fname, F_OK) == 0)
822 break; 819 break;
823 } 820 }
824 821
@@ -1207,14 +1204,13 @@ void x11_xorg(void) {
1207 fmessage("Generating a new .Xauthority file\n"); 1204 fmessage("Generating a new .Xauthority file\n");
1208 mkdir_attr(RUN_XAUTHORITY_SEC_DIR, 0700, getuid(), getgid()); 1205 mkdir_attr(RUN_XAUTHORITY_SEC_DIR, 0700, getuid(), getgid());
1209 // create new Xauthority file in RUN_XAUTHORITY_SEC_DIR 1206 // create new Xauthority file in RUN_XAUTHORITY_SEC_DIR
1207 EUID_USER();
1210 char tmpfname[] = RUN_XAUTHORITY_SEC_DIR "/.Xauth-XXXXXX"; 1208 char tmpfname[] = RUN_XAUTHORITY_SEC_DIR "/.Xauth-XXXXXX";
1211 int fd = mkstemp(tmpfname); 1209 int fd = mkstemp(tmpfname);
1212 if (fd == -1) { 1210 if (fd == -1) {
1213 fprintf(stderr, "Error: cannot create .Xauthority file\n"); 1211 fprintf(stderr, "Error: cannot create .Xauthority file\n");
1214 exit(1); 1212 exit(1);
1215 } 1213 }
1216 if (fchown(fd, getuid(), getgid()) == -1)
1217 errExit("chown");
1218 close(fd); 1214 close(fd);
1219 1215
1220 // run xauth 1216 // run xauth
@@ -1224,16 +1220,14 @@ void x11_xorg(void) {
1224 else 1220 else
1225 sbox_run(SBOX_USER | SBOX_CAPS_NONE | SBOX_SECCOMP, 7, RUN_XAUTH_FILE, "-f", tmpfname, 1221 sbox_run(SBOX_USER | SBOX_CAPS_NONE | SBOX_SECCOMP, 7, RUN_XAUTH_FILE, "-f", tmpfname,
1226 "generate", display, "MIT-MAGIC-COOKIE-1", "untrusted"); 1222 "generate", display, "MIT-MAGIC-COOKIE-1", "untrusted");
1227 // remove xauth copy
1228 unlink(RUN_XAUTH_FILE);
1229 1223
1230 // ensure there is already a file ~/.Xauthority, so that bind-mount below will work. 1224 // ensure there is already a file ~/.Xauthority, so that bind-mount below will work.
1231 char *dest; 1225 char *dest;
1232 if (asprintf(&dest, "%s/.Xauthority", cfg.homedir) == -1) 1226 if (asprintf(&dest, "%s/.Xauthority", cfg.homedir) == -1)
1233 errExit("asprintf"); 1227 errExit("asprintf");
1234 if (lstat(dest, &s) == -1) { 1228 if (access(dest, F_OK) == -1) {
1235 touch_file_as_user(dest, 0600); 1229 touch_file_as_user(dest, 0600);
1236 if (stat(dest, &s) == -1) { 1230 if (access(dest, F_OK) == -1) {
1237 fprintf(stderr, "Error: cannot create %s\n", dest); 1231 fprintf(stderr, "Error: cannot create %s\n", dest);
1238 exit(1); 1232 exit(1);
1239 } 1233 }
@@ -1276,21 +1270,16 @@ void x11_xorg(void) {
1276 // mount via the link in /proc/self/fd 1270 // mount via the link in /proc/self/fd
1277 if (arg_debug) 1271 if (arg_debug)
1278 printf("Mounting %s on %s\n", tmpfname, dest); 1272 printf("Mounting %s on %s\n", tmpfname, dest);
1279 char *proc_src, *proc_dst; 1273 EUID_ROOT();
1280 if (asprintf(&proc_src, "/proc/self/fd/%d", src) == -1) 1274 if (bind_mount_by_fd(src, dst)) {
1281 errExit("asprintf");
1282 if (asprintf(&proc_dst, "/proc/self/fd/%d", dst) == -1)
1283 errExit("asprintf");
1284 if (mount(proc_src, proc_dst, NULL, MS_BIND, NULL) == -1) {
1285 fprintf(stderr, "Error: cannot mount the new .Xauthority file\n"); 1275 fprintf(stderr, "Error: cannot mount the new .Xauthority file\n");
1286 exit(1); 1276 exit(1);
1287 } 1277 }
1278 EUID_USER();
1288 // check /proc/self/mountinfo to confirm the mount is ok 1279 // check /proc/self/mountinfo to confirm the mount is ok
1289 MountData *mptr = get_last_mount(); 1280 MountData *mptr = get_last_mount();
1290 if (strcmp(mptr->dir, dest) != 0 || strcmp(mptr->fstype, "tmpfs") != 0) 1281 if (strcmp(mptr->dir, dest) != 0 || strcmp(mptr->fstype, "tmpfs") != 0)
1291 errLogExit("invalid .Xauthority mount"); 1282 errLogExit("invalid .Xauthority mount");
1292 free(proc_src);
1293 free(proc_dst);
1294 close(src); 1283 close(src);
1295 close(dst); 1284 close(dst);
1296 1285
@@ -1301,8 +1290,11 @@ void x11_xorg(void) {
1301 if (envar) { 1290 if (envar) {
1302 char *rp = realpath(envar, NULL); 1291 char *rp = realpath(envar, NULL);
1303 if (rp) { 1292 if (rp) {
1304 if (strcmp(rp, dest) != 0) 1293 if (strcmp(rp, dest) != 0) {
1294 EUID_ROOT();
1305 disable_file_or_dir(rp); 1295 disable_file_or_dir(rp);
1296 EUID_USER();
1297 }
1306 free(rp); 1298 free(rp);
1307 } 1299 }
1308 } 1300 }
@@ -1311,9 +1303,13 @@ void x11_xorg(void) {
1311 free(dest); 1303 free(dest);
1312 1304
1313 // mask RUN_XAUTHORITY_SEC_DIR 1305 // mask RUN_XAUTHORITY_SEC_DIR
1306 EUID_ROOT();
1314 if (mount("tmpfs", RUN_XAUTHORITY_SEC_DIR, "tmpfs", MS_NOSUID | MS_NODEV | MS_STRICTATIME, "mode=755,gid=0") < 0) 1307 if (mount("tmpfs", RUN_XAUTHORITY_SEC_DIR, "tmpfs", MS_NOSUID | MS_NODEV | MS_STRICTATIME, "mode=755,gid=0") < 0)
1315 errExit("mounting tmpfs"); 1308 errExit("mounting tmpfs");
1316 fs_logger2("tmpfs", RUN_XAUTHORITY_SEC_DIR); 1309 fs_logger2("tmpfs", RUN_XAUTHORITY_SEC_DIR);
1310
1311 // cleanup
1312 unlink(RUN_XAUTH_FILE);
1317#endif 1313#endif
1318} 1314}
1319 1315
@@ -1327,7 +1323,7 @@ void fs_x11(void) {
1327 struct stat s1, s2; 1323 struct stat s1, s2;
1328 if (stat("/tmp", &s1) != 0 || lstat("/tmp/.X11-unix", &s2) != 0) 1324 if (stat("/tmp", &s1) != 0 || lstat("/tmp/.X11-unix", &s2) != 0)
1329 return; 1325 return;
1330 if ((s1.st_mode & S_ISVTX) == 0) { 1326 if ((s1.st_mode & S_ISVTX) != S_ISVTX) {
1331 fwarning("cannot mask X11 sockets: sticky bit not set on /tmp directory\n"); 1327 fwarning("cannot mask X11 sockets: sticky bit not set on /tmp directory\n");
1332 return; 1328 return;
1333 } 1329 }
@@ -1335,68 +1331,46 @@ void fs_x11(void) {
1335 fwarning("cannot mask X11 sockets: /tmp/.X11-unix not owned by root user\n"); 1331 fwarning("cannot mask X11 sockets: /tmp/.X11-unix not owned by root user\n");
1336 return; 1332 return;
1337 } 1333 }
1334
1335 // the mount source is under control of the user, so be careful and
1336 // mount without following symbolic links, using a file descriptor
1338 char *x11file; 1337 char *x11file;
1339 if (asprintf(&x11file, "/tmp/.X11-unix/X%d", display) == -1) 1338 if (asprintf(&x11file, "/tmp/.X11-unix/X%d", display) == -1)
1340 errExit("asprintf"); 1339 errExit("asprintf");
1341 struct stat x11stat; 1340 int src = open(x11file, O_PATH|O_NOFOLLOW|O_CLOEXEC);
1342 if (lstat(x11file, &x11stat) != 0 || !S_ISSOCK(x11stat.st_mode)) { 1341 if (src < 0) {
1342 free(x11file);
1343 return;
1344 }
1345 struct stat s3;
1346 if (fstat(src, &s3) < 0)
1347 errExit("fstat");
1348 if (!S_ISSOCK(s3.st_mode)) {
1349 close(src);
1343 free(x11file); 1350 free(x11file);
1344 return; 1351 return;
1345 } 1352 }
1346 1353
1347 if (arg_debug || arg_debug_whitelists) 1354 if (arg_debug || arg_debug_whitelists)
1348 fprintf(stderr, "Masking all X11 sockets except %s\n", x11file); 1355 fprintf(stderr, "Masking all X11 sockets except %s\n", x11file);
1349
1350 // Move the real /tmp/.X11-unix to a scratch location
1351 // so we can still access x11file after we mount a
1352 // tmpfs over /tmp/.X11-unix.
1353 if (mkdir(RUN_WHITELIST_X11_DIR, 0700) == -1)
1354 errExit("mkdir");
1355 if (mount("/tmp/.X11-unix", RUN_WHITELIST_X11_DIR, 0, MS_BIND|MS_REC, 0) < 0)
1356 errExit("mount bind");
1357
1358 // This directory must be mode 1777 1356 // This directory must be mode 1777
1359 if (mount("tmpfs", "/tmp/.X11-unix", "tmpfs", 1357 if (mount("tmpfs", "/tmp/.X11-unix", "tmpfs",
1360 MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_STRICTATIME, 1358 MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_STRICTATIME,
1361 "mode=1777,uid=0,gid=0") < 0) 1359 "mode=1777,uid=0,gid=0") < 0)
1362 errExit("mounting tmpfs on /tmp/.X11-unix"); 1360 errExit("mounting tmpfs on /tmp/.X11-unix");
1361 selinux_relabel_path("/tmp/.X11-unix", "/tmp/.X11-unix");
1363 fs_logger("tmpfs /tmp/.X11-unix"); 1362 fs_logger("tmpfs /tmp/.X11-unix");
1364 1363
1365 // create an empty root-owned file which will have the desired socket bind-mounted over it 1364 // create an empty root-owned file which will have the desired socket bind-mounted over it
1366 int fd = open(x11file, O_RDONLY|O_CREAT|O_EXCL|O_CLOEXEC, S_IRUSR | S_IWUSR); 1365 int dst = open(x11file, O_RDONLY|O_CREAT|O_EXCL|O_CLOEXEC, S_IRUSR | S_IWUSR);
1367 if (fd < 0) 1366 if (dst < 0)
1368 errExit(x11file); 1367 errExit("open");
1369 close(fd);
1370 1368
1371 // the mount source is under control of the user, so be careful and 1369 if (bind_mount_by_fd(src, dst))
1372 // mount without following symbolic links, using a file descriptor
1373 char *wx11file;
1374 if (asprintf(&wx11file, "%s/X%d", RUN_WHITELIST_X11_DIR, display) == -1)
1375 errExit("asprintf");
1376 fd = safer_openat(-1, wx11file, O_PATH|O_NOFOLLOW|O_CLOEXEC);
1377 if (fd == -1)
1378 errExit("opening X11 socket");
1379 // confirm once more we are mounting a socket
1380 if (fstat(fd, &x11stat) == -1)
1381 errExit("fstat");
1382 if (!S_ISSOCK(x11stat.st_mode)) {
1383 errno = ENOTSOCK;
1384 errExit("mounting X11 socket");
1385 }
1386 char *proc;
1387 if (asprintf(&proc, "/proc/self/fd/%d", fd) == -1)
1388 errExit("asprintf");
1389 if (mount(proc, x11file, NULL, MS_BIND|MS_REC, NULL) < 0)
1390 errExit("mount bind"); 1370 errExit("mount bind");
1371 close(src);
1372 close(dst);
1391 fs_logger2("whitelist", x11file); 1373 fs_logger2("whitelist", x11file);
1392 close(fd);
1393 free(proc);
1394
1395 // block access to RUN_WHITELIST_X11_DIR
1396 if (mount(RUN_RO_DIR, RUN_WHITELIST_X11_DIR, 0, MS_BIND, 0) < 0)
1397 errExit("mount");
1398 fs_logger2("blacklist", RUN_WHITELIST_X11_DIR);
1399 free(wx11file);
1400 free(x11file); 1374 free(x11file);
1401#endif 1375#endif
1402} 1376}
diff --git a/src/firemon/interface.c b/src/firemon/interface.c
index e04b6f431..780e3d706 100644
--- a/src/firemon/interface.c
+++ b/src/firemon/interface.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firemon.h" 20#include "firemon.h"
21#include "../include/gcov_wrapper.h"
21#include <sys/types.h> 22#include <sys/types.h>
22#include <sys/wait.h> 23#include <sys/wait.h>
23#include <netdb.h> 24#include <netdb.h>
@@ -145,9 +146,9 @@ static void print_sandbox(pid_t pid) {
145 if (rv) 146 if (rv)
146 return; 147 return;
147 net_ifprint(); 148 net_ifprint();
148#ifdef HAVE_GCOV 149
149 __gcov_flush(); 150 __gcov_flush();
150#endif 151
151 _exit(0); 152 _exit(0);
152 } 153 }
153 154
diff --git a/src/firemon/netstats.c b/src/firemon/netstats.c
index 850959eb3..9d8e5d7f5 100644
--- a/src/firemon/netstats.c
+++ b/src/firemon/netstats.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firemon.h" 20#include "firemon.h"
21#include "../include/gcov_wrapper.h"
21#include <termios.h> 22#include <termios.h>
22#include <sys/ioctl.h> 23#include <sys/ioctl.h>
23#include <sys/types.h> 24#include <sys/types.h>
@@ -242,8 +243,7 @@ void netstats(void) {
242 print_proc(i, itv, col); 243 print_proc(i, itv, col);
243 } 244 }
244 } 245 }
245#ifdef HAVE_GCOV 246
246 __gcov_flush(); 247 __gcov_flush();
247#endif
248 } 248 }
249} 249}
diff --git a/src/firemon/procevent.c b/src/firemon/procevent.c
index 8085d2d29..716a9cba4 100644
--- a/src/firemon/procevent.c
+++ b/src/firemon/procevent.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firemon.h" 20#include "firemon.h"
21#include "../include/gcov_wrapper.h"
21#include <sys/socket.h> 22#include <sys/socket.h>
22#include <linux/connector.h> 23#include <linux/connector.h>
23#include <linux/netlink.h> 24#include <linux/netlink.h>
@@ -230,9 +231,7 @@ static void __attribute__((noreturn)) procevent_monitor(const int sock, pid_t my
230 tv.tv_usec = 0; 231 tv.tv_usec = 0;
231 232
232 while (1) { 233 while (1) {
233#ifdef HAVE_GCOV
234 __gcov_flush(); 234 __gcov_flush();
235#endif
236 235
237#define BUFFSIZE 4096 236#define BUFFSIZE 4096
238 char __attribute__ ((aligned(NLMSG_ALIGNTO)))buf[BUFFSIZE]; 237 char __attribute__ ((aligned(NLMSG_ALIGNTO)))buf[BUFFSIZE];
diff --git a/src/firemon/top.c b/src/firemon/top.c
index a25e3c0d8..2217cc7de 100644
--- a/src/firemon/top.c
+++ b/src/firemon/top.c
@@ -18,6 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#include "firemon.h" 20#include "firemon.h"
21#include "../include/gcov_wrapper.h"
21#include <termios.h> 22#include <termios.h>
22#include <sys/ioctl.h> 23#include <sys/ioctl.h>
23#include <sys/types.h> 24#include <sys/types.h>
@@ -326,8 +327,7 @@ void top(void) {
326 } 327 }
327 } 328 }
328 head_print(col, row); 329 head_print(col, row);
329#ifdef HAVE_GCOV 330
330 __gcov_flush(); 331 __gcov_flush();
331#endif
332 } 332 }
333} 333}
diff --git a/src/include/gcov_wrapper.h b/src/include/gcov_wrapper.h
new file mode 100644
index 000000000..4aafb8e18
--- /dev/null
+++ b/src/include/gcov_wrapper.h
@@ -0,0 +1,46 @@
1/*
2 * Copyright (C) 2021 Firejail Authors
3 *
4 * This file is part of firejail project
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20
21#ifndef GCOV_WRAPPER_H
22#define GCOV_WRAPPER_H
23
24#ifdef HAS_GCOV
25#include <gcov.h>
26
27/*
28 * __gcov_flush was removed on gcc 11.1.0 (as it's no longer needed), but it
29 * appears to be the safe/"correct" way to do things on previous versions (as
30 * it ensured proper locking, which is now done elsewhere). Thus, keep using
31 * it in the code and ensure that it exists, in order to support gcc <11.1.0
32 * and gcc >=11.1.0, respectively.
33 */
34#if __GNUC__ > 11 || (__GNUC__ == 11 && __GNUC_MINOR__ >= 1)
35static void __gcov_flush(void) {
36 __gcov_dump();
37 __gcov_reset();
38}
39#endif
40#else
41#define __gcov_dump() ((void)0)
42#define __gcov_reset() ((void)0)
43#define __gcov_flush() ((void)0)
44#endif /* HAS_GCOV */
45
46#endif /* GCOV_WRAPPER_H */
diff --git a/src/include/rundefs.h b/src/include/rundefs.h
index a172dd511..3db750da3 100644
--- a/src/include/rundefs.h
+++ b/src/include/rundefs.h
@@ -79,12 +79,8 @@
79#define PATH_SECCOMP_MDWX_32 LIBDIR "/firejail/seccomp.mdwx.32" 79#define PATH_SECCOMP_MDWX_32 LIBDIR "/firejail/seccomp.mdwx.32"
80#define PATH_SECCOMP_BLOCK_SECONDARY LIBDIR "/firejail/seccomp.block_secondary" // secondary arch blocking filter built during make 80#define PATH_SECCOMP_BLOCK_SECONDARY LIBDIR "/firejail/seccomp.block_secondary" // secondary arch blocking filter built during make
81 81
82
83#define RUN_DEV_DIR RUN_MNT_DIR "/dev" 82#define RUN_DEV_DIR RUN_MNT_DIR "/dev"
84#define RUN_DEVLOG_FILE RUN_MNT_DIR "/devlog" 83#define RUN_DEVLOG_FILE RUN_MNT_DIR "/devlog"
85
86#define RUN_WHITELIST_X11_DIR RUN_MNT_DIR "/orig-x11"
87
88#define RUN_XAUTHORITY_FILE RUN_MNT_DIR "/.Xauthority" // private options 84#define RUN_XAUTHORITY_FILE RUN_MNT_DIR "/.Xauthority" // private options
89#define RUN_XAUTH_FILE RUN_MNT_DIR "/xauth" // x11=xorg 85#define RUN_XAUTH_FILE RUN_MNT_DIR "/xauth" // x11=xorg
90#define RUN_XAUTHORITY_SEC_DIR RUN_MNT_DIR "/.sec.Xauthority" // x11=xorg 86#define RUN_XAUTHORITY_SEC_DIR RUN_MNT_DIR "/.sec.Xauthority" // x11=xorg
diff --git a/src/jailcheck/access.c b/src/jailcheck/access.c
index c18d64a82..3c2f46495 100644
--- a/src/jailcheck/access.c
+++ b/src/jailcheck/access.c
@@ -36,7 +36,7 @@ void access_setup(const char *directory) {
36 assert(user_home_dir); 36 assert(user_home_dir);
37 37
38 if (files_cnt >= MAX_TEST_FILES) { 38 if (files_cnt >= MAX_TEST_FILES) {
39 fprintf(stderr, "Error: maximum number of test directories exceded\n"); 39 fprintf(stderr, "Error: maximum number of test directories exceeded\n");
40 exit(1); 40 exit(1);
41 } 41 }
42 42
diff --git a/src/jailcheck/jailcheck.h b/src/jailcheck/jailcheck.h
index 32be1c978..be3104da3 100644
--- a/src/jailcheck/jailcheck.h
+++ b/src/jailcheck/jailcheck.h
@@ -53,6 +53,8 @@ void apparmor_test(pid_t pid);
53// seccomp.c 53// seccomp.c
54void seccomp_test(pid_t pid); 54void seccomp_test(pid_t pid);
55 55
56// network.c
57void network_test(void);
56// utils.c 58// utils.c
57char *get_sudo_user(void); 59char *get_sudo_user(void);
58char *get_homedir(const char *user, uid_t *uid, gid_t *gid); 60char *get_homedir(const char *user, uid_t *uid, gid_t *gid);
diff --git a/src/jailcheck/main.c b/src/jailcheck/main.c
index 4d642bf96..812ac5808 100644
--- a/src/jailcheck/main.c
+++ b/src/jailcheck/main.c
@@ -157,6 +157,7 @@ int main(int argc, char **argv) {
157 seccomp_test(pid); 157 seccomp_test(pid);
158 fflush(0); 158 fflush(0);
159 159
160 // filesystem tests
160 pid_t child = fork(); 161 pid_t child = fork();
161 if (child == -1) 162 if (child == -1)
162 errExit("fork"); 163 errExit("fork");
@@ -185,6 +186,28 @@ int main(int argc, char **argv) {
185 } 186 }
186 int status; 187 int status;
187 wait(&status); 188 wait(&status);
189
190 // network test
191 child = fork();
192 if (child == -1)
193 errExit("fork");
194 if (child == 0) {
195 int rv = join_namespace(pid, "net");
196 if (rv == 0)
197 network_test();
198 else {
199 printf(" Error: I cannot join the process network stack\n");
200 exit(1);
201 }
202
203 // drop privileges in order not to trigger cleanup()
204 if (setgid(user_gid) != 0)
205 errExit("setgid");
206 if (setuid(user_uid) != 0)
207 errExit("setuid");
208 return 0;
209 }
210 wait(&status);
188 } 211 }
189 } 212 }
190 213
diff --git a/src/jailcheck/network.c b/src/jailcheck/network.c
new file mode 100644
index 000000000..636344e77
--- /dev/null
+++ b/src/jailcheck/network.c
@@ -0,0 +1,56 @@
1/*
2 * Copyright (C) 2014-2021 Firejail Authors
3 *
4 * This file is part of firejail project
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20#include "jailcheck.h"
21#include <netdb.h>
22#include <arpa/inet.h>
23#include <ifaddrs.h>
24#include <net/if.h>
25#include <linux/connector.h>
26#include <linux/netlink.h>
27#include <linux/if_link.h>
28#include <linux/sockios.h>
29#include <sys/ioctl.h>
30
31
32void network_test(void) {
33 // I am root running in a network namespace
34 struct ifaddrs *ifaddr, *ifa;
35 int found = 0;
36
37 // walk through the linked list
38 if (getifaddrs(&ifaddr) == -1)
39 errExit("getifaddrs");
40 for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
41 if (strcmp(ifa->ifa_name, "lo") == 0)
42 continue;
43 found = 1;
44 break;
45 }
46
47 freeifaddrs(ifaddr);
48
49 if (found)
50 printf(" Networking: enabled\n");
51 else
52 printf(" Networking: disabled\n");
53}
54
55
56
diff --git a/src/jailcheck/sysfiles.c b/src/jailcheck/sysfiles.c
index caeb580af..9a0d6350e 100644
--- a/src/jailcheck/sysfiles.c
+++ b/src/jailcheck/sysfiles.c
@@ -34,7 +34,7 @@ void sysfiles_setup(const char *file) {
34 assert(file); 34 assert(file);
35 35
36 if (files_cnt >= MAX_TEST_FILES) { 36 if (files_cnt >= MAX_TEST_FILES) {
37 fprintf(stderr, "Error: maximum number of system test files exceded\n"); 37 fprintf(stderr, "Error: maximum number of system test files exceeded\n");
38 exit(1); 38 exit(1);
39 } 39 }
40 40
diff --git a/src/lib/ldd_utils.c b/src/lib/ldd_utils.c
index cd60d74e4..c5dde85b0 100644
--- a/src/lib/ldd_utils.c
+++ b/src/lib/ldd_utils.c
@@ -50,7 +50,7 @@ int is_lib_64(const char *exe) {
50 unsigned char buf[EI_NIDENT]; 50 unsigned char buf[EI_NIDENT];
51 ssize_t len = 0; 51 ssize_t len = 0;
52 while (len < EI_NIDENT) { 52 while (len < EI_NIDENT) {
53 ssize_t sz = read(fd, buf, EI_NIDENT); 53 ssize_t sz = read(fd, buf + len, EI_NIDENT - len);
54 if (sz <= 0) 54 if (sz <= 0)
55 goto doexit; 55 goto doexit;
56 len += sz; 56 len += sz;
diff --git a/src/lib/syscall.c b/src/lib/syscall.c
index b3131ac17..d0d9ff5aa 100644
--- a/src/lib/syscall.c
+++ b/src/lib/syscall.c
@@ -253,9 +253,6 @@ static const SyscallGroupList sysgroups[] = {
253#ifdef SYS_fanotify_init 253#ifdef SYS_fanotify_init
254 "fanotify_init," 254 "fanotify_init,"
255#endif 255#endif
256#ifdef SYS_kcmp
257 "kcmp,"
258#endif
259#ifdef SYS_add_key 256#ifdef SYS_add_key
260 "add_key," 257 "add_key,"
261#endif 258#endif
diff --git a/src/man/firejail-profile.txt b/src/man/firejail-profile.txt
index 3d59705b9..34f5e8bf9 100644
--- a/src/man/firejail-profile.txt
+++ b/src/man/firejail-profile.txt
@@ -156,18 +156,23 @@ Scripting commands:
156\fBFile and directory names 156\fBFile and directory names
157File and directory names containing spaces are supported. The space character ' ' should not be escaped. 157File and directory names containing spaces are supported. The space character ' ' should not be escaped.
158 158
159Example: "blacklist ~/My Virtual Machines" 159Example: "deny ~/My Virtual Machines"
160 160
161.TP 161.TP
162\fB# this is a comment 162\fB# this is a comment
163Example:
164
165# disable networking
166.br
167net none # this command creates an empty network namespace
163 168
164.TP 169.TP
165\fB?CONDITIONAL: profile line 170\fB?CONDITIONAL: profile line
166Conditionally add profile line. 171Conditionally add profile line.
167 172
168Example: "?HAS_APPIMAGE: whitelist ${HOME}/special/appimage/dir" 173Example: "?HAS_APPIMAGE: allow ${HOME}/special/appimage/dir"
169 174
170This example will load the whitelist profile line only if the \-\-appimage option has been specified on the command line. 175This example will load the profile line only if the \-\-appimage option has been specified on the command line.
171 176
172Currently the only conditionals supported this way are HAS_APPIMAGE, HAS_NET, HAS_NODBUS, HAS_NOSOUND, HAS_PRIVATE and HAS_X11. The conditionals BROWSER_DISABLE_U2F and BROWSER_ALLOW_DRM 177Currently the only conditionals supported this way are HAS_APPIMAGE, HAS_NET, HAS_NODBUS, HAS_NOSOUND, HAS_PRIVATE and HAS_X11. The conditionals BROWSER_DISABLE_U2F and BROWSER_ALLOW_DRM
173can be enabled or disabled globally in Firejail's configuration file. 178can be enabled or disabled globally in Firejail's configuration file.
@@ -200,16 +205,16 @@ storing modifications to the persistent configuration. Persistent .local files
200are included at the start of regular profile files. 205are included at the start of regular profile files.
201 206
202.TP 207.TP
203\fBnoblacklist file_name 208\fBnoallow file_name
204If the file name matches file_name, the file will not be blacklisted in any blacklist commands that follow. 209If the file name matches file_name, the file will not be allowed in any allow commands that follow.
205 210
206Example: "noblacklist ${HOME}/.mozilla" 211Example: "nowhitelist ~/.config"
207 212
208.TP 213.TP
209\fBnowhitelist file_name 214\fBnodeny file_name
210If the file name matches file_name, the file will not be whitelisted in any whitelist commands that follow. 215If the file name matches file_name, the file will not be denied any deny commands that follow.
211 216
212Example: "nowhitelist ~/.config" 217Example: "nodeny ${HOME}/.mozilla"
213 218
214.TP 219.TP
215\fBignore 220\fBignore
@@ -237,19 +242,17 @@ HOME directories are searched, see the \fBfirejail\f(1) \fBFILE GLOBBING\fR sect
237for more details. 242for more details.
238Examples: 243Examples:
239.TP 244.TP
240\fBblacklist file_or_directory 245\fBallow file_or_directory
241Blacklist directory or file. Examples: 246Allow directory or file. A temporary file system is mounted on the top directory, and the
247allowed files are mount-binded inside. Modifications to allowd files are persistent,
248everything else is discarded when the sandbox is closed. The top directory can be
249all directories in / (except /proc and /sys), /sys/module, /run/user/$UID, $HOME and
250all directories in /usr.
242.br 251.br
243 252
244.br 253.br
245blacklist /usr/bin 254Symbolic link handling: with the exception of user home, both the link and the real file should be in
246.br 255the same top directory. For user home, both the link and the real file should be owned by the user.
247blacklist /usr/bin/gcc*
248.br
249blacklist ${PATH}/ifconfig
250.br
251blacklist ${HOME}/.ssh
252
253.TP 256.TP
254\fBblacklist-nolog file_or_directory 257\fBblacklist-nolog file_or_directory
255When --tracelog flag is set, blacklisting generates syslog messages if the sandbox tries to access the file or directory. 258When --tracelog flag is set, blacklisting generates syslog messages if the sandbox tries to access the file or directory.
@@ -268,6 +271,20 @@ Mount-bind directory1 on top of directory2. This option is only available when r
268\fBbind file1,file2 271\fBbind file1,file2
269Mount-bind file1 on top of file2. This option is only available when running as root. 272Mount-bind file1 on top of file2. This option is only available when running as root.
270.TP 273.TP
274\fBdeny file_or_directory
275Deny access to directory or file. Examples:
276.br
277
278.br
279deny /usr/bin
280.br
281deny /usr/bin/gcc*
282.br
283deny ${PATH}/ifconfig
284.br
285deny ${HOME}/.ssh
286
287.TP
271\fBdisable-mnt 288\fBdisable-mnt
272Disable /mnt, /media, /run/mount and /run/media access. 289Disable /mnt, /media, /run/mount and /run/media access.
273.TP 290.TP
@@ -287,7 +304,7 @@ The directory is created if it doesn't already exist.
287.br 304.br
288 305
289.br 306.br
290Use this command for whitelisted directories you need to preserve 307Use this command for allowed directories you need to preserve
291when the sandbox is closed. Without it, the application will create the directory, and the directory 308when the sandbox is closed. Without it, the application will create the directory, and the directory
292will be deleted when the sandbox is closed. Subdirectories are recursively created. Example from 309will be deleted when the sandbox is closed. Subdirectories are recursively created. Example from
293firefox profile: 310firefox profile:
@@ -300,7 +317,7 @@ whitelist ~/.mozilla
300.br 317.br
301mkdir ~/.cache/mozilla/firefox 318mkdir ~/.cache/mozilla/firefox
302.br 319.br
303whitelist ~/.cache/mozilla/firefox 320allow ~/.cache/mozilla/firefox
304.br 321.br
305 322
306.br 323.br
@@ -406,7 +423,7 @@ expressed as foo/bar -- is disallowed).
406All modifications are discarded when the sandbox is closed. 423All modifications are discarded when the sandbox is closed.
407.TP 424.TP
408\fBprivate-tmp 425\fBprivate-tmp
409Mount an empty temporary filesystem on top of /tmp directory whitelisting /tmp/.X11-unix. 426Mount an empty temporary filesystem on top of /tmp directory allowing /tmp/.X11-unix.
410.TP 427.TP
411\fBread-only file_or_directory 428\fBread-only file_or_directory
412Make directory or file read-only. 429Make directory or file read-only.
@@ -415,27 +432,16 @@ Make directory or file read-only.
415Make directory or file read-write. 432Make directory or file read-write.
416.TP 433.TP
417\fBtmpfs directory 434\fBtmpfs directory
418Mount an empty tmpfs filesystem on top of directory. This option is available only when running the sandbox as root. 435Mount an empty tmpfs filesystem on top of directory. Directories outside user home or not owned by the user are not allowed. Sandboxes running as root are exempt from these restrictions.
419.TP 436.TP
420\fBtracelog 437\fBtracelog
421Blacklist violations logged to syslog. 438File system deny violations logged to syslog.
422.TP
423\fBwhitelist file_or_directory
424Whitelist directory or file. A temporary file system is mounted on the top directory, and the
425whitelisted files are mount-binded inside. Modifications to whitelisted files are persistent,
426everything else is discarded when the sandbox is closed. The top directory could be
427user home, /dev, /etc, /media, /mnt, /opt, /srv, /sys/module, /usr/share, /var, and /tmp.
428.br
429
430.br
431Symbolic link handling: with the exception of user home, both the link and the real file should be in
432the same top directory. For user home, both the link and the real file should be owned by the user.
433.TP 439.TP
434\fBwritable-etc 440\fBwritable-etc
435Mount /etc directory read-write. 441Mount /etc directory read-write.
436.TP 442.TP
437\fBwritable-run-user 443\fBwritable-run-user
438Disable the default blacklisting of run/user/$UID/systemd and /run/user/$UID/gnupg. 444Disable the default denying of run/user/$UID/systemd and /run/user/$UID/gnupg.
439.TP 445.TP
440\fBwritable-var 446\fBwritable-var
441Mount /var directory read-write. 447Mount /var directory read-write.
@@ -449,7 +455,7 @@ The following security filters are currently implemented:
449 455
450.TP 456.TP
451\fBallow-debuggers 457\fBallow-debuggers
452Allow tools such as strace and gdb inside the sandbox by whitelisting system calls ptrace and process_vm_readv. 458Allow tools such as strace and gdb inside the sandbox by allowing system calls ptrace and process_vm_readv.
453#ifdef HAVE_APPARMOR 459#ifdef HAVE_APPARMOR
454.TP 460.TP
455\fBapparmor 461\fBapparmor
@@ -460,13 +466,13 @@ Enable AppArmor confinement.
460Enable default Linux capabilities filter. 466Enable default Linux capabilities filter.
461.TP 467.TP
462\fBcaps.drop capability,capability,capability 468\fBcaps.drop capability,capability,capability
463Blacklist given Linux capabilities. 469Deny given Linux capabilities.
464.TP 470.TP
465\fBcaps.drop all 471\fBcaps.drop all
466Blacklist all Linux capabilities. 472Deny all Linux capabilities.
467.TP 473.TP
468\fBcaps.keep capability,capability,capability 474\fBcaps.keep capability,capability,capability
469Whitelist given Linux capabilities. 475Allow given Linux capabilities.
470.TP 476.TP
471\fBmemory-deny-write-execute 477\fBmemory-deny-write-execute
472Install a seccomp filter to block attempts to create memory mappings 478Install a seccomp filter to block attempts to create memory mappings
@@ -491,32 +497,32 @@ first argument to socket system call. Recognized values: \fBunix\fR,
491\fBinet\fR, \fBinet6\fR, \fBnetlink\fR, \fBpacket\fR and \fBbluetooth\fR. 497\fBinet\fR, \fBinet6\fR, \fBnetlink\fR, \fBpacket\fR and \fBbluetooth\fR.
492.TP 498.TP
493\fBseccomp 499\fBseccomp
494Enable seccomp filter and blacklist the syscalls in the default list. See man 1 firejail for more details. 500Enable seccomp filter and deny the syscalls in the default list. See man 1 firejail for more details.
495.TP 501.TP
496\fBseccomp.32 502\fBseccomp.32
497Enable seccomp filter and blacklist the syscalls in the default list for 32 bit system calls on a 64 bit architecture system. 503Enable seccomp filter and deny the syscalls in the default list for 32 bit system calls on a 64 bit architecture system.
498.TP 504.TP
499\fBseccomp syscall,syscall,syscall 505\fBseccomp syscall,syscall,syscall
500Enable seccomp filter and blacklist the system calls in the list on top of default seccomp filter. 506Enable seccomp filter and deny the system calls in the list on top of default seccomp filter.
501.TP 507.TP
502\fBseccomp.32 syscall,syscall,syscall 508\fBseccomp.32 syscall,syscall,syscall
503Enable seccomp filter and blacklist the system calls in the list on top of default seccomp filter for 32 bit system calls on a 64 bit architecture system. 509Enable seccomp filter and deny the system calls in the list on top of default seccomp filter for 32 bit system calls on a 64 bit architecture system.
504.TP 510.TP
505\fBseccomp.block-secondary 511\fBseccomp.block-secondary
506Enable seccomp filter and filter system call architectures 512Enable seccomp filter and filter system call architectures
507so that only the native architecture is allowed. 513so that only the native architecture is allowed.
508.TP 514.TP
509\fBseccomp.drop syscall,syscall,syscall 515\fBseccomp.drop syscall,syscall,syscall
510Enable seccomp filter and blacklist the system calls in the list. 516Enable seccomp filter and deny the system calls in the list.
511.TP 517.TP
512\fBseccomp.32.drop syscall,syscall,syscall 518\fBseccomp.32.drop syscall,syscall,syscall
513Enable seccomp filter and blacklist the system calls in the list for 32 bit system calls on a 64 bit architecture system. 519Enable seccomp filter and deny the system calls in the list for 32 bit system calls on a 64 bit architecture system.
514.TP 520.TP
515\fBseccomp.keep syscall,syscall,syscall 521\fBseccomp.keep syscall,syscall,syscall
516Enable seccomp filter and whitelist the system calls in the list. 522Enable seccomp filter and allow the system calls in the list.
517.TP 523.TP
518\fBseccomp.32.keep syscall,syscall,syscall 524\fBseccomp.32.keep syscall,syscall,syscall
519Enable seccomp filter and whitelist the system calls in the list for 32 bit system calls on a 64 bit architecture system. 525Enable seccomp filter and allow the system calls in the list for 32 bit system calls on a 64 bit architecture system.
520.TP 526.TP
521\fBseccomp-error-action kill | log | ERRNO 527\fBseccomp-error-action kill | log | ERRNO
522Return a different error instead of EPERM to the process, kill it when 528Return a different error instead of EPERM to the process, kill it when
@@ -528,7 +534,7 @@ attempt.
528Enable X11 sandboxing. 534Enable X11 sandboxing.
529.TP 535.TP
530\fBx11 none 536\fBx11 none
531Blacklist /tmp/.X11-unix directory, ${HOME}/.Xauthority and file specified in ${XAUTHORITY} environment variable. 537Deny access to /tmp/.X11-unix directory, ${HOME}/.Xauthority and file specified in ${XAUTHORITY} environment variable.
532Remove DISPLAY and XAUTHORITY environment variables. 538Remove DISPLAY and XAUTHORITY environment variables.
533Stop with error message if X11 abstract socket will be accessible in jail. 539Stop with error message if X11 abstract socket will be accessible in jail.
534.TP 540.TP
@@ -731,6 +737,9 @@ Disable DVD and audio CD devices.
731\fBnogroups 737\fBnogroups
732Disable supplementary user groups 738Disable supplementary user groups
733.TP 739.TP
740\fBnoinput
741Disable input devices.
742.TP
734\fBnosound 743\fBnosound
735Disable sound system. 744Disable sound system.
736.TP 745.TP
@@ -743,9 +752,6 @@ Disable U2F devices.
743\fBnovideo 752\fBnovideo
744Disable video capture devices. 753Disable video capture devices.
745.TP 754.TP
746\fBnoinput
747Disable input devices.
748.TP
749\fBshell none 755\fBshell none
750Run the program directly, without a shell. 756Run the program directly, without a shell.
751 757
diff --git a/src/man/firejail.txt b/src/man/firejail.txt
index 690da4b4e..498ff9aa9 100644
--- a/src/man/firejail.txt
+++ b/src/man/firejail.txt
@@ -99,6 +99,40 @@ $ firejail [OPTIONS] firefox # starting Mozilla Firefox
99\fB\-\- 99\fB\-\-
100Signal the end of options and disables further option processing. 100Signal the end of options and disables further option processing.
101.TP 101.TP
102\fB\-\-allow=dirname_or_filename
103Allow access to a directory or file. A temporary file system is mounted on the top directory, and the
104allowed files are mount-binded inside. Modifications to allowed files are persistent,
105everything else is discarded when the sandbox is closed. The top directory can be
106all directories in / (except /proc and /sys), /sys/module, /run/user/$UID, $HOME and
107all directories in /usr.
108.br
109
110.br
111Symbolic link handling: with the exception of user home, both the link and the real file should be in
112the same top directory. For user home, both the link and the real file should be owned by the user.
113.br
114
115.br
116File globbing is supported, see \fBFILE GLOBBING\fR section for more details.
117.br
118
119.br
120Example:
121.br
122$ firejail \-\-noprofile \-\-allow=~/.mozilla
123.br
124$ firejail \-\-allow=/tmp/.X11-unix --allow=/dev/null
125.br
126$ firejail "\-\-allow=/home/username/My Virtual Machines"
127.br
128$ firejail \-\-allow=~/work* \-\-allow=/var/backups*
129
130
131
132
133
134
135.TP
102\fB\-\-allow-debuggers 136\fB\-\-allow-debuggers
103Allow tools such as strace and gdb inside the sandbox by whitelisting 137Allow tools such as strace and gdb inside the sandbox by whitelisting
104system calls ptrace and process_vm_readv. This option is only 138system calls ptrace and process_vm_readv. This option is only
@@ -147,12 +181,12 @@ private-bin and private-lib are disabled by default when running appimages.
147.br 181.br
148Example: 182Example:
149.br 183.br
150$ firejail --appimage krita-3.0-x86_64.appimage 184$ firejail --appimage --profile=krita krita-3.0-x86_64.appimage
151.br 185.br
152$ firejail --appimage --private krita-3.0-x86_64.appimage 186$ firejail --appimage --private --profile=krita krita-3.0-x86_64.appimage
153.br 187.br
154#ifdef HAVE_X11 188#ifdef HAVE_X11
155$ firejail --appimage --net=none --x11 krita-3.0-x86_64.appimage 189$ firejail --appimage --net=none --x11 --profile=krita krita-3.0-x86_64.appimage
156#endif 190#endif
157.TP 191.TP
158#ifdef HAVE_NETWORK 192#ifdef HAVE_NETWORK
@@ -169,21 +203,6 @@ Example:
169.br 203.br
170# firejail \-\-bind=/config/etc/passwd,/etc/passwd 204# firejail \-\-bind=/config/etc/passwd,/etc/passwd
171.TP 205.TP
172\fB\-\-blacklist=dirname_or_filename
173Blacklist directory or file. File globbing is supported, see \fBFILE GLOBBING\fR section for more details.
174.br
175
176.br
177Example:
178.br
179$ firejail \-\-blacklist=/sbin \-\-blacklist=/usr/sbin
180.br
181$ firejail \-\-blacklist=~/.mozilla
182.br
183$ firejail "\-\-blacklist=/home/username/My Virtual Machines"
184.br
185$ firejail \-\-blacklist=/home/username/My\\ Virtual\\ Machines
186.TP
187\fB\-\-build 206\fB\-\-build
188The command builds a whitelisted profile. The profile is printed on the screen. If /usr/bin/strace is installed on the system, it also 207The command builds a whitelisted profile. The profile is printed on the screen. If /usr/bin/strace is installed on the system, it also
189builds a whitelisted seccomp profile. The program is run in a very relaxed sandbox, 208builds a whitelisted seccomp profile. The program is run in a very relaxed sandbox,
@@ -243,7 +262,7 @@ $ firejail \-\-caps.drop=all warzone2100
243 262
244.TP 263.TP
245\fB\-\-caps.drop=capability,capability,capability 264\fB\-\-caps.drop=capability,capability,capability
246Define a custom blacklist Linux capabilities filter. 265Define a custom Linux capabilities filter.
247.br 266.br
248 267
249.br 268.br
@@ -624,14 +643,14 @@ Example:
624$ firejail \-\-debug firefox 643$ firejail \-\-debug firefox
625 644
626.TP 645.TP
627\fB\-\-debug-blacklists\fR 646\fB\-\-debug-allow\fR
628Debug blacklisting. 647Debug file system access.
629.br 648.br
630 649
631.br 650.br
632Example: 651Example:
633.br 652.br
634$ firejail \-\-debug-blacklists firefox 653$ firejail \-\-debug-allow firefox
635 654
636.TP 655.TP
637\fB\-\-debug-caps 656\fB\-\-debug-caps
@@ -644,6 +663,16 @@ Example:
644$ firejail \-\-debug-caps 663$ firejail \-\-debug-caps
645 664
646.TP 665.TP
666\fB\-\-debug-deny\fR
667Debug file access.
668.br
669
670.br
671Example:
672.br
673$ firejail \-\-debug-deny firefox
674
675.TP
647\fB\-\-debug-errnos 676\fB\-\-debug-errnos
648Print all recognized error numbers in the current Firejail software build and exit. 677Print all recognized error numbers in the current Firejail software build and exit.
649.br 678.br
@@ -677,15 +706,7 @@ $ firejail \-\-debug-syscalls
677\fB\-\-debug-syscalls32 706\fB\-\-debug-syscalls32
678Print all recognized 32 bit system calls in the current Firejail software build and exit. 707Print all recognized 32 bit system calls in the current Firejail software build and exit.
679.br 708.br
680.TP
681\fB\-\-debug-whitelists\fR
682Debug whitelisting.
683.br
684 709
685.br
686Example:
687.br
688$ firejail \-\-debug-whitelists firefox
689#ifdef HAVE_NETWORK 710#ifdef HAVE_NETWORK
690.TP 711.TP
691\fB\-\-defaultgw=address 712\fB\-\-defaultgw=address
@@ -697,13 +718,32 @@ Example:
697.br 718.br
698$ firejail \-\-net=eth0 \-\-defaultgw=10.10.20.1 firefox 719$ firejail \-\-net=eth0 \-\-defaultgw=10.10.20.1 firefox
699#endif 720#endif
721
722.TP
723\fB\-\-deny=dirname_or_filename
724Deny access to directory or file. File globbing is supported, see \fBFILE GLOBBING\fR section for more details.
725.br
726
727.br
728Example:
729.br
730$ firejail \-\-deny=/sbin \-\-deny=/usr/sbin
731.br
732$ firejail \-\-deny=~/.mozilla
733.br
734$ firejail "\-\-deny=/home/username/My Virtual Machines"
735.br
736$ firejail \-\-deny=/home/username/My\\ Virtual\\ Machines
737
738
739
700.TP 740.TP
701\fB\-\-deterministic-exit-code 741\fB\-\-deterministic-exit-code
702Always exit firejail with the first child's exit status. The default behavior is to use the exit status of the final child to exit, which can be nondeterministic. 742Always exit firejail with the first child's exit status. The default behavior is to use the exit status of the final child to exit, which can be nondeterministic.
703.br 743.br
704.TP 744.TP
705\fB\-\-disable-mnt 745\fB\-\-disable-mnt
706Blacklist /mnt, /media, /run/mount and /run/media access. 746Deny access to /mnt, /media, /run/mount and /run/media.
707.br 747.br
708 748
709.br 749.br
@@ -1471,12 +1511,16 @@ Example:
1471$ firejail --no3d firefox 1511$ firejail --no3d firefox
1472 1512
1473.TP 1513.TP
1514\fB\-\-noallow=dirname_or_filename
1515Disable \-\-allow for this directory or file.
1516
1517.TP
1474\fB\-\-noautopulse \fR(deprecated) 1518\fB\-\-noautopulse \fR(deprecated)
1475See --keep-config-pulse. 1519See --keep-config-pulse.
1476 1520
1477.TP 1521.TP
1478\fB\-\-noblacklist=dirname_or_filename 1522\fB\-\-nodeny=dirname_or_filename
1479Disable blacklist for this directory or file. 1523Disable \-\-deny for this directory or file.
1480.br 1524.br
1481 1525
1482.br 1526.br
@@ -1492,7 +1536,7 @@ $ exit
1492.br 1536.br
1493 1537
1494.br 1538.br
1495$ firejail --noblacklist=/bin/nc 1539$ firejail --nodeny=/bin/nc
1496.br 1540.br
1497$ nc dict.org 2628 1541$ nc dict.org 2628
1498.br 1542.br
@@ -1666,10 +1710,6 @@ $ firejail \-\-nou2f
1666Disable video devices. 1710Disable video devices.
1667.br 1711.br
1668 1712
1669.TP
1670\fB\-\-nowhitelist=dirname_or_filename
1671Disable whitelist for this directory or file.
1672
1673#ifdef HAVE_OUTPUT 1713#ifdef HAVE_OUTPUT
1674.TP 1714.TP
1675\fB\-\-output=logfile 1715\fB\-\-output=logfile
@@ -2129,6 +2169,7 @@ $ firejail --read-only=~/test --read-write=~/test/a
2129.TP 2169.TP
2130\fB\-\-rlimit-as=number 2170\fB\-\-rlimit-as=number
2131Set the maximum size of the process's virtual memory (address space) in bytes. 2171Set the maximum size of the process's virtual memory (address space) in bytes.
2172Use k(ilobyte), m(egabyte) or g(igabyte) for size suffix (base 1024).
2132 2173
2133.TP 2174.TP
2134\fB\-\-rlimit-cpu=number 2175\fB\-\-rlimit-cpu=number
@@ -2142,6 +2183,7 @@ track of CPU seconds for each process independently.
2142.TP 2183.TP
2143\fB\-\-rlimit-fsize=number 2184\fB\-\-rlimit-fsize=number
2144Set the maximum file size that can be created by a process. 2185Set the maximum file size that can be created by a process.
2186Use k(ilobyte), m(egabyte) or g(igabyte) for size suffix (base 1024).
2145.TP 2187.TP
2146\fB\-\-rlimit-nofile=number 2188\fB\-\-rlimit-nofile=number
2147Set the maximum number of files that can be opened by a process. 2189Set the maximum number of files that can be opened by a process.
@@ -2176,7 +2218,7 @@ $ firejail \-\-net=eth0 \-\-scan
2176.TP 2218.TP
2177\fB\-\-seccomp 2219\fB\-\-seccomp
2178Enable seccomp filter and blacklist the syscalls in the default list, 2220Enable seccomp filter and blacklist the syscalls in the default list,
2179which is @default-nodebuggers unless allow-debuggers is specified, 2221which is @default-nodebuggers unless \-\-allow-debuggers is specified,
2180then it is @default. 2222then it is @default.
2181 2223
2182.br 2224.br
@@ -2187,18 +2229,13 @@ system call groups are defined: @aio, @basic-io, @chown, @clock,
2187@network-io, @obsolete, @privileged, @process, @raw-io, @reboot, 2229@network-io, @obsolete, @privileged, @process, @raw-io, @reboot,
2188@resources, @setuid, @swap, @sync, @system-service and @timer. 2230@resources, @setuid, @swap, @sync, @system-service and @timer.
2189More information about groups can be found in /usr/share/doc/firejail/syscalls.txt 2231More information about groups can be found in /usr/share/doc/firejail/syscalls.txt
2190 2232.br
2191In addition, a system call can be specified by its number instead of
2192name with prefix $, so for example $165 would be equal to mount on i386.
2193Exceptions can be allowed with prefix !.
2194 2233
2195.br 2234.br
2196System architecture is strictly imposed only if flag 2235System architecture is strictly imposed only if flag
2197\-\-seccomp.block-secondary is used. The filter is applied at run time 2236\-\-seccomp.block-secondary is used. The filter is applied at run time
2198only if the correct architecture was detected. For the case of I386 2237only if the correct architecture was detected. For the case of I386
2199and AMD64 both 32-bit and 64-bit filters are installed. On a 64 bit 2238and AMD64 both 32-bit and 64-bit filters are installed.
2200architecture, an additional filter for 32 bit system calls can be
2201installed with \-\-seccomp.32.
2202.br 2239.br
2203 2240
2204.br 2241.br
@@ -2209,11 +2246,18 @@ Firejail will print seccomp violations to the audit log if the kernel was compil
2209Example: 2246Example:
2210.br 2247.br
2211$ firejail \-\-seccomp 2248$ firejail \-\-seccomp
2249.br
2250
2251.br
2252The default list can be customized, see \-\-seccomp= for a description. It can be customized
2253also globally in /etc/firejail/firejail.config file.
2254
2212.TP 2255.TP
2213\fB\-\-seccomp=syscall,@group,!syscall2 2256\fB\-\-seccomp=syscall,@group,!syscall2
2214Enable seccomp filter, whitelist "syscall2", but blacklist the default 2257Enable seccomp filter, blacklist the default list and the syscalls or syscall groups
2215list and the syscalls or syscall groups specified by the 2258specified by the command, but don't blacklist "syscall2". On a 64 bit
2216command. 2259architecture, an additional filter for 32 bit system calls can be
2260installed with \-\-seccomp.32.
2217.br 2261.br
2218 2262
2219.br 2263.br
@@ -2223,6 +2267,13 @@ $ firejail \-\-seccomp=utime,utimensat,utimes firefox
2223.br 2267.br
2224$ firejail \-\-seccomp=@clock,mkdir,unlinkat transmission-gtk 2268$ firejail \-\-seccomp=@clock,mkdir,unlinkat transmission-gtk
2225.br 2269.br
2270$ firejail '\-\-seccomp=@ipc,!pipe,!pipe2' audacious
2271.br
2272
2273.br
2274Syscalls can be specified by their number if prefix $ is added,
2275so for example $165 would be equal to mount on i386.
2276.br
2226 2277
2227.br 2278.br
2228Instead of dropping the syscall by returning EPERM, another error 2279Instead of dropping the syscall by returning EPERM, another error
@@ -2235,6 +2286,7 @@ by using \fBsyscall:kill\fR syntax, or the attempt may be logged with
2235 2286
2236.br 2287.br
2237Example: 2288Example:
2289.br
2238$ firejail \-\-seccomp=unlinkat:ENOENT,utimensat,utimes 2290$ firejail \-\-seccomp=unlinkat:ENOENT,utimensat,utimes
2239.br 2291.br
2240Parent pid 10662, child pid 10663 2292Parent pid 10662, child pid 10663
@@ -2243,9 +2295,13 @@ Child process initialized
2243.br 2295.br
2244$ touch testfile 2296$ touch testfile
2245.br 2297.br
2298$ ls testfile
2299.br
2300testfile
2301.br
2246$ rm testfile 2302$ rm testfile
2247.br 2303.br
2248rm: cannot remove `testfile': Operation not permitted 2304rm: cannot remove `testfile': No such file or directory
2249.br 2305.br
2250 2306
2251.br 2307.br
@@ -2258,7 +2314,7 @@ filters.
2258.br 2314.br
2259Example: 2315Example:
2260.br 2316.br
2261$ firejail \-\-noprofile \-\-shell=none \-\-seccomp=execve bash 2317$ firejail \-\-noprofile \-\-shell=none \-\-seccomp=execve sh
2262.br 2318.br
2263Parent pid 32751, child pid 32752 2319Parent pid 32751, child pid 32752
2264.br 2320.br
@@ -2270,8 +2326,7 @@ Child process initialized in 46.44 ms
2270.br 2326.br
2271$ ls 2327$ ls
2272.br 2328.br
2273Bad system call 2329Operation not permitted
2274.br
2275 2330
2276.TP 2331.TP
2277\fB\-\-seccomp.block-secondary 2332\fB\-\-seccomp.block-secondary
@@ -2315,15 +2370,15 @@ Child process initialized
2315.br 2370.br
2316$ touch testfile 2371$ touch testfile
2317.br 2372.br
2373$ ls testfile
2374.br
2375testfile
2376.br
2318$ rm testfile 2377$ rm testfile
2319.br 2378.br
2320rm: cannot remove `testfile': Operation not permitted 2379rm: cannot remove `testfile': No such file or directory
2321.br 2380.br
2322 2381
2323
2324
2325
2326
2327.TP 2382.TP
2328\fB\-\-seccomp.keep=syscall,@group,!syscall2 2383\fB\-\-seccomp.keep=syscall,@group,!syscall2
2329Enable seccomp filter, blacklist all syscall not listed and "syscall2". 2384Enable seccomp filter, blacklist all syscall not listed and "syscall2".
@@ -2566,14 +2621,13 @@ Kill the sandbox automatically after the time has elapsed. The time is specified
2566$ firejail \-\-timeout=01:30:00 firefox 2621$ firejail \-\-timeout=01:30:00 firefox
2567.TP 2622.TP
2568\fB\-\-tmpfs=dirname 2623\fB\-\-tmpfs=dirname
2569Mount a writable tmpfs filesystem on directory dirname. This option is available only when running the sandbox as root. 2624Mount a writable tmpfs filesystem on directory dirname. Directories outside user home or not owned by the user are not allowed. Sandboxes running as root are exempt from these restrictions. File globbing is supported, see \fBFILE GLOBBING\fR section for more details.
2570File globbing is supported, see \fBFILE GLOBBING\fR section for more details.
2571.br 2625.br
2572 2626
2573.br 2627.br
2574Example: 2628Example:
2575.br 2629.br
2576# firejail \-\-tmpfs=/var 2630$ firejail \-\-tmpfs=~/.local/share
2577.TP 2631.TP
2578\fB\-\-top 2632\fB\-\-top
2579Monitor the most CPU-intensive sandboxes, see \fBMONITORING\fR section for more details. 2633Monitor the most CPU-intensive sandboxes, see \fBMONITORING\fR section for more details.
@@ -2719,33 +2773,6 @@ Example:
2719.br 2773.br
2720$ firejail \-\-net=br0 --veth-name=if0 2774$ firejail \-\-net=br0 --veth-name=if0
2721#endif 2775#endif
2722.TP
2723\fB\-\-whitelist=dirname_or_filename
2724Whitelist directory or file. A temporary file system is mounted on the top directory, and the
2725whitelisted files are mount-binded inside. Modifications to whitelisted files are persistent,
2726everything else is discarded when the sandbox is closed. The top directory could be
2727user home, /dev, /etc, /media, /mnt, /opt, /run/user/$UID, /srv, /sys/module, /tmp, /usr/share and /var.
2728.br
2729
2730.br
2731Symbolic link handling: with the exception of user home, both the link and the real file should be in
2732the same top directory. For user home, both the link and the real file should be owned by the user.
2733.br
2734
2735.br
2736File globbing is supported, see \fBFILE GLOBBING\fR section for more details.
2737.br
2738
2739.br
2740Example:
2741.br
2742$ firejail \-\-noprofile \-\-whitelist=~/.mozilla
2743.br
2744$ firejail \-\-whitelist=/tmp/.X11-unix --whitelist=/dev/null
2745.br
2746$ firejail "\-\-whitelist=/home/username/My Virtual Machines"
2747.br
2748$ firejail \-\-whitelist=~/work* \-\-whitelist=/var/backups*
2749 2776
2750.TP 2777.TP
2751\fB\-\-writable-etc 2778\fB\-\-writable-etc
diff --git a/src/man/jailcheck.txt b/src/man/jailcheck.txt
index c80e305cc..483f47fb9 100644
--- a/src/man/jailcheck.txt
+++ b/src/man/jailcheck.txt
@@ -23,6 +23,8 @@ them from inside the sandbox.
23.TP 23.TP
24\fB5. Seccomp test 24\fB5. Seccomp test
25.TP 25.TP
26\fB6. Networking test
27.TP
26The program is started as root using sudo. 28The program is started as root using sudo.
27 29
28.SH OPTIONS 30.SH OPTIONS
@@ -56,6 +58,8 @@ $ sudo jailcheck
56.br 58.br
57 Warning: I can run programs in /home/netblue 59 Warning: I can run programs in /home/netblue
58.br 60.br
61 Networking: disabled
62.br
59 63
60.br 64.br
612055:netblue::firejail /usr/bin/ssh -X netblue@x.y.z.net 652055:netblue::firejail /usr/bin/ssh -X netblue@x.y.z.net
@@ -64,12 +68,16 @@ $ sudo jailcheck
64.br 68.br
65 Warning: I can read ~/.ssh 69 Warning: I can read ~/.ssh
66.br 70.br
71 Networking: enabled
72.br
67 73
68.br 74.br
692186:netblue:libreoffice:firejail --appimage /opt/LibreOffice-fresh.appimage 752186:netblue:libreoffice:firejail --appimage /opt/LibreOffice-fresh.appimage
70.br 76.br
71 Virtual dirs: /tmp, /var/tmp, /dev, 77 Virtual dirs: /tmp, /var/tmp, /dev,
72.br 78.br
79 Networking: enabled
80.br
73 81
74.br 82.br
7526090:netblue::/usr/bin/firejail /opt/firefox/firefox 8326090:netblue::/usr/bin/firejail /opt/firefox/firefox
@@ -78,6 +86,8 @@ $ sudo jailcheck
78.br 86.br
79 /run/user/1000, 87 /run/user/1000,
80.br 88.br
89 Networking: enabled
90.br
81 91
82.br 92.br
8326160:netblue:tor:firejail --private=~/tor-browser_en-US ./start-tor 9326160:netblue:tor:firejail --private=~/tor-browser_en-US ./start-tor
@@ -90,6 +100,8 @@ $ sudo jailcheck
90.br 100.br
91 Warning: I can run programs in /home/netblue 101 Warning: I can run programs in /home/netblue
92.br 102.br
103 Networking: enabled
104.br
93 105
94 106
95.SH LICENSE 107.SH LICENSE
diff --git a/src/tools/profcleaner.c b/src/tools/profcleaner.c
new file mode 100644
index 000000000..93bb3f73d
--- /dev/null
+++ b/src/tools/profcleaner.c
@@ -0,0 +1,75 @@
1/*
2 * Copyright (C) 2014-2021 Firejail Authors
3 *
4 * This file is part of firejail project
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20
21//*************************************************************
22// Small utility program to convert profiles from blacklist/whitelist to deny/allow
23// Compile:
24// gcc -o profcleaner profcleaner.c
25// Usage:
26// profcleaner *.profile
27//*************************************************************
28
29#include <stdio.h>
30#include <stdlib.h>
31#include <string.h>
32#include <unistd.h>
33#define MAXBUF 4096
34
35int main(int argc, char **argv) {
36 printf("Usage: profcleaner files\n");
37 int i;
38
39 for (i = 1; i < argc; i++) {
40 FILE *fp = fopen(argv[i], "r");
41 if (!fp) {
42 fprintf(stderr, "Error: cannot open %s\n", argv[i]);
43 return 1;
44 }
45
46 FILE *fpout = fopen("profcleaner-tmp", "w");
47 if (!fpout) {
48 fprintf(stderr, "Error: cannot open output file\n");
49 return 1;
50 }
51
52 char buf[MAXBUF];
53 while (fgets(buf, MAXBUF, fp)) {
54 if (strncmp(buf, "blacklist-nolog", 15) == 0)
55 fprintf(fpout, "deny-nolog %s", buf + 15);
56 else if (strncmp(buf, "blacklist", 9) == 0)
57 fprintf(fpout, "deny %s", buf + 9);
58 else if (strncmp(buf, "noblacklist", 11) == 0)
59 fprintf(fpout, "nodeny %s", buf + 11);
60 else if (strncmp(buf, "whitelist", 9) == 0)
61 fprintf(fpout, "allow %s", buf + 9);
62 else if (strncmp(buf, "nowhitelist", 11) == 0)
63 fprintf(fpout, "noallow %s", buf + 11);
64 else
65 fprintf(fpout, "%s", buf);
66 }
67
68 fclose(fp);
69 fclose(fpout);
70 unlink(argv[i]);
71 rename("profcleaner-tmp", argv[i]);
72 }
73
74 return 0;
75} \ No newline at end of file
diff --git a/src/tools/profcleaner.sh b/src/tools/profcleaner.sh
new file mode 100755
index 000000000..709008e08
--- /dev/null
+++ b/src/tools/profcleaner.sh
@@ -0,0 +1,45 @@
1#!/bin/bash
2
3# Copyright (C) 2021 Firejail Authors
4#
5# This file is part of firejail project
6#
7# This program is free software; you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation; either version 2 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License along
18# with this program; if not, write to the Free Software Foundation, Inc.,
19# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
21if [[ $1 == --help ]]; then
22 cat <<-EOM
23 USAGE:
24 profcleaner.sh --help Show this help message and exit
25 profcleaner.sh --system Clean all profiles in /etc/firejail
26 profcleaner.sh --user Clean all profiles in ~/.config/firejail
27 profcleaner.sh /path/to/profile1 /path/to/profile2 ...
28 EOM
29 exit 0
30fi
31
32if [[ $1 == --system ]]; then
33 profiles=(/etc/firejail/*.{inc,local,profile})
34elif [[ $1 == --user ]]; then
35 profiles=("$HOME"/.config/firejail/*.{inc,local,profile})
36else
37 profiles=("$@")
38fi
39
40sed -i -E \
41 -e "s/^(# |#)?blacklist/\1deny/" \
42 -e "s/^(# |#)?noblacklist/\1nodeny/" \
43 -e "s/^(# |#)?whitelist/\1allow/" \
44 -e "s/^(# |#)?nowhitelist/\1noallow/" \
45 "${profiles[@]}"
diff --git a/src/zsh_completion/_firejail.in b/src/zsh_completion/_firejail.in
index f1a19b86d..b703783b0 100644
--- a/src/zsh_completion/_firejail.in
+++ b/src/zsh_completion/_firejail.in
@@ -48,8 +48,8 @@ _firejail_args=(
48 '*::arguments:_normal' 48 '*::arguments:_normal'
49 49
50 '--appimage[sandbox an AppImage application]' 50 '--appimage[sandbox an AppImage application]'
51 '--build[build a whitelisted profile for the application and print it on stdout]' 51 '--build[build a profile for the application and print it on stdout]'
52 '--build=-[build a whitelisted profile for the application and save it]: :_files' 52 '--build=-[build a profile for the application and save it]: :_files'
53 # Ignore that you can do -? too as it's the only short option 53 # Ignore that you can do -? too as it's the only short option
54 '--help[this help screen]' 54 '--help[this help screen]'
55 '--join=-[join the sandbox name|pid]: :_all_firejails' 55 '--join=-[join the sandbox name|pid]: :_all_firejails'
@@ -63,14 +63,14 @@ _firejail_args=(
63 '--version[print program version and exit]' 63 '--version[print program version and exit]'
64 64
65 '--debug[print sandbox debug messages]' 65 '--debug[print sandbox debug messages]'
66 '--debug-blacklists[debug blacklisting]' 66 '--debug-allow[debug file system access]'
67 '--debug-caps[print all recognized capabilities]' 67 '--debug-caps[print all recognized capabilities]'
68 '--debug-deny[debug file system access]'
68 '--debug-errnos[print all recognized error numbers]' 69 '--debug-errnos[print all recognized error numbers]'
69 '--debug-private-lib[debug for --private-lib option]' 70 '--debug-private-lib[debug for --private-lib option]'
70 '--debug-protocols[print all recognized protocols]' 71 '--debug-protocols[print all recognized protocols]'
71 '--debug-syscalls[print all recognized system calls]' 72 '--debug-syscalls[print all recognized system calls]'
72 '--debug-syscalls32[print all recognized 32 bit system calls]' 73 '--debug-syscalls32[print all recognized 32 bit system calls]'
73 '--debug-whitelists[debug whitelisting]'
74 74
75 '--caps.print=-[print the caps filter name|pid]:firejail:_all_firejails' 75 '--caps.print=-[print the caps filter name|pid]:firejail:_all_firejails'
76 '--cpu.print=-[print the cpus in use name|pid]: :_all_firejails' 76 '--cpu.print=-[print the cpus in use name|pid]: :_all_firejails'
@@ -83,13 +83,13 @@ _firejail_args=(
83 '--allusers[all user home directories are visible inside the sandbox]' 83 '--allusers[all user home directories are visible inside the sandbox]'
84 # Should be _files, a comma and files or files -/ 84 # Should be _files, a comma and files or files -/
85 '*--bind=-[mount-bind dirname1/filename1 on top of dirname2/filename2]: :(file1,file2 dir1,dir2)' 85 '*--bind=-[mount-bind dirname1/filename1 on top of dirname2/filename2]: :(file1,file2 dir1,dir2)'
86 '*--blacklist=-[blacklist directory or file]: :_files'
87 '--caps[enable default Linux capabilities filter]' 86 '--caps[enable default Linux capabilities filter]'
88 '--caps.drop=all[drop all capabilities]' 87 '--caps.drop=all[drop all capabilities]'
89 '*--caps.drop=-[drop capabilities: all|cap1,cap2,...]: :_caps' 88 '*--caps.drop=-[drop capabilities: all|cap1,cap2,...]: :_caps'
90 '*--caps.keep=-[keep capabilities: cap1,cap2,...]: :_caps' 89 '*--caps.keep=-[keep capabilities: cap1,cap2,...]: :_caps'
91 '--cgroup=-[place the sandbox in the specified control group]: :' 90 '--cgroup=-[place the sandbox in the specified control group]: :'
92 '--cpu=-[set cpu affinity]: :->cpus' 91 '--cpu=-[set cpu affinity]: :->cpus'
92 '*--deny=-[deny access to directory or file]: :_files'
93 "--deterministic-exit-code[always exit with first child's status code]" 93 "--deterministic-exit-code[always exit with first child's status code]"
94 '*--dns=-[set DNS server]: :' 94 '*--dns=-[set DNS server]: :'
95 '*--env=-[set environment variable]: :' 95 '*--env=-[set environment variable]: :'
@@ -112,7 +112,7 @@ _firejail_args=(
112 '--nice=-[set nice value]: :(1 10 15 20)' 112 '--nice=-[set nice value]: :(1 10 15 20)'
113 '--no3d[disable 3D hardware acceleration]' 113 '--no3d[disable 3D hardware acceleration]'
114 '--noautopulse[disable automatic ~/.config/pulse init]' 114 '--noautopulse[disable automatic ~/.config/pulse init]'
115 '--noblacklist=-[disable blacklist for file or directory]: :_files' 115 '--nodeny=-[disable deny command for file or directory]: :_files'
116 '--nodbus[disable D-Bus access]' 116 '--nodbus[disable D-Bus access]'
117 '--nodvd[disable DVD and audio CD devices]' 117 '--nodvd[disable DVD and audio CD devices]'
118 '*--noexec=-[remount the file or directory noexec nosuid and nodev]: :_files' 118 '*--noexec=-[remount the file or directory noexec nosuid and nodev]: :_files'
@@ -143,13 +143,13 @@ _firejail_args=(
143 '--rlimit-nproc=-[set the maximum number of processes that can be created for the real user ID of the calling process]: :' 143 '--rlimit-nproc=-[set the maximum number of processes that can be created for the real user ID of the calling process]: :'
144 '--rlimit-sigpending=-[set the maximum number of pending signals for a process]: :' 144 '--rlimit-sigpending=-[set the maximum number of pending signals for a process]: :'
145 '*--rmenv=-[remove environment variable in the new sandbox]: :_values environment-variables $(env | cut -d= -f1)' 145 '*--rmenv=-[remove environment variable in the new sandbox]: :_values environment-variables $(env | cut -d= -f1)'
146 '--seccomp[enable seccomp filter and apply the default blacklist]: :' 146 '--seccomp[enable seccomp filter and drop the default syscalls]: :'
147 '--seccomp=-[enable seccomp filter, blacklist the default syscall list and the syscalls specified by the command]: :->seccomp' 147 '--seccomp=-[enable seccomp filter, drop the default syscall list and the syscalls specified by the command]: :->seccomp'
148 '--seccomp.block-secondary[build only the native architecture filters]' 148 '--seccomp.block-secondary[build only the native architecture filters]'
149 '*--seccomp.drop=-[enable seccomp filter, and blacklist the syscalls specified by the command]: :->seccomp' 149 '*--seccomp.drop=-[enable seccomp filter, and drop the syscalls specified by the command]: :->seccomp'
150 '*--seccomp.keep=-[enable seccomp filter, and whitelist the syscalls specified by the command]: :->seccomp' 150 '*--seccomp.keep=-[enable seccomp filter, and allow the syscalls specified by the command]: :->seccomp'
151 '*--seccomp.32.drop=-[enable seccomp filter, and blacklist the 32 bit syscalls specified by the command]: :' 151 '*--seccomp.32.drop=-[enable seccomp filter, and drop the 32 bit syscalls specified by the command]: :'
152 '*--seccomp.32.keep=-[enable seccomp filter, and whitelist the 32 bit syscalls specified by the command]: :' 152 '*--seccomp.32.keep=-[enable seccomp filter, and drop the 32 bit syscalls specified by the command]: :'
153 # FIXME: Add errnos 153 # FIXME: Add errnos
154 '--seccomp-error-action=-[change error code, kill process or log the attempt]: :(kill log)' 154 '--seccomp-error-action=-[change error code, kill process or log the attempt]: :(kill log)'
155 '--shell=none[run the program directly without a user shell]' 155 '--shell=none[run the program directly without a user shell]'
@@ -157,7 +157,7 @@ _firejail_args=(
157 '--timeout=-[kill the sandbox automatically after the time has elapsed]: :' 157 '--timeout=-[kill the sandbox automatically after the time has elapsed]: :'
158 #'(--tracelog)--trace[trace open, access and connect system calls]' 158 #'(--tracelog)--trace[trace open, access and connect system calls]'
159 '(--tracelog)--trace=-[trace open, access and connect system calls]: :_files' 159 '(--tracelog)--trace=-[trace open, access and connect system calls]: :_files'
160 '(--trace)--tracelog[add a syslog message for every access to files or directories blacklisted by the security profile]' 160 '(--trace)--tracelog[add a syslog message for every access to files or directories dropped by the security profile]'
161 '(--private-etc)--writable-etc[/etc directory is mounted read-write]' 161 '(--private-etc)--writable-etc[/etc directory is mounted read-write]'
162 '--writable-run-user[allow access to /run/user/$UID/systemd and /run/user/$UID/gnupg]' 162 '--writable-run-user[allow access to /run/user/$UID/systemd and /run/user/$UID/gnupg]'
163 '--writable-var[/var directory is mounted read-write]' 163 '--writable-var[/var directory is mounted read-write]'
@@ -251,10 +251,8 @@ _firejail_args=(
251 '*--tmpfs=-[mount a tmpfs filesystem on directory dirname]: :_files -/' 251 '*--tmpfs=-[mount a tmpfs filesystem on directory dirname]: :_files -/'
252#endif 252#endif
253 253
254#ifdef HAVE_WHITELIST 254 '*--noallow=-[disable allow command for file or directory]: :_files'
255 '*--nowhitelist=-[disable whitelist for file or directory]: :_files' 255 '*--allow=-[allow file system access]: :_files'
256 '*--whitelist=-[whitelist directory or file]: :_files'
257#endif
258 256
259#ifdef HAVE_X11 257#ifdef HAVE_X11
260 '--x11[enable X11 sandboxing. The software checks first if Xpra is installed, then it checks if Xephyr is installed. If all fails, it will attempt to use X11 security extension]' 258 '--x11[enable X11 sandboxing. The software checks first if Xpra is installed, then it checks if Xephyr is installed. If all fails, it will attempt to use X11 security extension]'
diff --git a/test/environment/rlimit-bad-profile.exp b/test/environment/rlimit-bad-profile.exp
index b838f83f4..b1572afb6 100755
--- a/test/environment/rlimit-bad-profile.exp
+++ b/test/environment/rlimit-bad-profile.exp
@@ -11,7 +11,7 @@ match_max 100000
11send -- "firejail --profile=rlimit-bad1.profile\r" 11send -- "firejail --profile=rlimit-bad1.profile\r"
12expect { 12expect {
13 timeout {puts "TESTING ERROR 4\n";exit} 13 timeout {puts "TESTING ERROR 4\n";exit}
14 "invalid rlimit" 14 "invalid rlimit-fsize in profile file. Only use positive numbers and k, m or g suffix."
15} 15}
16after 100 16after 100
17 17
diff --git a/test/environment/rlimit-bad.exp b/test/environment/rlimit-bad.exp
index 3a82ded9b..c05e14b97 100755
--- a/test/environment/rlimit-bad.exp
+++ b/test/environment/rlimit-bad.exp
@@ -10,7 +10,7 @@ match_max 100000
10send -- "firejail --rlimit-fsize=-1024\r" 10send -- "firejail --rlimit-fsize=-1024\r"
11expect { 11expect {
12 timeout {puts "TESTING ERROR 0\n";exit} 12 timeout {puts "TESTING ERROR 0\n";exit}
13 "invalid rlimit" 13 "invalid rlimit-fsize. Only use positive numbers and k, m or g suffix."
14} 14}
15after 100 15after 100
16 16
diff --git a/test/fs/fscheck-tmpfs.exp b/test/fs/fscheck-tmpfs.exp
index 8dd08aa72..78b6efb76 100755
--- a/test/fs/fscheck-tmpfs.exp
+++ b/test/fs/fscheck-tmpfs.exp
@@ -41,7 +41,7 @@ after 500
41send -- "firejail --noprofile --tmpfs=/tmp/fjtest-dir\r" 41send -- "firejail --noprofile --tmpfs=/tmp/fjtest-dir\r"
42expect { 42expect {
43 timeout {puts "TESTING ERROR 5\n";exit} 43 timeout {puts "TESTING ERROR 5\n";exit}
44 "Error" 44 "Warning: you are not allowed to mount a tmpfs"
45} 45}
46after 500 46after 500
47 47
diff --git a/test/fs/whitelist.exp b/test/fs/whitelist.exp
index 27ee2433e..dcc2276b8 100755
--- a/test/fs/whitelist.exp
+++ b/test/fs/whitelist.exp
@@ -16,10 +16,7 @@ send -- "rm ~/fjtest-file\r"
16after 200 16after 200
17send -- "rm ~/fjtest-file-lnk\r" 17send -- "rm ~/fjtest-file-lnk\r"
18after 200 18after 200
19send -- "rm /tmp/fjtest-file\r" 19
20after 200
21send -- "rm -fr /tmp/fjtest-dir\r"
22after 200
23 20
24 21
25# simple files and directories 22# simple files and directories
@@ -149,63 +146,7 @@ expect {
149send -- "exit\r" 146send -- "exit\r"
150sleep 1 147sleep 1
151 148
152# symlinks outside home to a file we don't own
153send -- "rm ~/fjtest-file-lnk\r"
154after 200
155send -- "ln -s /etc/passwd ~/fjtest-file-lnk\r"
156after 200
157send -- "firejail --whitelist=~/fjtest-file-lnk --whitelist=~/fjtest-dir-lnk\r"
158expect {
159 timeout {puts "TESTING ERROR 30\n";exit}
160 "invalid whitelist path"
161}
162expect {
163 timeout {puts "TESTING ERROR 31\n";exit}
164 "cannot sync with peer"
165}
166sleep 1
167
168# symlinks outside home to a file we own
169send -- "rm -fr ~/fjtest-dir-lnk\r"
170after 200
171send -- "rm ~/fjtest-file-lnk\r"
172after 200
173send -- "echo 123 > /tmp/fjtest-file\r"
174after 200
175send -- "mkdir /tmp/fjtest-dir\r"
176after 200
177send -- "echo 123 > /tmp/fjtest-dir/fjtest-file\r"
178after 200
179send -- "ln -s /tmp/fjtest-file ~/fjtest-file-lnk\r"
180after 200
181send -- "ln -s /tmp/fjtest-dir ~/fjtest-dir-lnk\r"
182after 200
183send -- "firejail --whitelist=~/fjtest-file-lnk --whitelist=~/fjtest-dir-lnk\r"
184expect {
185 timeout {puts "TESTING ERROR 40\n";exit}
186 "Child process initialized"
187}
188sleep 1
189
190send -- "ls -l ~/ | grep -v total | wc -l\r"
191expect {
192 timeout {puts "TESTING ERROR 41\n";exit}
193 "2"
194}
195 149
196send -- "cat ~/fjtest-file-lnk\r"
197expect {
198 timeout {puts "TESTING ERROR 42\n";exit}
199 "123"
200}
201
202send -- "cat ~/fjtest-dir-lnk/fjtest-file\r"
203expect {
204 timeout {puts "TESTING ERROR 43\n";exit}
205 "123"
206}
207send -- "exit\r"
208sleep 1
209 150
210# cleanup 151# cleanup
211send -- "rm -fr ~/fjtest-dir\r" 152send -- "rm -fr ~/fjtest-dir\r"
@@ -216,10 +157,5 @@ send -- "rm ~/fjtest-file\r"
216after 200 157after 200
217send -- "rm ~/fjtest-file-lnk\r" 158send -- "rm ~/fjtest-file-lnk\r"
218after 200 159after 200
219send -- "rm /tmp/fjtest-file\r"
220after 200
221send -- "rm -fr /tmp/fjtest-dir\r"
222after 200
223
224 160
225puts "\nall done\n" 161puts "\nall done\n"
diff --git a/test/profiles/comment.profile b/test/profiles/comment.profile
new file mode 100644
index 000000000..4a907a408
--- /dev/null
+++ b/test/profiles/comment.profile
@@ -0,0 +1,3 @@
1# this is a comment
2net none # this is another comment
3private # some other comment
diff --git a/test/profiles/profile_comment.exp b/test/profiles/profile_comment.exp
new file mode 100755
index 000000000..a2be510c1
--- /dev/null
+++ b/test/profiles/profile_comment.exp
@@ -0,0 +1,52 @@
1#!/usr/bin/expect -f
2# This file is part of Firejail project
3# Copyright (C) 2014-2021 Firejail Authors
4# License GPL v2
5
6set timeout 10
7spawn $env(SHELL)
8match_max 100000
9
10send -- "rm -fr /tmp/firejailtest*\r"
11send -- "rm -fr /tmp/firejail-strace*\r"
12send -- "rm -fr /tmp/firejail-trace*\r"
13sleep 1
14
15send -- "firejail --profile=comment.profile /usr/bin/true\r"
16expect {
17 timeout {puts "TESTING ERROR 0\n";exit}
18 "Child process initialized"
19}
20expect {
21 timeout {puts "TESTING ERROR 1\n";exit}
22 "Parent is shutting down"
23}
24sleep 2
25
26send -- "firejail --build=/tmp/firejailtest.profile /usr/bin/true\r"
27sleep 1
28
29send -- "cat /tmp/firejailtest.profile\r"
30expect {
31 timeout {puts "TESTING ERROR 2\n";exit}
32 "seccomp"
33}
34after 100
35
36send -- "firejail --profile=/tmp/firejailtest.profile /usr/bin/true\r"
37expect {
38 timeout {puts "TESTING ERROR 3\n";exit}
39 "Child process initialized"
40}
41expect {
42 timeout {puts "TESTING ERROR 4\n";exit}
43 "Parent is shutting down"
44}
45after 100
46
47send -- "rm -fr /tmp/firejailtest*\r"
48send -- "rm -fr /tmp/firejail-strace*\r"
49send -- "rm -fr /tmp/firejail-trace*\r"
50after 100
51
52puts "\nall done\n"
diff --git a/test/profiles/profiles.sh b/test/profiles/profiles.sh
index a5f74f2e2..cbc6fa4d9 100755
--- a/test/profiles/profiles.sh
+++ b/test/profiles/profiles.sh
@@ -7,6 +7,9 @@ export MALLOC_CHECK_=3
7export MALLOC_PERTURB_=$(($RANDOM % 255 + 1)) 7export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
8export LC_ALL=C 8export LC_ALL=C
9 9
10echo "TESTING: profile comments (test/profiles/profilecomment.exp)"
11./profile_comment.exp
12
10echo "TESTING: profile conditional (test/profiles/conditional.exp)" 13echo "TESTING: profile conditional (test/profiles/conditional.exp)"
11./conditional.exp 14./conditional.exp
12 15