evilsocket / opensnitch

OpenSnitch is a GNU/Linux interactive application firewall inspired by Little Snitch.
GNU General Public License v3.0
9.86k stars 486 forks source link

Autostart folder getting root permissions with rpm #1068

Closed sebastianelsner closed 7 months ago

sebastianelsner commented 7 months ago

Hello,

Problem: I just installed the latest release of opensnitch on my Fedora 39 via the Release rpms. The software is working well, but the rpm installer made my users /home/xxx/.config/autostart folder belong to root. This results in a problem where programs like "Gnome Tweaks" cannot write to it any more and crash.

Solution: Change the rpm spec file to not include the autostart file. I dont think its possible to give it another user in there?

Regards

Sebastian

gustavo-iniguez-goya commented 7 months ago

Noted @sebastianelsner , thank you for report. I'll review it.

gustavo-iniguez-goya commented 7 months ago

Tested on OpenSuse TumbleWeed, as well as on Fedora 39. In both cases the ownership of ~/.config/autostart/ is not changed to root. There must be a particular condition that changes it.

gustavo-iniguez-goya commented 7 months ago

Reproduced. The problem occurs when the directory /home/$user/.config/autostart/ does not exist.

sebastianelsner commented 7 months ago

Yes, indeed. I think this is what happened for me.

TriMoon commented 4 months ago

@gustavo-iniguez-goya , system-wide user services should be placed in /usr/lib/systemd/user or as last resort under /etc/systemd/user and not under the user's home dir...

Do note however that those services should be real systemd-service-units and not XDG-Autostart "desktop" files...

gustavo-iniguez-goya commented 4 months ago

hey @TriMoon ,

In this case it's not a systemd service, it's the autolaunch of the GUI when a user starts a new session.

TriMoon commented 4 months ago

@gustavo-iniguez-goya

In this case it's not a systemd service, it's the autolaunch of the GUI when a user starts a new session.

Yes i know that's why you need to put it under the user subdir instead of the system. Note the last part of the dir's i mentioned :wink:

And yes, you need to translate the XDG-Autostart desktop file yourself into a proper systemd service, instead of relying on systemd to auto generate it for you as it does by default for that kind... (Use systemctl to show the generated version to help you in translating)

systemd services under the user dir in the global/system tree are only run when a user session is started eg, when any user logs in. So it might need some tweaking with After= keywords.

It's unfortunate that most info on the internet shows user services under the user's homedir, but those are PER-User, while what i mention is system wide for ALL users :wink:

Most apps installed via a user are only relevant for that user, so the XDG-Autostart road is best fit for them, but in this case opensnitch GUI is better fit to be configured to run for ALL users when they login, that's why the diff i suggest.

[!NOTE] This page might be of interest to you also: Units managed by the user service manager

gustavo-iniguez-goya commented 4 months ago

thank you for the links @TriMoon . Actually I've only played once with systemd user services, but how common are they on the Desktop Environments? just out of curiosity, because as far as I can tell all the distros I've tried are using .config/autostart or /etc/xdg/ to launch user applications.

The other problem that comes to mind is what to do on non-systemd based systems, like Devuan or Debian when usng sysv. Right now the autostart the GUI after login feature works an all systems (from ubuntu16/mint 19 to mint 21.3/f39/etc).

By the way, we can discuss these ideas on the Development discussion forum, feel free to open new topics! at least that way they'll be documented.