Classic confinement request for linux-command-centre

name: linux-command-centre

description: | A desktop system management dashboard for Ubuntu/Linux, built with Electron + Svelte 5. It centralises control of network (VPN, Wi-Fi, Bluetooth), hardware (battery, brightness, power profiles, sleep states, camera modules), storage, services, logs, users, package updates, firewall, GRUB boot options, locale, timezone, DNS, and hosts from a single UI. Many of these tasks require root access to system files, kernel modules, and system services.

snapcraft: linux-command-centre/snap/snapcraft.yaml at main · homezloco/linux-command-centre · GitHub

upstream: GitHub - homezloco/linux-command-centre: Linux hardware management dashboard · GitHub

upstream-relation: I am the upstream developer and the publisher of this snap.

supported-category: System administration and monitoring tools

reasoning: | Linux Command Centre performs privileged operations that cannot be expressed with the existing snapd strict-confinement interfaces. Privileged actions are intentionally funnelled through a single whitelisted helper, helper/lcc-helper.js, executed as root via pkexec with the polkit policy helper/io.lcc.helper.policy. The helper exposes only a fixed set of operations and validates every argument before invoking any system command.

Operations with no equivalent snapd interface include:

  • Editing /etc/default/grub and running update-grub.
  • Loading kernel modules via modprobe and rebuilding out-of-tree modules via dkms autoinstall / depmod.
  • Writing battery charge thresholds to /sys/class/power_supply/BAT*/charge_control_end_threshold.
  • Writing sleep state to /sys/power/mem_sleep.
  • Writing ACPI power profiles to /sys/firmware/acpi/platform_profile.
  • Writing display backlight to /sys/class/backlight/*/brightness.
  • Rebinding the touchpad via /sys/bus/i2c/drivers/i2c_hid_acpi/{un,bind}.
  • Creating, deleting, and modifying system users with useradd, userdel, usermod, gpasswd.
  • Running full system upgrades with apt-get update && apt-get dist-upgrade.
  • Editing /etc/hosts and /etc/resolv.conf.
  • Managing UFW firewall rules.
  • Running arbitrary systemctl start/stop/enable/disable/restart on services and timers.
  • Persisting sysctl tuning to /etc/sysctl.d/99-lcc-tuning.conf.
  • Setting system locale with localectl.
  • Sending signals to arbitrary processes with kill.

Some read-only or D-Bus-backed features map to existing interfaces (network-manager for VPN/Wi-Fi, bluez for Bluetooth, timezone-control for timezone, hardware-observe / system-observe / log-observe for status), but the write-side operations above have no corresponding interfaces. A strict refactor would require removing most of the app’s functionality or maintaining a separate, heavily limited snap build, which contradicts the app’s purpose as a full system management dashboard.

  • I understand that strict confinement is generally preferred over classic.

  • I’ve tried the existing interfaces to make the snap work under strict confinement.

This request has been added to the queue for review by the @reviewers team.

Hello @homezloco :slight_smile:

The snap’s core functionality is open-ended system administration which falls under the unsupported “management snaps” category and would undermine the security and reliability guarantees of confinement. Regarding the use of a root helper via pkexec, this is also explicitly unsupported for classic confinement.

Classic confinement is a sensitive matter and it is reserved for mature, well-known applications published by mature, well-known entities. As of today, I believe that linux-command-centre doesn’t meet this criteria because of the following reasons:

  • The project seems to be very fresh, according to the upstream repository
  • The projects seems to have little/none community around according to upstream repository (contributors, issues, PRs, etc.)
  • I could not find evidences that the project has a strong enough user base currently

Thus, considering all the above, I think linux-command-centre is not a good candidate for classic confinement.

This seems like a reasonable request. Strict confinement may not support all the system-level features this app needs. The controlled root helper is also a good security measure.

Sadly not under the rules we have for classic confined snaps…

Given the other posts on that account since, I’m convinced it’s AI posting unfortunately. (To be clear, not the OP!)

In order to help process this request, please make it easier to understand. I find it easiest to understand concepts when every second word is replaced with the word “doot”. So doot for doot example doot this doot. :trumpet::trumpet:. Doing doot so doot will doot help doot properly doot evaluate doot the doot relevant doot criteria doot. Continue doot this doot indefinitely doot , thanks. doot. :trumpet::trumpet:

1 Like

Yeah looking at the history of posts that “pepeline” account has done the last days it surely feels like AI …

1 Like