How To Become Root In Linux

How To Become Root In Linux

Reading time1 min
#Linux#Security#Sysadmin#root#sudo#privileges

Mastering Root Access in Linux: Navigating Privileges, Risks, and Best Practices

Escalating to root in Linux is inevitable for real operations—system recovery, kernel module installation, or even a quick chmod in /usr/local/bin. But elevated access widens your blast radius. Here’s the real workflow.


What's at Stake When Running as root

The root user (UID 0) bypasses all discretionary access controls. Processes running as root can overwrite any file, modify kernel config, kill any process—including PID 1. In an incident, root can bring a system back—or take it down for good.

Common root-required tasks:

  • Installing system-wide packages (apt install, yum update)
  • Editing /etc/ssh/sshd_config
  • Mounting partitions, updating kernel/initramfs
  • Managing systemd services

Mistakes are unforgiving:
rm -rf / --no-preserve-root destroys a filesystem in seconds.
Unpatched software running as root is a direct privilege-escalation path for attackers.


Anatomy of Linux Privilege Escalation

First, recognize the fundamental user model:

  • Regular users: Typically UID 1000+. Restricted filesystem/process access.
  • root: UID 0. No restrictions at OS level.

Privilege escalation should be targeted and temporary.


Three Approaches to Root Access

1. su – Substitute User

Older yet still present on most distributions.

su -
  • - loads root's full environment (HOME=/root, root’s PATH).
  • Prompts for the root password.

Example:

$ su -
Password:
root@host:~# whoami
root

Pros: Full root shell, complete environment, no dependency on sudoers.
Cons: Requires knowing the root password; on Ubuntu (22.04+), root account is locked by default unless explicitly enabled:

su -
Password:
su: Authentication failure

Note: On hardened systems, su may be disabled via PAM, e.g., /etc/pam.d/su.


2. sudo – Run as root (Preferred in Production)

Standard on nearly all modern distributions (Ubuntu, Debian, RHEL, Fedora).

sudo apt install nginx
  • Prompts for your user password.
  • Enforces /etc/sudoers policy.
  • Logs to /var/log/auth.log (/var/log/secure on RHEL/Fedora).

To get a persistent root shell:

sudo -i      # Spawns a login shell as root
sudo su -    # Equivalent, but relies on both sudo and su configurations

Pros: Auditable actions, supports least-privilege principle, root password need not be shared.
Cons: Misconfigured sudoers policy can create privilege escalation vectors.

Known issue:
Misuse of sudo su - creates dual logs (sudo event, then su), which complicates auditing.


3. Direct Login as root (Rare and Risky)

ssh root@10.0.0.5
  • Disabled by default on Ubuntu (PermitRootLogin prohibit-password) and increasingly with other distros.
  • Should only be enabled for provisioning workflows or certain recovery scenarios.
  • Exposes maximum attack surface.

Side effect: Direct root login bypasses user-specific hardening (no PAM TOTP, sometimes no audit rules).


Configuring sudo the Right Way

If $USER isn't in the sudoers group (/etc/group: sudo or wheel), add with:

usermod -aG sudo alice   # Debian/Ubuntu
usermod -aG wheel alice  # RHEL/Fedora/CentOS

Visudo is mandatory to avoid syntax errors (which can lock out all sudo access):

sudo visudo

Example rule:

alice    ALL=(ALL) NOPASSWD:/usr/bin/systemctl restart nginx

^ Grants alice passwordless restart access, limited risk footprint.

Non-obvious tip: Restricting commands in sudoers with full path and no wildcards avoids lateral escalation.


Routine Practices for Safe Root Usage

  • Always prefer sudo for individual commands; persistent root shells (sudo -i) only for complex, chained operations.

  • Close privileged shells immediately after tasks—a stray Ctrl-C in the wrong tmux pane is all it takes.

  • Monitor /var/log/auth.log for unexpected sudo or su events.
    Example audit entry:

    Jun 13 12:43:15 app01 sudo:    alice : TTY=pts/0 ; PWD=/home/alice ; USER=root ; COMMAND=/bin/ls /root
    
  • Don't pipe or execute remote scripts as root blindly. Review content before:

    curl -s https://someurl/install.sh | sudo bash
    

    ^ This is a common supply-chain attack vector.


Table: Comparing Root Access Methods

MethodUse CaseProsCons
su -Emergency root accessFull root profile, no sudoers neededNeeds root password, poor audit
sudo <cmd>Daily admin tasksLogs actions, least-privilegeNeeds proper sudoers, not atomic
sudo -iMulti-step operationsRoot shell with audit trailRisks stray commands or scripts
Direct root loginCloud/provisioning/repairEnables recovery if all else failsMax risk, disables user mitigation

Risks: One Step from Disaster

  • Running sudo rm -rf / is disastrous with no safeguards.

  • Editing /etc/sudoers without visudo: syntax errors can lock out all admin users—rescue mode needed.

  • Sudo misconfiguration:

    %devops ALL=(ALL) NOPASSWD: ALL
    

    ^ Grants full passwordless control; attackers only need to compromise one user in this group.

  • Daemons running as root—if not secured—can be leveraged in local privilege escalation (CVE-2021-3156, "Baron Samedit").


The Takeaway

Root should never be the default.
Privilege escalation must be intentional, temporary, and auditable.
Prefer sudo for routine administration; restrict su and direct root login. Harden /etc/sudoers with least privilege and explicit command whitelists.

If you can’t explain why you need to be root for a task, you probably shouldn’t be.


Further reading:

  • man 8 sudo
  • man 5 sudoers
  • /var/log/auth.log for real-world auditing

Gotcha: Some tools (Docker, certain legacy scripts) invoke root even if not obvious. Always verify the effective user with whoami or id inside scripts.

Ready to operate safely—don’t learn the hard way.