[GH-ISSUE #5367] discord: when not using firecfg, launching discord from CLI is prone to failure #2973

Closed
opened 2026-05-05 09:38:00 -06:00 by gitea-mirror · 1 comment
Owner

Originally created by @ghost on GitHub (Sep 13, 2022).
Original GitHub issue: https://github.com/netblue30/firejail/issues/5367

A user on our IRC channel (rahl-) brought to our attention that due to the multiple naming used in our discord profiles things can break rather easily, leaving users in a confused state.

$ firejail /opt/discord/Discord
Originally pasted by rahl- on https://bpa.st/7YLA
Added here for clarity and archival purposes, as these pastes
tend to dissappear from pastebin websites rather quickly.

- - - - - -

[0] ~$ which discord
/usr/bin/discord

[0] ~$ ll $(which discord)
lrwxrwxrwx 1 root root 20 Aug 10 21:27 /usr/bin/discord -> /opt/discord/Discord

[0] ~$ ls /usr/local/bin/discord
ls: cannot access '/usr/local/bin/discord': No such file or directory

## The following works as expected
[0] ~$ firejail discord
Reading profile /etc/firejail/discord.profile
Reading profile /etc/firejail/discord-common.profile
Reading profile /etc/firejail/electron.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-exec.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Parent pid 1222171, child pid 1222172
Private /opt installed in 401.66 ms
16 programs installed in 48.38 ms
Warning: skipping alternatives for private /etc
Warning: skipping crypto-policies for private /etc
Warning: skipping ld.so.preload for private /etc
Warning: skipping password for private /etc
Warning: skipping pki for private /etc
Private /etc installed in 40.65 ms
Warning: skipping alternatives for private /usr/etc
Warning: skipping ca-certificates for private /usr/etc
Warning: skipping crypto-policies for private /usr/etc
Warning: skipping fonts for private /usr/etc
Warning: skipping group for private /usr/etc
Warning: skipping ld.so.cache for private /usr/etc
Warning: skipping ld.so.preload for private /usr/etc
Warning: skipping localtime for private /usr/etc
Warning: skipping login.defs for private /usr/etc
Warning: skipping machine-id for private /usr/etc
Warning: skipping password for private /usr/etc
Warning: skipping pki for private /usr/etc
Warning: skipping pulse for private /usr/etc
Warning: skipping resolv.conf for private /usr/etc
Warning: skipping ssl for private /usr/etc
Private /usr/etc installed in 0.23 ms
Warning: /sbin directory link was not blacklisted
Warning: /usr/sbin directory link was not blacklisted
Warning: not remounting /run/user/1000/gvfs
Child process initialized in 605.01 ms
Discord 0.0.19
Starting app.
Starting updater.
[Modules] Modules initializing
[Modules] Distribution: remote
[Modules] Host updates: enabled
[Modules] Module updates: enabled
[Modules] Module install path: /home/<user>/.config/discord/0.0.19/modules
[Modules] Module installed file path: /home/<user>/.config/discord/0.0.19/modules/installed.json
[Modules] Module download path: /home/<user>/.config/discord/0.0.19/modules/pending
[Modules] No updates to install
[Modules] Checking for host updates.
[Modules] Host is up to date.
[Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json
[Modules] No module updates available.
Module ./ElectronTestRpc was not included.
[Modules] Starting to install discord_krisp...
[Modules] Fetching discord_krisp@0 from https://discord.com/api/modules/stable/discord_krisp/0
[Modules] Streaming discord_krisp@0 to /home/<user>/.config/discord/0.0.19/modules/pending/discord_krisp-0.zip
[Modules] Checking for host updates.
Error downloading with electron net: HTTP Error: Status Code 403
Falling back to node net library..
/usr/local/bin/xdg-mime: line 998: awk: command not found
/usr/local/bin/xdg-mime: line 998: awk: command not found
[Modules] Host is up to date.
[Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json
[Modules] No module updates available.
/usr/local/bin/xdg-open: line 811: : command not found
/usr/local/bin/xdg-open: line 881: x-www-browser: command not found
/usr/local/bin/xdg-open: line 881: firefox: command not found
/usr/local/bin/xdg-open: line 881: iceweasel: command not found
/usr/local/bin/xdg-open: line 881: seamonkey: command not found
/usr/local/bin/xdg-open: line 881: mozilla: command not found
/usr/local/bin/xdg-open: line 881: epiphany: command not found
/usr/local/bin/xdg-open: line 881: konqueror: command not found
/usr/local/bin/xdg-open: line 881: chromium: command not found
/usr/local/bin/xdg-open: line 881: chromium-browser: command not found
/usr/local/bin/xdg-open: line 881: google-chrome: command not found
/usr/local/bin/xdg-open: line 881: www-browser: command not found
/usr/local/bin/xdg-open: line 881: links2: command not found
/usr/local/bin/xdg-open: line 881: elinks: command not found
/usr/local/bin/xdg-open: line 881: links: command not found
/usr/local/bin/xdg-open: line 881: lynx: command not found
/usr/local/bin/xdg-open: line 881: w3m: command not found
xdg-open: no method available for opening 'https://discord.com/handoff?rpc=6463&key=0c8c42d1-71c4-4363-b3ee-93294bf0fe0d'

Parent is shutting down, bye...

## The following also works as expected
[1] ~$ firejail /usr/bin/discord
Reading profile /etc/firejail/discord.profile
Reading profile /etc/firejail/discord-common.profile
Reading profile /etc/firejail/electron.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-exec.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Parent pid 1222601, child pid 1222602
Private /opt installed in 320.34 ms
16 programs installed in 37.30 ms
Warning: skipping alternatives for private /etc
Warning: skipping crypto-policies for private /etc
Warning: skipping ld.so.preload for private /etc
Warning: skipping password for private /etc
Warning: skipping pki for private /etc
Private /etc installed in 30.06 ms
Warning: skipping alternatives for private /usr/etc
Warning: skipping ca-certificates for private /usr/etc
Warning: skipping crypto-policies for private /usr/etc
Warning: skipping fonts for private /usr/etc
Warning: skipping group for private /usr/etc
Warning: skipping ld.so.cache for private /usr/etc
Warning: skipping ld.so.preload for private /usr/etc
Warning: skipping localtime for private /usr/etc
Warning: skipping login.defs for private /usr/etc
Warning: skipping machine-id for private /usr/etc
Warning: skipping password for private /usr/etc
Warning: skipping pki for private /usr/etc
Warning: skipping pulse for private /usr/etc
Warning: skipping resolv.conf for private /usr/etc
Warning: skipping ssl for private /usr/etc
Private /usr/etc installed in 0.17 ms
Warning: /sbin directory link was not blacklisted
Warning: /usr/sbin directory link was not blacklisted
Warning: not remounting /run/user/1000/gvfs
Child process initialized in 477.03 ms
Discord 0.0.19
Starting app.
Starting updater.
[Modules] Modules initializing
[Modules] Distribution: remote
[Modules] Host updates: enabled
[Modules] Module updates: enabled
[Modules] Module install path: /home/<user>/.config/discord/0.0.19/modules
[Modules] Module installed file path: /home/<user>/.config/discord/0.0.19/modules/installed.json
[Modules] Module download path: /home/<user>/.config/discord/0.0.19/modules/pending
[Modules] No updates to install
[Modules] Checking for host updates.
[Modules] Host is up to date.
[Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json
[Modules] No module updates available.
Module ./ElectronTestRpc was not included.
[Modules] Starting to install discord_krisp...
[Modules] Fetching discord_krisp@0 from https://discord.com/api/modules/stable/discord_krisp/0
[Modules] Streaming discord_krisp@0 to /home/<user>/.config/discord/0.0.19/modules/pending/discord_krisp-0.zip
[Modules] Checking for host updates.
Error downloading with electron net: HTTP Error: Status Code 403
Falling back to node net library..

Parent is shutting down, bye...

## The following fails
[0] ~$ firejail /opt/discord/Discord
Reading profile /etc/firejail/Discord.profile
Reading profile /etc/firejail/discord-common.profile
Reading profile /etc/firejail/electron.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-exec.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Parent pid 1222565, child pid 1222566
Warning: skipping Discord for private /opt
Private /opt installed in 0.07 ms
15 programs installed in 38.31 ms
Warning: skipping alternatives for private /etc
Warning: skipping crypto-policies for private /etc
Warning: skipping ld.so.preload for private /etc
Warning: skipping password for private /etc
Warning: skipping pki for private /etc
Private /etc installed in 28.46 ms
Warning: skipping alternatives for private /usr/etc
Warning: skipping ca-certificates for private /usr/etc
Warning: skipping crypto-policies for private /usr/etc
Warning: skipping fonts for private /usr/etc
Warning: skipping group for private /usr/etc
Warning: skipping ld.so.cache for private /usr/etc
Warning: skipping ld.so.preload for private /usr/etc
Warning: skipping localtime for private /usr/etc
Warning: skipping login.defs for private /usr/etc
Warning: skipping machine-id for private /usr/etc
Warning: skipping password for private /usr/etc
Warning: skipping pki for private /usr/etc
Warning: skipping pulse for private /usr/etc
Warning: skipping resolv.conf for private /usr/etc
Warning: skipping ssl for private /usr/etc
Private /usr/etc installed in 0.21 ms
Warning: /sbin directory link was not blacklisted
Warning: /usr/sbin directory link was not blacklisted
Warning: not remounting /run/user/1000/gvfs
Child process initialized in 170.56 ms
Error: no suitable /opt/discord/Discord executable found

Parent is shutting down, bye...

# Now we try with the script stub
[0] ~$ sudo mv /usr/local/bin/{.,}discord
[0] ~$ which discord
/usr/local/bin/discord

# Had an odd case in between where running `discord` did not run the script
[0] ~$ hash -r
[0] ~$ which discord
/usr/local/bin/discord

# The following fails - I'm wondering if this is somehow related to the earlier
# fail case
[0] ~$ discord
Reading profile /etc/firejail/discord.profile
Reading profile /etc/firejail/discord-common.profile
Reading profile /etc/firejail/electron.profile
Reading profile /etc/firejail/disable-common.inc
Reading profile /etc/firejail/disable-devel.inc
Reading profile /etc/firejail/disable-exec.inc
Reading profile /etc/firejail/disable-programs.inc
Reading profile /etc/firejail/whitelist-common.inc
Reading profile /etc/firejail/whitelist-var-common.inc
Parent pid 1223314, child pid 1223315
Private /opt installed in 397.17 ms
16 programs installed in 45.69 ms
Warning: skipping alternatives for private /etc
Warning: skipping crypto-policies for private /etc
Warning: skipping ld.so.preload for private /etc
Warning: skipping password for private /etc
Warning: skipping pki for private /etc
Private /etc installed in 36.88 ms
Warning: skipping alternatives for private /usr/etc
Warning: skipping ca-certificates for private /usr/etc
Warning: skipping crypto-policies for private /usr/etc
Warning: skipping fonts for private /usr/etc
Warning: skipping group for private /usr/etc
Warning: skipping ld.so.cache for private /usr/etc
Warning: skipping ld.so.preload for private /usr/etc
Warning: skipping localtime for private /usr/etc
Warning: skipping login.defs for private /usr/etc
Warning: skipping machine-id for private /usr/etc
Warning: skipping password for private /usr/etc
Warning: skipping pki for private /usr/etc
Warning: skipping pulse for private /usr/etc
Warning: skipping resolv.conf for private /usr/etc
Warning: skipping ssl for private /usr/etc
Private /usr/etc installed in 0.19 ms
Warning: /sbin directory link was not blacklisted
Warning: /usr/sbin directory link was not blacklisted
Warning: not remounting /run/user/1000/gvfs
Child process initialized in 571.03 ms
/usr/bin/discord: line 3: /usr/bin/firejail: No such file or directory

Parent is shutting down, bye...

We can improve the profiles to catch these kind of situations and avoid future issues/questions from our users. I'll be opening a PR on this shortly. But we need to look at implementing a safe and reliable way to open URLs in whatever web browser the user is using, which is currently still broken. This relates to the below and probably many others:

Originally created by @ghost on GitHub (Sep 13, 2022). Original GitHub issue: https://github.com/netblue30/firejail/issues/5367 A user on our IRC channel (rahl-) brought to our attention that due to the multiple naming used in our discord profiles things can break rather easily, leaving users in a confused state. <details> <summary> $ firejail /opt/discord/Discord </summary> ``` Originally pasted by rahl- on https://bpa.st/7YLA Added here for clarity and archival purposes, as these pastes tend to dissappear from pastebin websites rather quickly. - - - - - - [0] ~$ which discord /usr/bin/discord [0] ~$ ll $(which discord) lrwxrwxrwx 1 root root 20 Aug 10 21:27 /usr/bin/discord -> /opt/discord/Discord [0] ~$ ls /usr/local/bin/discord ls: cannot access '/usr/local/bin/discord': No such file or directory ## The following works as expected [0] ~$ firejail discord Reading profile /etc/firejail/discord.profile Reading profile /etc/firejail/discord-common.profile Reading profile /etc/firejail/electron.profile Reading profile /etc/firejail/disable-common.inc Reading profile /etc/firejail/disable-devel.inc Reading profile /etc/firejail/disable-exec.inc Reading profile /etc/firejail/disable-programs.inc Reading profile /etc/firejail/whitelist-common.inc Reading profile /etc/firejail/whitelist-var-common.inc Parent pid 1222171, child pid 1222172 Private /opt installed in 401.66 ms 16 programs installed in 48.38 ms Warning: skipping alternatives for private /etc Warning: skipping crypto-policies for private /etc Warning: skipping ld.so.preload for private /etc Warning: skipping password for private /etc Warning: skipping pki for private /etc Private /etc installed in 40.65 ms Warning: skipping alternatives for private /usr/etc Warning: skipping ca-certificates for private /usr/etc Warning: skipping crypto-policies for private /usr/etc Warning: skipping fonts for private /usr/etc Warning: skipping group for private /usr/etc Warning: skipping ld.so.cache for private /usr/etc Warning: skipping ld.so.preload for private /usr/etc Warning: skipping localtime for private /usr/etc Warning: skipping login.defs for private /usr/etc Warning: skipping machine-id for private /usr/etc Warning: skipping password for private /usr/etc Warning: skipping pki for private /usr/etc Warning: skipping pulse for private /usr/etc Warning: skipping resolv.conf for private /usr/etc Warning: skipping ssl for private /usr/etc Private /usr/etc installed in 0.23 ms Warning: /sbin directory link was not blacklisted Warning: /usr/sbin directory link was not blacklisted Warning: not remounting /run/user/1000/gvfs Child process initialized in 605.01 ms Discord 0.0.19 Starting app. Starting updater. [Modules] Modules initializing [Modules] Distribution: remote [Modules] Host updates: enabled [Modules] Module updates: enabled [Modules] Module install path: /home/<user>/.config/discord/0.0.19/modules [Modules] Module installed file path: /home/<user>/.config/discord/0.0.19/modules/installed.json [Modules] Module download path: /home/<user>/.config/discord/0.0.19/modules/pending [Modules] No updates to install [Modules] Checking for host updates. [Modules] Host is up to date. [Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json [Modules] No module updates available. Module ./ElectronTestRpc was not included. [Modules] Starting to install discord_krisp... [Modules] Fetching discord_krisp@0 from https://discord.com/api/modules/stable/discord_krisp/0 [Modules] Streaming discord_krisp@0 to /home/<user>/.config/discord/0.0.19/modules/pending/discord_krisp-0.zip [Modules] Checking for host updates. Error downloading with electron net: HTTP Error: Status Code 403 Falling back to node net library.. /usr/local/bin/xdg-mime: line 998: awk: command not found /usr/local/bin/xdg-mime: line 998: awk: command not found [Modules] Host is up to date. [Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json [Modules] No module updates available. /usr/local/bin/xdg-open: line 811: : command not found /usr/local/bin/xdg-open: line 881: x-www-browser: command not found /usr/local/bin/xdg-open: line 881: firefox: command not found /usr/local/bin/xdg-open: line 881: iceweasel: command not found /usr/local/bin/xdg-open: line 881: seamonkey: command not found /usr/local/bin/xdg-open: line 881: mozilla: command not found /usr/local/bin/xdg-open: line 881: epiphany: command not found /usr/local/bin/xdg-open: line 881: konqueror: command not found /usr/local/bin/xdg-open: line 881: chromium: command not found /usr/local/bin/xdg-open: line 881: chromium-browser: command not found /usr/local/bin/xdg-open: line 881: google-chrome: command not found /usr/local/bin/xdg-open: line 881: www-browser: command not found /usr/local/bin/xdg-open: line 881: links2: command not found /usr/local/bin/xdg-open: line 881: elinks: command not found /usr/local/bin/xdg-open: line 881: links: command not found /usr/local/bin/xdg-open: line 881: lynx: command not found /usr/local/bin/xdg-open: line 881: w3m: command not found xdg-open: no method available for opening 'https://discord.com/handoff?rpc=6463&key=0c8c42d1-71c4-4363-b3ee-93294bf0fe0d' Parent is shutting down, bye... ## The following also works as expected [1] ~$ firejail /usr/bin/discord Reading profile /etc/firejail/discord.profile Reading profile /etc/firejail/discord-common.profile Reading profile /etc/firejail/electron.profile Reading profile /etc/firejail/disable-common.inc Reading profile /etc/firejail/disable-devel.inc Reading profile /etc/firejail/disable-exec.inc Reading profile /etc/firejail/disable-programs.inc Reading profile /etc/firejail/whitelist-common.inc Reading profile /etc/firejail/whitelist-var-common.inc Parent pid 1222601, child pid 1222602 Private /opt installed in 320.34 ms 16 programs installed in 37.30 ms Warning: skipping alternatives for private /etc Warning: skipping crypto-policies for private /etc Warning: skipping ld.so.preload for private /etc Warning: skipping password for private /etc Warning: skipping pki for private /etc Private /etc installed in 30.06 ms Warning: skipping alternatives for private /usr/etc Warning: skipping ca-certificates for private /usr/etc Warning: skipping crypto-policies for private /usr/etc Warning: skipping fonts for private /usr/etc Warning: skipping group for private /usr/etc Warning: skipping ld.so.cache for private /usr/etc Warning: skipping ld.so.preload for private /usr/etc Warning: skipping localtime for private /usr/etc Warning: skipping login.defs for private /usr/etc Warning: skipping machine-id for private /usr/etc Warning: skipping password for private /usr/etc Warning: skipping pki for private /usr/etc Warning: skipping pulse for private /usr/etc Warning: skipping resolv.conf for private /usr/etc Warning: skipping ssl for private /usr/etc Private /usr/etc installed in 0.17 ms Warning: /sbin directory link was not blacklisted Warning: /usr/sbin directory link was not blacklisted Warning: not remounting /run/user/1000/gvfs Child process initialized in 477.03 ms Discord 0.0.19 Starting app. Starting updater. [Modules] Modules initializing [Modules] Distribution: remote [Modules] Host updates: enabled [Modules] Module updates: enabled [Modules] Module install path: /home/<user>/.config/discord/0.0.19/modules [Modules] Module installed file path: /home/<user>/.config/discord/0.0.19/modules/installed.json [Modules] Module download path: /home/<user>/.config/discord/0.0.19/modules/pending [Modules] No updates to install [Modules] Checking for host updates. [Modules] Host is up to date. [Modules] Checking for module updates at https://discord.com/api/modules/stable/versions.json [Modules] No module updates available. Module ./ElectronTestRpc was not included. [Modules] Starting to install discord_krisp... [Modules] Fetching discord_krisp@0 from https://discord.com/api/modules/stable/discord_krisp/0 [Modules] Streaming discord_krisp@0 to /home/<user>/.config/discord/0.0.19/modules/pending/discord_krisp-0.zip [Modules] Checking for host updates. Error downloading with electron net: HTTP Error: Status Code 403 Falling back to node net library.. Parent is shutting down, bye... ## The following fails [0] ~$ firejail /opt/discord/Discord Reading profile /etc/firejail/Discord.profile Reading profile /etc/firejail/discord-common.profile Reading profile /etc/firejail/electron.profile Reading profile /etc/firejail/disable-common.inc Reading profile /etc/firejail/disable-devel.inc Reading profile /etc/firejail/disable-exec.inc Reading profile /etc/firejail/disable-programs.inc Reading profile /etc/firejail/whitelist-common.inc Reading profile /etc/firejail/whitelist-var-common.inc Parent pid 1222565, child pid 1222566 Warning: skipping Discord for private /opt Private /opt installed in 0.07 ms 15 programs installed in 38.31 ms Warning: skipping alternatives for private /etc Warning: skipping crypto-policies for private /etc Warning: skipping ld.so.preload for private /etc Warning: skipping password for private /etc Warning: skipping pki for private /etc Private /etc installed in 28.46 ms Warning: skipping alternatives for private /usr/etc Warning: skipping ca-certificates for private /usr/etc Warning: skipping crypto-policies for private /usr/etc Warning: skipping fonts for private /usr/etc Warning: skipping group for private /usr/etc Warning: skipping ld.so.cache for private /usr/etc Warning: skipping ld.so.preload for private /usr/etc Warning: skipping localtime for private /usr/etc Warning: skipping login.defs for private /usr/etc Warning: skipping machine-id for private /usr/etc Warning: skipping password for private /usr/etc Warning: skipping pki for private /usr/etc Warning: skipping pulse for private /usr/etc Warning: skipping resolv.conf for private /usr/etc Warning: skipping ssl for private /usr/etc Private /usr/etc installed in 0.21 ms Warning: /sbin directory link was not blacklisted Warning: /usr/sbin directory link was not blacklisted Warning: not remounting /run/user/1000/gvfs Child process initialized in 170.56 ms Error: no suitable /opt/discord/Discord executable found Parent is shutting down, bye... # Now we try with the script stub [0] ~$ sudo mv /usr/local/bin/{.,}discord [0] ~$ which discord /usr/local/bin/discord # Had an odd case in between where running `discord` did not run the script [0] ~$ hash -r [0] ~$ which discord /usr/local/bin/discord # The following fails - I'm wondering if this is somehow related to the earlier # fail case [0] ~$ discord Reading profile /etc/firejail/discord.profile Reading profile /etc/firejail/discord-common.profile Reading profile /etc/firejail/electron.profile Reading profile /etc/firejail/disable-common.inc Reading profile /etc/firejail/disable-devel.inc Reading profile /etc/firejail/disable-exec.inc Reading profile /etc/firejail/disable-programs.inc Reading profile /etc/firejail/whitelist-common.inc Reading profile /etc/firejail/whitelist-var-common.inc Parent pid 1223314, child pid 1223315 Private /opt installed in 397.17 ms 16 programs installed in 45.69 ms Warning: skipping alternatives for private /etc Warning: skipping crypto-policies for private /etc Warning: skipping ld.so.preload for private /etc Warning: skipping password for private /etc Warning: skipping pki for private /etc Private /etc installed in 36.88 ms Warning: skipping alternatives for private /usr/etc Warning: skipping ca-certificates for private /usr/etc Warning: skipping crypto-policies for private /usr/etc Warning: skipping fonts for private /usr/etc Warning: skipping group for private /usr/etc Warning: skipping ld.so.cache for private /usr/etc Warning: skipping ld.so.preload for private /usr/etc Warning: skipping localtime for private /usr/etc Warning: skipping login.defs for private /usr/etc Warning: skipping machine-id for private /usr/etc Warning: skipping password for private /usr/etc Warning: skipping pki for private /usr/etc Warning: skipping pulse for private /usr/etc Warning: skipping resolv.conf for private /usr/etc Warning: skipping ssl for private /usr/etc Private /usr/etc installed in 0.19 ms Warning: /sbin directory link was not blacklisted Warning: /usr/sbin directory link was not blacklisted Warning: not remounting /run/user/1000/gvfs Child process initialized in 571.03 ms /usr/bin/discord: line 3: /usr/bin/firejail: No such file or directory Parent is shutting down, bye... ``` </details> We can improve the profiles to catch these kind of situations and avoid future issues/questions from our users. I'll be opening a PR on this shortly. But we need to look at implementing a safe and reliable way to open URLs in whatever web browser the user is using, which is currently still broken. This relates to the below and probably many others: - #3881 - #5160 - #5364
Author
Owner

@rahlhar commented on GitHub (Sep 14, 2022):

Some reference background

$ uname -srm
Linux 5.18.10-arch1-1 x86_64
$ firejail --version
firejail version 0.9.70
...
$ pacman -Ss discord
community/discord 0.0.19-1 [installed]
...

The Arch package installs the binary at /opt/discord/Discord and provides
a symlink at /usr/bin/discord.

Using firejail discord explicitly after installation behaves as expected, as
seen in the paste that glitsj16 included.

The problem arose when creating a shell script to make sure discord is always
run in this fashion.

#!/bin/sh
# /usr/local/bin/discord
# NOTE: This did not work
/usr/bin/firejail /usr/bin/discord

Solution

The solution for me at time of writing was to force use of the "discord" profile,
rather than "Discord", and to call the binary directly.
Thanks to glitsj16 et al at #firejail.

#!/bin/sh
# /usr/local/bin/discord
/usr/bin/firejail --profile=discord /opt/discord/Discord

I further asked how I might monitor the discord app to get a better idea of
what it gets up to. glitsj16 advised the following:

  1. use firejail's --trace[=filename] option
  2. additionally use firejail's tracelog option; this is disabled by
    default in /etc/firejail/firejail.config so you'd need to enable it there +
    add --tracelog (CLI) or tracelog to your discord profile (i think the latter
    would be easier if you want to play with/test different options)
  3. do some apparmor stuff cfr. https://wiki.archlinux.org/title/AppArmor#Get_desktop_notification_on_DENIED_actions;
    that's anice way to get notified on firejail sandbox violations in general

As yet, I have only tried the first suggestion. Unfortunately this lead to
another, perhaps related problem. Unless it becomes clear that this should be
filed as a separate issue, I'll post here.

Trying suggestion 1. simply results in a hang before the child process gets
spawned; after this line is output, nothing happens:

Child process initialized in ###.## ms

To be absolutely certain, I also tested without using the script stub, but the
problem stands.
Also, the trace file is created, but never written to.

It was suggested to try with --ignore=private-bin but it had no effect.

<!-- gh-comment-id:1246374433 --> @rahlhar commented on GitHub (Sep 14, 2022): ### Some reference background ```sh $ uname -srm Linux 5.18.10-arch1-1 x86_64 $ firejail --version firejail version 0.9.70 ... $ pacman -Ss discord community/discord 0.0.19-1 [installed] ... ``` The `Arch` package installs the binary at `/opt/discord/Discord` and provides a symlink at `/usr/bin/discord`. Using `firejail discord` explicitly after installation behaves as expected, as seen in the paste that glitsj16 included. The problem arose when creating a shell script to make sure `discord` is always run in this fashion. ```sh #!/bin/sh # /usr/local/bin/discord # NOTE: This did not work /usr/bin/firejail /usr/bin/discord ``` ### Solution The solution for me at time of writing was to force use of the "discord" profile, rather than "Discord", and to call the binary directly. Thanks to glitsj16 et al at `#firejail`. ```sh #!/bin/sh # /usr/local/bin/discord /usr/bin/firejail --profile=discord /opt/discord/Discord ``` ### Another (related?) problem I further asked how I might monitor the `discord` app to get a better idea of what it gets up to. glitsj16 advised the following: 1. use firejail's `--trace[=filename]` option 2. additionally use firejail's `tracelog` option; this is disabled by default in /etc/firejail/firejail.config so you'd need to enable it there + add --tracelog (CLI) or tracelog to your discord profile (i think the latter would be easier if you want to play with/test different options) 3. do some apparmor stuff cfr. https://wiki.archlinux.org/title/AppArmor#Get_desktop_notification_on_DENIED_actions; that's anice way to get notified on firejail sandbox violations in general As yet, I have only tried the first suggestion. Unfortunately this lead to another, perhaps related problem. Unless it becomes clear that this should be filed as a separate issue, I'll post here. Trying suggestion `1.` simply results in a hang before the child process gets spawned; after this line is output, nothing happens: ``` Child process initialized in ###.## ms ``` To be absolutely certain, I also tested without using the script stub, but the problem stands. Also, the trace file is created, but never written to. It was suggested to try with `--ignore=private-bin` but it had no effect.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/firejail#2973
No description provided.