mirror of
https://github.com/netblue30/firejail.git
synced 2026-05-15 14:16:14 -06:00
[GH-ISSUE #2624] firecfg does not detect all .desktop files for cleaning #1665
Labels
No labels
LTS merge
LTS merge
bug
bug
converted-to-discussion
doc-todo
documentation
duplicate
enhancement
file-transfer
firecfg
firejail-in-firejail
firetools
graphics
help wanted
information_old
installation
invalid
modif
moved
needinfo
networking
notabug
notourbug
old-version
overlayfs
packaging
profile-request
pull-request
question
question_old
removal
runtime-permissions
sandbox-ipc
security
stale
wiki
wiki
wontfix
wordpress
workaround
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/firejail#1665
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @rusty-snake on GitHub (Mar 28, 2019).
Original GitHub issue: https://github.com/netblue30/firejail/issues/2624
Firecfg can replace
DBusActivatable=truewithfalsein .desktop files (#1574), but does not recognize all .desktop files belonging to a programm.OS: Fedora Workstation 29 (GNOME)
Firejail: 0.9.57
Example where it occurs:
org.gnome.Builder.desktopgnome-builderorg.gnome.Logs.desktopgnome-logsorg.gnome.Maps.desktopgnome-mapsorg.gnome.Epiphany.desktopepiphanyorg.gnome.clocks.desktopgnome-clocksLooks like no
gnome-or a uppercase letter after theorg.gnome.is an issue. (I don't know how firecfg scan for .desktop files).Example where it not occurs:
org.gnome.gedit.desktopgeditorg.gnome.baobab.desktopbaobabca.desrt.dconf-editor.desktopdconf-editororg.gnome.Cheese.desktopcheeseAlsonautilus(org.gnome.Nautilus.desktop) is cleaned up, although it does not have a firejail profile.@rusty-snake commented on GitHub (Mar 28, 2019):
IMHO a good way to fix this is that firecfg scan in all .desktop files in /usr/share/applications for the Exec line.
@ghost commented on GitHub (Mar 28, 2019):
@rusty-snake Firecfg already does that, and it handles lower- and uppercase filenames. Also, nautilus does have a profile. I don't use firecfg but for fun I installed firejail from git master in an Arch Linux systemd-nspawn container. When running
sudo firecfg --debugI can't reproduce what you're seeing. Bothgeditandnautilusdesktop files in ~/.local/share/applications haveDBusActivatable=false. Have you tried to reproduce the issues with a more recent firejail version yet?@SkewedZeppelin commented on GitHub (Mar 28, 2019):
@glitsj16 I can reproduce the report exactly, it is indeed a problem.
I think I saw a similar issue long ago on Arch when it was first implemented, where it would ignore certain .desktops.
Even in the original implementation it was an issue https://github.com/netblue30/firejail/issues/1574#issuecomment-331872888
@rusty-snake commented on GitHub (Mar 29, 2019):
As I say I don't know how firecfg does that internaly (I can't C).
Uhh, yes, your right.
Yes for baobab, nautilus and gedit it works.
Not yet (later I wil do this with an git version). But I can't find an commit in https://github.com/netblue30/firejail/commits/master/src/firecfg/desktop_files.c that change there something.
@ghost commented on GitHub (Mar 29, 2019):
@rusty-snake Don't worry about it too much. @SkewedZeppelin can reproduce, so you found a bug. Nice find!
@rusty-snake commented on GitHub (Mar 29, 2019):
@glitsj16 just to complete: reproduced with
8e5ad20.@ghost commented on GitHub (Mar 30, 2019):
@rusty-snake I can reproduce now too (originally got the working/failing examples from your OP mixed-up as you pointed out). After some more testing I can only conclude that
firecfgseemspretty broken.There's more going wrong than the
DBusActivatableissue IMHO. Epiphany doesn't have that entree in its .desktop file (at least not in Arch Linux and upstream git master). Allthough firecfg reports finding /etc/firejail/epiphany.profile and creates the symlink, it doesn't create a .desktop file in ~/.local/share/applications. Furthermore, epiphany is reported to exists in /bin (which is incorrect, it's in /usr/bin) by theConfiguring symlinks ...part of the firecfg run, but isn't found (or reported as such) in theFixing desktop files ...part.The other applications you mentioned indeed fail because they don't make it thru the checks in desktop_files.c during execution of the
have_profilefunction. Which makes sense, there are in fact no profiles with those names (Builder, clocks, Logs, Maps). That's why org.gnome-logs.desktop works, and even org.gnome.Logs.desktop when you add Logs to firecfg.config and symlink the gnome-logs.profile to Logs in /etc/firejail.Unrelated but nonetheless problematic (at least to me as a non-firecfg user) is that
sudo firecfg --cleandoes NOT remove the .desktop files in ~/.local/share/applications it created. What happens if an upgrade changes the Exec=foo command? Or DBusActivatable=true is added? I'm marking this as a bug. Might attract attention from firecfg devs.@ghost commented on GitHub (Apr 2, 2019):
@rusty-snake Just pushed a temporary fix. Lets keep this open until a proper fix is available. Thanks again for reporting!
@rusty-snake commented on GitHub (Jan 24, 2020):
@glitsj16 If I read the desktop_file.c right, it doesn't search for Exec, it only checks the names.
Not only DBus cleaning is sometimes broken, also Exec cleaning (see #3179).
@ghost commented on GitHub (Jan 24, 2020):
@rusty-snake It is indeed. I'm collecting info to try to fix firecfg, but it will take a few days at least. Thanks for the input 👍 .
@rusty-snake commented on GitHub (Jan 24, 2020):
@glitsj16 I have written something in python, I have to test it and will post it tomorrow.
@rusty-snake commented on GitHub (Jan 25, 2020):
@glitsj16 https://gist.github.com/rusty-snake/3e4b8f8555e942d2964a181d4a5f64a0
@rusty-snake commented on GitHub (Jan 25, 2020):
Quick diff
firecfg:
firecfg.py:
@ghost commented on GitHub (Jan 25, 2020):
@rusty-snake I'll have to do some more testing but your python script seems to work fine. It's too bad that firecfg bugs haven't been getting the attention they need. Hopefully this will change soon.