Quick answer

SUID (set user ID) is a permission bit that makes an executable run with the privileges of its owner rather than the user who launched it. A SUID-root binary runs as root for anyone who executes it — which is exactly why an abusable one is a classic privilege-escalation path.

What is SUID (set user ID)?#

When the SUID bit is set on an executable, the process runs with the file owner's effective UID. In ls -l it shows as an s in the owner-execute position, e.g. -rwsr-xr-x. Legitimately, this lets unprivileged users perform privileged actions safely (e.g. passwd updating /etc/shadow).

Why LinPEAS checks suid#

LinPEAS lists SUID (and SGID) binaries and cross-references them against known abuse techniques. If a SUID-root binary can be made to run arbitrary commands, read/write arbitrary files, or spawn a shell, it becomes a root escalation — a textbook Linux privilege-escalation vector.

What a normal configuration looks like#

A base system has a known set of SUID-root binaries: passwd, sudo, su, mount, ping and a few others. These are expected. The risk comes from non-standard SUID binaries or standard ones with known abuse paths.

Why it can be security-sensitive#

Custom SUID scripts/binaries, or standard tools that can break out (many listed on GTFOBins — find, nmap (old), vim, bash with -p, cp, tar, etc.), let a normal user execute code as root. A SUID binary that calls another program by relative name can also be hijacked via PATH.

From highlight to verdict

Understanding the concept tells you whether a LinPEAS highlight is a real problem here. The tool flags candidates; you confirm exploitability in context, and only act where authorised.

How to check it manually#

Run these read-only commands to inspect this area yourself and validate what LinPEAS reports:

Find SUID binaries
find / -perm -4000 -type f 2>/dev/null
Show details
ls -l $(find / -perm -4000 -type f 2>/dev/null)
Compare against a known-good baseline
find / -perm -4000 -type f 2>/dev/null | sort > suid.txt

Defensive remediation#

  • Remove the SUID bit from anything that doesn't need it: chmod u-s <file>.
  • Never set SUID on shell scripts or on interpreters/tools that can spawn shells.
  • Keep a baseline of expected SUID binaries and alert on changes.
  • Prefer Linux capabilities or sudo rules over broad SUID where possible.

Sources & references

  1. HackTricks: Linux privilege escalation
  2. GTFOBins — abuse techniques for standard binaries
  3. PEASS-ng repository — reviewed 20260908-dffb9496