VPS & Server audit fixes
System Updates: fixing all 4 checks
The system updates audit measures how far behind a host is: how many packages are pending and how many are security fixes, whether they install themselves, and whether a reboot is still owed.
No check in this audit needs root, so a skip here is always a package-manager problem rather than a permission one: a dnf, yum or zypper check-update that exits with an error, typically an unreachable repository or a lapsed subscription, reports SKIP instead of a count, and a host with none of apt, dnf, yum, zypper or apk skips Pending Updates outright. Alpine skips Automatic Security Updates by design, because it ships no unattended-upgrade daemon at all.
Transcribed from the vps-security-system-updates audit script. For what the audit covers rather than how to fix it, see the System Updates checklist.
Find your finding
Listed in the order the audit runs them. Take the check name from the third field of the result line and open its page.
Pending Updates
SoonChecks for pending package updates, flagging security updates
HighNo root4 resultsAutomatic Security Updates
SoonChecks whether automatic security updates are configured and enabled
MediumNo root4 resultsKernel Up To Date
SoonCompares the running kernel against the latest installed kernel
MediumNo root3 resultsReboot Required
SoonChecks whether a reboot is pending to load updated kernel/libraries
MediumNo root3 results
How the System Updates audit reads your server
Every check in this audit runs after the same preamble, and several of its results only make sense once you know what that preamble could and could not see.
None need root.
A SKIP is never a pass
A skipped check verified nothing at all. The most common cause is privilege: no check in this audit needs root, so a skip here means something else was missing. Before every run, each script works out which of four privilege modes it is in.
| Mode | How it is reached | What it means for your results |
|---|---|---|
root | The audit runs as UID 0. | Every privileged branch runs directly. No check skips for lack of permission. |
nopass | sudo -n true succeeds, so the account has passwordless sudo. | Privileged commands run through sudo -n. |
pass | A sudo password was supplied in the CtrlOps audit settings and accepted. | Privileged commands run through sudo -S. |
none | None of the above worked. | CAN_ROOT=0. Every privileged branch returns SKIP with a "Need root" message rather than guessing. |
If many checks skip with a “need root” message, run the audit as root, grant the audit account sudo (with or without NOPASSWD), or supply the sudo password in the CtrlOps audit settings.
System Updates questions
Run all 4 System Updates checks, in one click
CtrlOps runs this audit over your existing SSH connection - no agents, no scripts to manage. $7/user/month after a 1 month free trial - no credit card required.
✓ Start instantly·✓ No credit card·✓ No sneaky autorenewals