Use when creating, revoking, or auditing Linux users, groups, SSH keys, sudo/wheel access, PAM settings, SELinux user mappings, or file permissions. Use linux-secrets for credential material and linux-server-hardening for broader host policy.
Use when creating, revoking, or auditing Linux users, groups, SSH keys, sudo/wheel access, PAM settings, SELinux user mappings, or file permissions. Use linux-secrets for credential material and linux-server-hardening for broader host policy.
Two-family skill. useradd/usermod/passwd, SSH keys, and /etc/sudoers.d/
work the same on both. The notable differences are the admin group and a
couple of RHEL-only auth/SELinux layers. Body uses Debian/Ubuntu; substitute
per this matrix.
Audit requests default to read-only. Read access to account and permission state is required; editing users, groups, keys, PAM, sudoers, SELinux mappings, or files requires explicit authority. Never expose private keys or revoke the last tested administrator.
Degraded mode
Without privileged access, report observable state and exact root-level checks as not assessed. Without a safe second login or console, stop before lockout-capable changes.
Decision rules
Choice
Action
Failure or risk avoided
Temporary privileged task
Use narrow sudo command rules with expiry
Permanent broad administration.
Suspected compromised key
Disable that key, preserve evidence, rotate dependants
Continued unauthorised access.
Account departure
Disable, inventory ownership/jobs, transfer, then remove
Orphaned data and services.
Worked example
To offboard a deployment user, record current groups, keys, processes, cron jobs, and owned files; disable login; verify the replacement automation identity; transfer required ownership; remove authorised keys; then confirm the account cannot authenticate while the service still deploys.
This skill is self-contained. Every command below is a standard tool on
both families (Debian/Ubuntu and RHEL); substitute the admin group and
RHEL-only auth/SELinux layers per the Distro support matrix above. The
sk-* scripts in the Optional fast path section are convenience
wrappers — never required.