The Linux Agent Can Now Run Without Root ​

September 26, 2026 · InfraScout Team

An agent that runs as root hands every assessment command root's reach. For many hosts that's fine, since an audit needs to read what an administrator can read. On others, "the assessment tool runs as root" is the line in the security review that stalls the rollout. Linux hosts now have the same answer Windows hosts got with gMSA support: the agent's service can run under a much smaller account, and you can move an existing host there and back without re-enrolling it.

An unprivileged account, and no way back up ​

On systemd hosts the agent can run as a dedicated infrascout system user instead of root. Commands the AI runs on that host — shell commands, journal queries, log reads — run as that user, so anything that needs root fails with a permission error rather than succeeding quietly.

The stronger guarantee is that those commands cannot climb back up. The service runs with Linux's no-new-privileges flag set, which the kernel enforces on every process the agent starts. A command that tries sudo, su, pkexec or any other setuid program is refused, even if someone later grants the account rights to use them. The boundary does not depend on the AI choosing well. It holds for any command the agent runs.

Two tiers, one honest trade-off ​

Both tiers join the account to the host's journal and log-reader groups where they exist, so journal queries and the usual system logs keep working.

standard stops there, and it's the tier to use by default. auditor adds one Linux capability that lets the agent read every file on the host. You need that for configuration and security-log reviews: /var/log/secure, /etc/sudoers.d, the audit log.

Be clear-eyed about auditor. Reading every file includes /etc/shadow, SSH host keys and root's own private keys, and on a host where root has a reusable credential that is as good as root. Choose it where an assessment needs those files, not as a default. The Agent Details view shows which hosts can read everything: a Reads All Files badge appears on any Linux host whose agent can, root or auditor, and is missing on a standard one.

Migrate in place, roll back in one command ​

An enrolled host moves with one command, keeping its identity and its certificate:

bash
sudo /opt/infrascout-agent/agent-linux-amd64 service set-account --tier standard --channel prod

Before it changes anything, the command checks that the binary and every directory above it are owned by root and writable by no one else, and it refuses an existing infrascout account that already has group memberships it should not have. A refused check changes nothing and tells you what to fix. --root reverses the move. For new hosts, the Linux rollout script takes --least-privilege standard and the Ansible playbook takes infrascout_least_privilege, so a fleet can go straight into the mode at install time.

Updates keep arriving. The agent no longer owns its own binary, so it cannot replace it. Instead it asks a small root helper, which it can trigger but not steer: the agent passes only a version number, and the helper fetches the checksum from the published release manifest, verifies the download, and refuses anything older than what is installed.

That last rule carries the main cost of the mode. A host running without root only ever updates forward, so rolling it back to an older version from Agent Updates is refused. It also loses the ability to start detached background processes, and it can't host container-based MCP servers. Everything else an assessment does carries on as before.

The mode is new. Pilot it on a few hosts, and check the first self-update on SELinux-enforcing ones, before you widen the rollout.

x86-64 agents run on older distributions again ​

The same release fixes a quieter problem. The x86-64 Linux agent was built against a recent C library and needed glibc 2.34, so it refused to start on RHEL 8, Debian 11, Ubuntu 20.04, SLES 15 and Amazon Linux 2. From version 0.34.0 every agent build is a single self-contained binary with no dependency on the host's C library, so those distributions work again. The ARM64 and MIPS builds already worked this way.

One side effect to know about: the agent's own lookups of user and host names now read DNS, /etc/hosts and /etc/passwd directly. Names that exist only in SSSD or another directory-backed name service aren't visible to those lookups. Commands the agent runs on your behalf, such as getent, still see everything.


More detail: Run the Linux Agent Without Root, Deploy on Linux and Fleet Rollout.

Questions or feedback? Reach us at info@infrascout.cloud.