Linux Applications

Manage Permissions of Flatpak Apps Using Flatseal

Flatseal is a free and open source graphical application that can be used to manage permissions of “Flatpak” applications or packages. Flatpak is a relatively new packaging format that installs applications in confined sandboxes or containers in Linux. This mechanism isolates installed applications from the rest of the Linux file system. All dependencies and libraries needed to run these applications also have limited access (except for some core global libraries needed by the main Flatpak system package). System wide access to software and hardware components is only available through a granular permission control system, bringing an additional layer of security to the Linux desktop.

If you have used Android or iOS smartphones, you might have managed permissions for individual applications at some point. Flatpak permissions are based on a similar idea where users are given some control over permission handling.

Main Features of Flatseal

Applications installed by flatpak need specific permissions to run. You are notified about required permissions while installing a flatpak package from the command line. If a flatpak package is installed in your Linux system, permissions for it can be managed later using command line options. Flatseal allows you to manage these permissions using a graphical interface.

Flatseal can manage system wide or global permissions for all flatpak packages installed in your Linux system or you can use it to modify specific permissions of individual applications. It also features a reset button, which can be used to revert permissions to stock settings in case you click on a wrong toggle or modify a wrong permission.

Do note that disabling bare minimum permissions required by an application can break its functionality, so make sure you evaluate each permissions manually when using Flatseal.

Installing Flatseal in Linux

You can install Flatseal in all major Linux distributions from the Flathub store. To do so, you will first need to add the main Flathub repository in your Linux system.

In Ubuntu, you can run the following commands to add the main flathub repository:

$ sudo apt install flatpak

$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Logout and re-login into your Ubuntu system to finish the installation. To add the main repository in other Linux distributions, follow the official setup guide available here.

Once you have successfully added the main repository, run the following command to install Flatseal:

$ flatpak install flathub com.github.tchx84.Flatseal

You can also find these installation instructions on the Flatseal listing on the Flathub store (scroll to the bottom of the page).

Using Flatseal to Manage Permissions of Flatpak Applications

Launch Flatseal from the main menu of your Linux distribution, you should see a layout similar to this:

The “All Applications” tab highlighted above shows global or system wide permissions for all Flatpak packages installed in your Linux system. The right hand side application area shows Flatpak build details and lists toggles for all possible permissions.

These permissions are neatly categorized into different headings. You can find brief details about these headings below:

  • Share: Network communication and network sharing access permissions.
  • Socket: Lists permissions related to sockets exposed to the application. These permissions are needed by applications to manage visible windows, sound servers, printing services, and so on.
  • Devices: Permissions for accessing devices like GPU, RAM module, external USB devices, virtualization hardware, and so on.
  • Allow: Permissions for certain syscalls and shared memory.
  • Filesystem: Permissions for file system read and write access.
  • Persistent: Permissions for allowing applications to have persistent and isolated spaces in the file system.
  • Environment: Permissions for managing environment variables.
  • System Bus: Permissions for managing communication with background system services.
  • Session Bus: Permissions for services invoked in current login session.
  • Portals: Permissions for allowing applications to use and access webcam, microphone, speakers, geolocation and so on.

You can read more about these permissions on official Flatseal documentation.

You can switch to individual applications by clicking on the application name on the left column, as shown in the screenshot below:

To change a permission, simply click on your desired toggle button in the right hand side area.

An icon in front of the toggle button will be shown for any permission you have changed. Here is how it looks:

You can manually revert the changes for each permission you have changed by clicking on the toggle buttons again. To revert all changes you have made for a particular application or system wide Flatpak permissions, click on the “Reset” button located on the top right corner, as shown in the screenshot below:

Some linux distributions ship with a centralized software center that can be used to download applications. These software stores may have built-in Flatpak integration. You can click on the “Show Details” button to view a Flatpak application listing in such app stores.

To search all Flatpak applications in Flatseal, click on the search bar located on the top left corner, as shown in the screenshot below:

For any further information on Flatseal, you can browse official documentation available here.

Conclusion

Flatpak package integration is now available in all major Linux distributions. However, managing permissions from the command line can be a little difficult, especially when you have installed a lot of Flatpak packages from the Flathub store. Flatseal makes it easy to find all such applications at one place and can be used to manage their permissions from a nice graphical interface.

About the author

Nitesh Kumar

I am a freelancer software developer and content writer who loves Linux, open source software and the free software community.