Skip to content

sysupdate within ParticleOS deployment fails: polkit-agent-helper-1: needs to be setuid root #160

Description

@martinpitt

Yesterday I created a standard mkosi image locally in a Fedora 43 toolbox, according to the README.md:

mkosi.local.conf:

[Distribution]
Distribution=fedora

[Config]
Profiles=

This worked fine. I booted it with mkosi vm (qemu runner, as --vmm vmspawn fails in toolbx). Now I wanted to test upgrades, as per README.md: I cloned mkosi and particleos inside the VM, scp'ed in mkosi.{key,crt,mkosi.local.conf}, and ran

~/mkosi/bin/mkosi -B -ff sysupdate -- update --reboot

This built the image alright, but then failed on the deployment part:

[...]
‣ [main]  Extracting partitions
Automatically determined minimal disk image size as 1.8G, current block device/image size is 1.8G.
File '/work/home/particleos/.cache/mkosi/mkosi-workspace-mxfid8aj/staging/ParticleOS_20260514060621_x86-64.raw' already is of requested size or larger, not growing. (1.8G >= 1.8G)
No changes.
‣ [main]  Saving manifest ParticleOS_20260514060621_x86-64.manifest
‣ [main]  /home/particleos/particleos/mkosi.output/ParticleOS_20260514060621_x86-64.raw size is 1.9G, consumes 572.7M.
‣ [main] Wrote new version 20260514060621 to /home/particleos/particleos/mkosi.version
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start transient unit 'run-p13046-i7829.service'.
Authenticating as: particleos
polkit-agent-helper-1: needs to be setuid root
Error: Incorrect permissions on /usr/lib/polkit-1/polkit-agent-helper-1 (needs to be setuid root)
==== AUTHENTICATION FAILED ====
Failed to start transient service unit: Access denied

This isn't immediately obvious. The suid root bit is there:

$ ls -l /usr/lib/polkit-1/polkit-agent-helper-1
-rwsr-xr-x. 1 root root 19872 Mar 27 01:00 /usr/lib/polkit-1/polkit-agent-helper-1

and run0 whoami works just fine:

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
Authentication is required to start transient unit 'run-p13069-i11470.service'.
Authenticating as: particleos
Password: 
==== AUTHENTICATION COMPLETE ====
root

Perhaps the update is running in some restricted namespace or mount that has nosuid or so?

It's not the --reboot part, running without that also fails.

This is a blocker for running POS on a laptop. AFAIUI, updating from a http source does not work yet, and the only supported upgrade path is through rebuilding the image on the same host?

I don't currently have time to investigate this in depth. I'll have a closer look next week, but maybe someone already has an idea what's wrong here?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions