Learning path
Linux System Administration learning path: everything to study, topic by topic
Vendor-neutral Linux administration assessment covering system fundamentals and software, storage, services and networking, security and access control, shell scripting, containers and configuration automation, and systematic troubleshooting. Supports CompTIA Linux+, RHCSA and RHCE preparation.
Short answer
To learn Linux System Administration, work through 5 modules and 51 topics in the order they build on each other. It starts with System Fundamentals & Software, then moves on to Storage, Services & Networking and Security & Access. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · System Fundamentals & Software9 topics
Linux Fundamentals & Boot Process
Linux architecture, distribution families, the Filesystem Hierarchy Standard, the boot sequence (firmware, bootloader, kernel, init), kernel modules, hardware discovery, and the shell environment
Objectives
- Describe the Linux boot sequence from firmware to the login prompt
- Locate system data by purpose in the FHS
- Inspect hardware and load or blacklist kernel modules
Key concepts
- Filesystem Hierarchy Standard
- boot sequence and GRUB2
- kernel modules (lsmod, modprobe)
- device discovery (lspci, lsusb, udev)
- distribution families (RHEL, Debian)
- /proc and /sys
- shell environment and variables
Files, Directories & Text Processing
Navigating and managing files and directories, hard and symbolic links, find, archiving and compression, redirection and pipes, grep, sed, awk, and editing with vi/vim and nano
Objectives
- Manage files and links safely and explain inode behavior
- Build pipelines that filter and transform text
- Archive, compress and restore data with tar
Key concepts
- ls, cp, mv, rm, mkdir
- hard vs symbolic links and inodes
- find and locate
- tar, gzip, bzip2, xz
- redirection and pipes
- grep, sed, awk, cut, sort
- vim essentials
Package Management & Building Software
Installing, updating and removing software with rpm/dnf/yum and dpkg/apt, repositories and GPG signature verification, shared libraries, and compiling from source with configure/make
Objectives
- Install, query and verify packages on RHEL-family and Debian-family systems
- Add a repository securely and pin or hold package versions
- Compile and install software from source and resolve missing library errors
Key concepts
- rpm and dnf
- dpkg and apt
- repository configuration
- GPG package verification
- shared libraries and ldconfig
- configure, make, make install
- dependency resolution
- Flatpak and Snap
System Configuration & Localization
Managing configuration under /etc, kernel parameters with sysctl, time synchronization with chrony, locale and timezone, logging with rsyslog and journald, log rotation, and environment and alternatives configuration
Objectives
- Persist kernel and system settings across reboots
- Configure time synchronization and logging retention
- Manage configuration drift between package defaults and local edits
Key concepts
- /etc configuration layout
- sysctl and /proc/sys
- chrony and timedatectl
- locale and timezone
- journald and rsyslog
- logrotate
- update-alternatives
- tuned profiles
RHEL Essential Tools, Documentation & Lab Discipline
RHCSA essentials at the shell: command syntax, redirection and pipes, grep with regular expressions, tar with gzip and bzip2, hard and symbolic links, ugo/rwx permissions, su and sudo login shells, and finding answers offline with man, info and /usr/share/doc
Objectives
- Find the right command and option using only local documentation
- Archive, restore and link files with exact command syntax
- Verify that every lab change survives a reboot
Key concepts
- man -k, mandb and info
- /usr/share/doc
- redirection 2>&1 and tee
- grep -E and regular expressions
- tar -czf and -cjf
- ln and ln -s
- su - vs su
- verify persistence after reboot
RHEL Software: Subscriptions, Repositories, DNF & Flatpak
Registering RHEL, BaseOS and AppStream repositories, writing .repo files, dnf install/remove/provides/history, GPG key import, rpm queries and verification, and Flatpak remotes and applications
Objectives
- Configure a local or remote RPM repository and install packages from it
- Find the package that owns a file and verify package integrity
- Add a Flatpak remote and manage Flatpak applications
Key concepts
- subscription-manager and rhc
- BaseOS and AppStream
- /etc/yum.repos.d/*.repo
- dnf provides and history
- rpm -qf, -V, --import
- reposync and createrepo_c
- flatpak remote-add and install
Boot Targets, Bootloader & Root Password Recovery
systemd targets (default, isolate, rescue, emergency), interrupting GRUB2 to edit the kernel line, rd.break root password reset with SELinux relabeling, persistent kernel arguments with grubby and grub2-mkconfig, and controlled shutdown and reboot
Objectives
- Boot manually into a chosen target and set the default target
- Reset a lost root password on an SELinux-enforcing system
- Make a kernel argument or GRUB timeout change persistent
Key concepts
- systemctl set-default and isolate
- systemd.unit=rescue.target
- rd.break and /sysroot
- touch /.autorelabel
- grubby --update-kernel
- grub2-mkconfig
- shutdown and systemctl reboot
File Operations: stat Timestamps, tail -f/-F, rsync Mirroring & Checksum Verification
File inspection and transfer details: stat output with access (atime), modify (mtime) and change (ctime) times and which operation updates each, following growing logs with tail -f versus tail -F across rotation, rsync archive mode with --delete to mirror a directory (trailing slash semantics, --dry-run, -z, -e ssh), and verifying integrity with sha256sum, md5sum and sha256sum -c against a published checksum file
Objectives
- Read stat output and explain which timestamp a given action changes
- Mirror a directory safely with rsync and preview the changes first
- Verify a downloaded file or backup against a checksum
Key concepts
- stat atime mtime ctime
- tail -f vs tail -F
- rsync -a --delete
- rsync trailing slash and --dry-run
- sha256sum -c
- checksum verification of downloads
Text Pipelines: sed -i Replacement, awk Aggregation & cut/sort/uniq Counting
Command-line text recipes for logs and config files: in-place bulk replacement across files with sed -i.bak and find or xargs, summing a delimited column with awk -F, '{s+=$3} END{print s}', counting distinct values with cut -d' ' -f1 | sort -u | wc -l or sort | uniq -c | sort -rn, and why uniq needs sorted input
Objectives
- Replace text in many files while keeping backups
- Aggregate a column with awk
- Count unique values and rank frequencies from log fields
Key concepts
- sed -i.bak
- sed s/old/new/g
- find with xargs sed
- awk -F field sum
- cut -d -f
- sort | uniq -c
- sort -u | wc -l
2 · Storage, Services & Networking12 topics
Storage, LVM & Filesystems
Partitioning with fdisk/parted, GPT vs MBR, ext4 and XFS, LVM (PV, VG, LV) with resize and snapshots, software RAID with mdadm, swap, fstab and mounts, quotas, and network storage with NFS and iSCSI
Objectives
- Create and extend logical volumes and filesystems online
- Write persistent mounts with UUIDs and safe options
- Choose a RAID level for a stated redundancy and performance goal
Key concepts
- fdisk, parted, GPT vs MBR
- ext4 vs XFS
- LVM PV/VG/LV
- mdadm RAID levels
- /etc/fstab and UUIDs
- swap
- disk quotas
- NFS and iSCSI
Processes, systemd Services & Scheduling
Process states and signals, priorities with nice/renice, ps/top, systemd units, targets and dependencies, writing unit files, drop-in overrides, cron, at and systemd timers, and journalctl
Objectives
- Manage service lifecycle and boot-time enablement with systemctl
- Write and override unit files without editing vendor files
- Schedule recurring jobs with cron or timers and justify the choice
Key concepts
- process states and signals
- nice and renice
- systemctl enable/start/mask
- unit files and drop-ins
- targets
- cron and anacron
- systemd timers
- journalctl
Linux Networking Configuration & Tools
Configuring interfaces and addresses with NetworkManager (nmcli), netplan or ifcfg, the ip command, routing, DNS resolution and resolv.conf, hostname, bonding and VLANs, and tools such as ss, dig, curl and tcpdump
Objectives
- Configure persistent static addressing, routes and DNS
- Use ss, ip and dig to verify connectivity and name resolution
- Explain bonding modes and when each applies
Key concepts
- ip addr, ip route
- nmcli and netplan
- DNS and nsswitch.conf
- /etc/hosts and hostnamectl
- bonding and VLANs
- ss and netstat
- dig and nslookup
- tcpdump
Process Control, Tuned Profiles & Persistent Journals
Finding and ending CPU or memory heavy processes, signals, nice and renice, tuned profiles and tuned-adm, reading journalctl and /var/log, making the journal persistent, and bounding journal size
Objectives
- Identify and terminate or deprioritize a runaway process safely
- Apply and verify a tuned profile
- Preserve journals across reboots with bounded disk use
Key concepts
- ps --sort and top
- kill, pkill, signals
- nice and renice
- tuned-adm profile/recommend/verify
- journalctl -u -p -b --since
- Storage=persistent
- journalctl --vacuum-size
- systemctl set-property CPUQuota
Services, Scheduling, Time Clients & Secure File Transfer
systemctl enable --now, mask and dependencies, cron and crontab, at jobs, systemd timers with OnCalendar and Persistent, chrony time clients, and scp, sftp and rsync transfers
Objectives
- Schedule recurring and one-off tasks with cron, at and systemd timers
- Configure a chrony client and prove it is synchronized
- Transfer files securely between systems preserving attributes
Key concepts
- enable --now and mask
- crontab fields and /etc/cron.d
- at, atq, atrm
- systemd .timer and OnCalendar
- chrony.conf and chronyc sources
- network-online.target
- scp, sftp, rsync -a
Local Storage Lab Tasks: GPT, LVM, Stratis, VDO, Swap & Mounts
Creating GPT partitions with parted or fdisk, physical volumes, volume groups and logical volumes, mkfs for XFS, ext4 and VFAT, mounting by UUID or label in /etc/fstab, extending logical volumes online, adding swap, and Stratis and LVM-VDO volumes
Objectives
- Build a partition, volume group, logical volume and mounted filesystem from a blank disk
- Extend a logical volume and its filesystem without downtime
- Choose between XFS, ext4, Stratis and LVM-VDO for a requirement
Key concepts
- parted mklabel gpt and mkpart
- pvcreate, vgcreate, lvcreate
- lvextend -r and xfs_growfs
- mkfs.xfs, mkfs.ext4, mkfs.vfat
- blkid and UUID fstab
- mkswap and swapon
- stratis pool and filesystem
- lvcreate --type vdo
- mount -a validation
Network File Systems: NFS Mounts & autofs
Mounting NFS exports manually and in /etc/fstab, _netdev and nofail, autofs master and map files with direct, indirect and wildcard maps, idle timeouts, and the firewall, SELinux and export-side checks for NFS
Objectives
- Mount an NFS export persistently and verify it with findmnt
- Configure an autofs indirect wildcard map for home directories
- Diagnose NFS client failures across network, export, firewall and SELinux
Key concepts
- mount -t nfs and showmount -e
- fstab _netdev, nofail
- auto.master.d/*.autofs
- indirect and wildcard maps
- --timeout
- x-systemd.automount
- exportfs -v, root_squash
- use_nfs_home_dirs boolean
Storage Administration: Disk Quotas, tune2fs Reserved Blocks & XFS nouuid Mounts
Filesystem tuning and recovery: user and group disk quotas (usrquota,grpquota mount options, quotacheck, quotaon, edquota soft and hard limits with grace period, repquota, and xfs_quota for XFS), reducing the ext4 reserved block percentage with tune2fs -m on data volumes, and mounting a cloned or snapshotted XFS volume whose UUID duplicates a mounted one with -o nouuid or regenerating it with xfs_admin -U generate
Objectives
- Enable and enforce quotas on ext4 or XFS
- Reclaim reserved space on a large data filesystem
- Mount a duplicate-UUID XFS clone without error
Key concepts
- usrquota grpquota
- quotacheck quotaon edquota repquota
- soft and hard limits and grace period
- xfs_quota
- tune2fs -m reserved blocks
- XFS duplicate UUID
- mount -o nouuid
- xfs_admin -U
Operational Utilities: flock in cron, logrotate, update-alternatives & tmux Sessions
Routine administration tools: preventing overlapping cron jobs with flock -n on a lock file, rotating logs with logrotate (weekly or size rules, rotate count, compress, copytruncate versus postrotate reload, /etc/logrotate.d), managing multiple versions of a command with the alternatives system (update-alternatives or alternatives --config, symlinks under /etc/alternatives), and resuming long-running work over a dropped SSH connection with tmux (new, detach, attach, list sessions)
Objectives
- Make a cron job safe against overlapping runs
- Write a logrotate stanza for an application log
- Switch the default version of a command and resume a tmux session after a disconnect
Key concepts
- flock -n lock file
- overlapping cron jobs
- logrotate configuration
- copytruncate vs postrotate
- update-alternatives
- /etc/alternatives symlinks
- tmux attach and detach
- persistent sessions
Virtualization: KVM, libvirt/virsh, virtio Drivers & Snapshots
Linux virtualization administration: confirming hardware virtualization extensions (vmx/svm flags in /proc/cpuinfo, lscpu, kvm-ok), installing and using KVM with libvirt (virsh list, start, shutdown, autostart, define, dumpxml), creating guests with virt-install, paravirtualized virtio disk and network drivers instead of emulated IDE and e1000 devices for I/O performance, and point-in-time guest snapshots with virsh snapshot-create-as and snapshot-revert
Objectives
- Verify a host can run hardware-accelerated virtual machines
- Manage guest lifecycle and boot-time start with virsh
- Improve guest I/O with virtio and protect changes with snapshots
Key concepts
- vmx svm cpu flags
- KVM and libvirt
- virsh autostart
- virt-install
- virtio drivers
- virsh snapshot-create-as and snapshot-revert
Backup & Recovery: Full/Incremental Strategies, tar Attributes & dd Disk Images
Backup design and tooling: full, incremental and differential schemes and which sets a restore needs, GNU tar incremental archives with --listed-incremental, preserving ACLs, extended attributes and SELinux contexts with --acls --xattrs --selinux, bit-for-bit disk imaging with dd (if, of, bs, status=progress, conv=fsync) and the risk of swapping if and of
Objectives
- Determine which backups a point-in-time restore requires
- Create tar archives that preserve ACLs, xattrs and SELinux labels
- Image a disk with dd safely
Key concepts
- full incremental differential
- restore chain
- tar --listed-incremental
- tar --acls --xattrs --selinux
- dd if of bs
- disk image of an unmounted device
User Provisioning (/etc/skel) & Surviving Logout: nohup, disown, setsid
Account templates and long-running sessions: files placed in /etc/skel copied into new home directories by useradd -m (.bashrc, README.txt) without affecting existing users, and keeping a foreground job such as rsync alive after SSH logout by suspending with Ctrl+Z, bg and disown -h, or starting it with nohup, setsid or inside tmux or screen
Objectives
- Provide default files to newly created users
- Keep a running job alive after logout without restarting it
- Explain SIGHUP behaviour and the alternatives
Key concepts
- /etc/skel
- useradd -m
- nohup
- Ctrl+Z bg disown
- setsid
- SIGHUP on logout
3 · Security & Access10 topics
Linux Security Best Practices & Hardening
Defense in depth on Linux: patching cadence, minimizing services and packages, disk encryption with LUKS, GPG, TLS certificates and PKI, auditing with auditd, benchmark-based hardening (CIS), and secure defaults
Objectives
- Apply a layered hardening baseline to a new server
- Encrypt data at rest and manage certificates
- Configure auditing that supports incident investigation
Key concepts
- least privilege
- LUKS disk encryption
- GPG signing and encryption
- TLS certificates and PKI
- auditd rules
- CIS benchmarks
- attack surface reduction
- secure boot
Identity Management: Users, Groups, sudo & PAM
Local accounts and groups (/etc/passwd, /etc/shadow), useradd and usermod, password aging, sudoers, PAM modules, centralized identity with LDAP, SSSD and Kerberos, and multi-factor authentication
Objectives
- Create and lock accounts and enforce password aging
- Delegate least-privilege administration with sudo
- Explain how PAM and SSSD cooperate for centralized login
Key concepts
- passwd, shadow and group files
- useradd, usermod, chage
- sudoers and visudo
- PAM stack
- LDAP and SSSD
- Kerberos basics
- MFA for login
- service accounts
Firewalls: firewalld, nftables, iptables & ufw
Host firewall concepts (stateful filtering, zones, chains), firewalld zones/services/rich rules, nftables and iptables rule evaluation, ufw, NAT and port forwarding, and persistence of rules
Objectives
- Open and restrict services with firewalld or ufw and make rules persistent
- Read an iptables or nftables ruleset and predict packet verdicts
- Design a default-deny host policy that preserves management access
Key concepts
- firewalld zones and services
- runtime vs permanent rules
- iptables chains and tables
- nftables
- ufw
- NAT and port forwarding
- default deny policy
- rate limiting
Remote Access: SSH, Tunnels & File Transfer
OpenSSH client and server configuration, key-based authentication, ssh-agent, sshd_config hardening, port forwarding and jump hosts, scp/sftp/rsync, tmux, and remote desktop alternatives
Objectives
- Set up key-based SSH and disable password and root login
- Use tunnels and jump hosts to reach private services
- Transfer and synchronize data securely with rsync
Key concepts
- sshd_config hardening
- key pairs and authorized_keys
- ssh-agent
- local and remote port forwarding
- ProxyJump
- rsync and scp
- known_hosts and host keys
- tmux
Access Controls: Permissions, ACLs, SELinux & AppArmor
Discretionary permissions (rwx, umask), special bits (setuid, setgid, sticky), file attributes, POSIX ACLs, mandatory access control with SELinux (contexts, booleans, modes) and AppArmor profiles
Objectives
- Set permissions numerically and symbolically for a stated access requirement
- Use ACLs where standard permissions cannot express the policy
- Correct SELinux labels instead of disabling enforcement
Key concepts
- chmod and chown
- umask
- setuid, setgid, sticky bit
- POSIX ACLs (setfacl)
- chattr
- SELinux contexts and booleans
- SELinux modes
- AppArmor profiles
Users, Groups, Privileged Access, ACLs & Default Permissions
useradd and usermod options, groups and shared directories with setgid, chage and login.defs password aging, locking accounts, sudoers.d and visudo, POSIX ACLs with masks and defaults, umask, and diagnosing file permission problems with namei and getfacl
Objectives
- Create users and groups with exact UID, GID, shell and group membership requirements
- Grant narrowly scoped sudo access and enforce password aging
- Apply ACLs and default permissions to meet a collaboration requirement
Key concepts
- useradd -u -g -G -s
- usermod -aG
- chage -M -W -E -d 0
- /etc/login.defs
- visudo -f /etc/sudoers.d
- setfacl -m and -d, getfacl
- umask 027
- setgid directories
- namei -l
RHEL Networking, Name Resolution, firewalld & SSH Keys
Persistent IPv4 and IPv6 addressing with nmcli, hostnamectl, /etc/hosts and nsswitch.conf, autoconnect at boot, firewall-cmd zones, services, ports and sources with runtime versus permanent rules, and key-based SSH with ssh-copy-id
Objectives
- Configure persistent dual-stack addressing, hostname and DNS with nmcli
- Restrict access with firewalld zones, services and sources, and make it permanent
- Set up key-based SSH and confirm it works after a reboot
Key concepts
- nmcli con mod ipv4/ipv6
- hostnamectl
- /etc/hosts and nsswitch
- connection.autoconnect
- firewall-cmd --permanent --reload
- zones and --add-source
- ssh-keygen and ssh-copy-id
- sshd_config Port
SELinux Administration: Modes, Contexts, Ports & Booleans
getenforce, setenforce and /etc/selinux/config, reading file and process contexts with ls -Z and ps -Z, semanage fcontext with restorecon, semanage port, setsebool -P, and diagnosing AVC denials with ausearch and sealert
Objectives
- Switch SELinux modes temporarily and persistently and explain the difference
- Fix denials by relabeling, port labels or booleans rather than disabling SELinux
- Read an AVC denial and pick the least permissive fix
Key concepts
- setenforce vs SELINUX=
- ls -Z and ps -Z
- semanage fcontext -a
- restorecon -Rv vs chcon
- semanage port -a -t
- setsebool -P
- ausearch -m AVC and sealert
- /.autorelabel
Hardening: File Capabilities, OpenSCAP Compliance Scans, fail2ban & SELinux Relabel after Recovery
Hardening in practice: Linux file capabilities set with setcap and read with getcap (cap_net_bind_service+ep to bind privileged ports without root, rather than setuid), compliance scanning with OpenSCAP (oscap xccdf eval with a profile, HTML report, remediation), banning brute-force SSH sources with fail2ban (jails, maxretry, findtime, bantime, fail2ban-client status), and restoring SELinux labels after a root password reset in rd.break (touch /.autorelabel and restorecon) so logins work again
Objectives
- Grant one capability to a binary instead of full root
- Run an OpenSCAP scan, read the report and plan remediation
- Configure fail2ban for SSH and fix SELinux labels after an emergency password reset
Key concepts
- file capabilities setcap getcap
- cap_net_bind_service
- avoid setuid
- OpenSCAP oscap xccdf eval
- SCAP profile and report
- fail2ban jail sshd
- maxretry findtime bantime
- touch /.autorelabel
- restorecon after rd.break
Security Auditing: File Integrity (AIDE), Tamper-Resistant Logs & Failed Login Review
Detecting and limiting tampering: file integrity monitoring with AIDE or Tripwire (initialize a baseline database with aide --init, store it read-only off-host, compare with aide --check, update after authorized changes), protecting logs from an attacker who compromises a server by forwarding them to a remote collector with rsyslog or journal remote and append-only chattr +a, and reviewing failed authentication with lastb, faillog, journalctl and /var/log/secure or auth.log
Objectives
- Use a file integrity tool correctly with a trusted baseline
- Make logs resistant to tampering after a compromise
- List and interpret failed login attempts
Key concepts
- AIDE baseline database
- aide --check
- off-host baseline storage
- remote log forwarding
- chattr +a append-only
- lastb failed logins
- auth.log and secure
4 · Scripting, Containers & Automation10 topics
Shell Scripting & Task Automation
Writing reliable Bash scripts: shebang, variables and quoting, conditionals, loops, functions, arguments, exit codes, error handling with set -euo pipefail, traps, here-documents, and cron-driven automation
Objectives
- Write a Bash script with argument validation and meaningful exit codes
- Apply defensive options and quoting to avoid common failures
- Schedule and log script output safely
Key concepts
- shebang and execute bit
- quoting and expansion
- if, case, for, while
- exit codes
- set -euo pipefail
- trap
- functions and arguments
- idempotent scripts
Containers on Linux: Primitives & Basic Operations
Containers as Linux processes (namespaces, cgroups, capabilities), image and container lifecycle with Podman or Docker, volumes and port publishing, rootless containers, systemd-managed containers, and basic orchestration and cloud concepts
Objectives
- Run, inspect and clean up containers and explain what isolates them
- Persist data and publish ports correctly
- Explain how Kubernetes and cloud services build on container primitives
Key concepts
- namespaces and cgroups
- image vs container
- run, exec, logs, ps
- volumes and bind mounts
- port publishing
- rootless Podman
- container registries
- orchestration and cloud concepts
Configuration Automation: Ansible, cloud-init & Git
Infrastructure as code for Linux fleets: Ansible inventories, ad hoc commands, playbooks, modules and idempotency, cloud-init user data, templating, Git-based workflow for configuration, and drift detection
Objectives
- Express a server configuration as an idempotent playbook
- Bootstrap cloud instances with cloud-init
- Use Git to review and roll back configuration changes
Key concepts
- Ansible inventory and playbooks
- idempotency
- cloud-init user data
- Jinja2 templates
- Git branching and merge
- declarative vs imperative
- vault for secrets
- drift detection
Podman on RHEL: Rootless Containers, Persistent Storage & systemd
Pulling UBI and registry images, running detached rootless containers with published ports, bind mounts with :Z labeling, Containerfile builds, Quadlet .container units run under systemd, loginctl enable-linger, and container troubleshooting
Objectives
- Run a rootless container with a published port and SELinux-correct persistent storage
- Start a container automatically at boot as a systemd user service
- Troubleshoot a failing container from logs and inspect output
Key concepts
- podman run -d -p --name
- rootless and user namespaces
- -v host:ctr:Z
- podman build -t
- Quadlet .container files
- systemctl --user and enable-linger
- podman logs, exec, inspect
- unprivileged port start
Git Workflow: reset, stash & Untracking Committed Files
Everyday Git recovery operations used by administrators managing configuration repositories: git reset --soft, --mixed and --hard and what each does to HEAD, the index and the working tree, git stash push, list, pop and apply to park uncommitted changes, and removing a committed file from tracking with git rm --cached together with .gitignore while keeping the file on disk (with history rewrite needed to purge secrets)
Objectives
- Choose the reset mode that undoes a commit without losing work
- Park and restore uncommitted changes with stash
- Stop tracking a committed file without deleting it from disk
Key concepts
- git reset soft mixed hard
- HEAD index working tree
- git stash push pop apply
- git rm --cached
- .gitignore
- purging a committed secret
Deployment Strategies (Canary, Blue-Green, Rolling) & Kubernetes Secrets
Releasing changes safely and handling credentials in orchestrated environments: rolling updates, blue-green deployments with instant switchback, canary releases that route a small percentage of traffic to the new version and promote on healthy metrics, and Kubernetes Secrets (created with kubectl create secret generic, base64 encoding is not encryption, mounted as volumes or environment variables, encryption at rest, RBAC limits, external secret stores)
Objectives
- Pick a deployment strategy for a risk and downtime requirement
- Describe how a canary is promoted or rolled back on metrics
- Handle a Kubernetes Secret safely
Key concepts
- rolling update
- blue-green deployment
- canary release
- traffic weighting and rollback
- Kubernetes Secret
- base64 is not encryption
- secret as volume or env variable
- encryption at rest and RBAC
Python for Administrators: sys.argv, subprocess, JSON, venv & Error Handling
Python 3 in administration scripts: reading command-line arguments with sys.argv and argparse (int conversion of sys.argv[1]), running commands safely with subprocess.run using a list of arguments, capture_output=True, text=True and check=True without shell=True to avoid injection, loading JSON with json.load, isolating dependencies with python3 -m venv and source venv/bin/activate plus pip install, try/except FileNotFoundError to fail with a clear message, and dict.get(key, default) for optional settings
Objectives
- Parse arguments and convert types in a Python admin script
- Run external commands without shell injection
- Load configuration, handle missing files and defaults, and isolate dependencies in a virtual environment
Key concepts
- sys.argv and argparse
- subprocess.run list args
- shell=True injection
- json.load
- python3 -m venv
- try except FileNotFoundError
- dict.get default
Git for Administrators: revert on Shared Branches, blame & History Inspection
Undoing and inspecting history in configuration repositories: git revert abc1234 creating a new commit that undoes a pushed commit without rewriting history (versus reset and force push), git revert -m for merge commits, git blame -L to show the author and commit of each line in a file such as sshd_config, git log -p and git log --follow for a file, and git bisect to locate a breaking commit
Objectives
- Undo a published commit without rewriting shared history
- Find who changed a line and why with blame and log
- Locate the commit that introduced a regression
Key concepts
- git revert
- history rewrite on shared branches
- git blame
- git log -p --follow
- git bisect
Configuration Management: Ansible Vault Secrets & Push vs Pull Models
Operating configuration management at scale: encrypting variable files with ansible-vault encrypt, edit, view and --vault-id so playbook secrets can be committed to Git, supplying the password with --ask-vault-pass or a vault password file, and choosing push (Ansible over SSH from a controller) versus pull (ansible-pull, Puppet agent, Chef client) models when hundreds of hosts sit behind NAT and cannot accept inbound connections
Objectives
- Protect playbook secrets with Ansible Vault
- Choose between push and pull configuration management for a topology
- Keep hosts converged periodically without inbound access
Key concepts
- ansible-vault encrypt
- --ask-vault-pass and vault password file
- encrypted vars in Git
- push versus pull
- ansible-pull
- agent-based configuration management
- periodic convergence
AI Assistants in Administration: Prompting, Verification, Data Handling & Licensing
Using generative AI safely for Linux administration: giving the assistant the distribution and version (Ubuntu 24.04 versus Rocky Linux 8) so commands match the package manager and paths, treating output as unverified (hallucinated packages, flags or modules), checking package names in official repositories, reviewing and testing generated scripts with dry runs, shellcheck and a non-production host before production, never pasting passwords, API keys or customer data into public AI services, and handling licensing and provenance of generated code that resembles GPL projects
Objectives
- Write prompts that give distribution and version context
- Validate AI-generated commands and scripts before production use
- Protect secrets and respect licences when using AI tools
Key concepts
- supplying OS and version context
- AI hallucinated packages
- verify before running
- dry run and shellcheck
- secrets in prompts
- data privacy
- code licensing and provenance
5 · Troubleshooting10 topics
Troubleshooting Storage Issues
Diagnosing full filesystems and inode exhaustion, df/du/lsof, mount and fstab failures, filesystem repair with fsck and xfs_repair, LVM and RAID degradation, I/O bottlenecks with iostat/iotop, and failing disks with SMART
Objectives
- Find what consumes space or inodes and free it safely
- Recover from a failed mount or degraded array without data loss
- Identify I/O saturation and its source
Key concepts
- df vs du and deleted-but-open files
- inode exhaustion
- fsck and xfs_repair
- degraded mdadm array
- LVM recovery
- iostat and iotop
- SMART
- read-only remount
Troubleshooting Network Resource Issues
Layered diagnosis of connectivity: link, IP, route, DNS and port; ping, traceroute, mtr, ss, dig, curl, tcpdump; firewall and routing misconfiguration, MTU and duplicate IP problems, and bandwidth and latency analysis
Objectives
- Isolate the failing layer with a minimal command sequence
- Differentiate DNS, routing, firewall and service failures
- Capture and interpret traffic to confirm a hypothesis
Key concepts
- bottom-up diagnosis
- ping, traceroute, mtr
- ss -tulpn
- dig and resolver order
- tcpdump filters
- MTU and fragmentation
- asymmetric routing
- firewall vs service down
Troubleshooting CPU & Memory Issues
Interpreting load average, top/htop, vmstat, free, sar and pidstat; CPU saturation vs I/O wait, memory pressure, swapping, OOM killer behavior, memory leaks, runaway processes, and cgroup limits
Objectives
- Interpret load and memory metrics to name the bottleneck
- Respond to an OOM kill and find the cause
- Throttle or restart a runaway process responsibly
Key concepts
- load average semantics
- top and vmstat columns
- iowait vs CPU-bound
- free and available memory
- swap thrashing
- OOM killer and oom_score
- pidstat and sar
- cgroup limits
Troubleshooting User Access & File Permissions
Resolving login failures, locked accounts, sudo denials, 'Permission denied' on files and directories, ownership and group membership issues, ACL and SELinux denials, quota and ulimit limits
Objectives
- Trace a permission denied error from path traversal to final cause
- Distinguish DAC, ACL and SELinux denials
- Recover a locked account or broken sudo access safely
Key concepts
- namei and effective permissions
- group membership refresh
- faillock and account lockout
- sudo logs
- ausearch and sealert
- quota exceeded
- ulimit and limits.conf
- PAM errors
Troubleshooting with systemd & Boot Problems
Diagnosing failed units with systemctl status and journalctl, dependency and ordering cycles, systemd-analyze blame, rescue and emergency targets, GRUB and initramfs repair, and recovering from bad fstab or lost root passwords
Objectives
- Diagnose a failed service from unit status and journal evidence
- Boot into rescue or emergency mode and repair configuration
- Reduce boot time by analyzing unit timing
Key concepts
- systemctl status and --failed
- journalctl -u -b -p
- Requires vs After
- systemd-analyze
- rescue.target and emergency.target
- GRUB2 rescue
- initramfs and dracut
- rd.break root reset
Storage Troubleshooting: Busy Unmounts with fuser, SMART Disk Health & noexec Mounts
Diagnosing storage faults: a 'target is busy' unmount resolved by finding processes with fuser -vm or lsof +f, then stopping them or using a lazy unmount carefully, drive health from smartctl -H and -a (reallocated, pending and uncorrectable sectors, temperature) and smartd alerts, and 'permission denied' executing a script from a filesystem mounted noexec, found with findmnt or mount and fixed with a remount or running through an interpreter
Objectives
- Find and stop whatever blocks an unmount
- Read SMART output to judge disk health and decide on replacement
- Recognize noexec as the reason a permitted executable will not run
Key concepts
- umount target is busy
- fuser -vm and lsof
- lazy unmount
- smartctl -H and -a
- reallocated and pending sectors
- smartd
- noexec mount option
- findmnt and remount
Performance Troubleshooting: OOM Killer, strace & sysstat/sar
Deep-dive diagnosis tools: the kernel OOM killer (dmesg and journalctl evidence 'Out of memory: Killed process', oom_score and oom_score_adj from -1000 to 1000 to protect or sacrifice processes, vm.overcommit_memory, cgroup memory limits), tracing system calls with strace (-p, -f, -e trace=file or network, -c summary, -tt timestamps) to see why a process hangs or cannot open a file, and historical performance data with sysstat (sar -u CPU, -r memory, -d disk, -n DEV network, -q load, sadc collection and the sa files)
Objectives
- Prove from logs that the OOM killer ended a process and protect a critical service
- Use strace to find the failing system call of a stuck program
- Use sar to analyze past CPU, memory and disk behavior
Key concepts
- OOM killer
- oom_score_adj
- dmesg out of memory
- vm.overcommit_memory
- strace -p -f -e
- strace -c
- sysstat sar
- sar -u -r -d -n DEV
- sadc history
Network Troubleshooting: Duplicate IPs with arping & Ephemeral Port Exhaustion (TIME-WAIT)
Two network faults: intermittent connectivity from duplicate IP addresses on a segment, detected with arping -D (duplicate address detection exit status) or arping -I and by inspecting ARP cache MAC changes (ip neigh), and outbound connection failures caused by ephemeral port exhaustion with many sockets in TIME-WAIT, seen with ss -s, tuned with net.ipv4.ip_local_port_range, connection reuse and keep-alive, and net.ipv4.tcp_tw_reuse
Objectives
- Detect and resolve an IP address conflict
- Recognize ephemeral port exhaustion as the cause of intermittent outbound connection failures
- Apply connection reuse and port range tuning correctly
Key concepts
- duplicate IP address
- arping -D
- ip neigh ARP cache
- gratuitous ARP
- ephemeral port range
- TIME-WAIT sockets
- ss -s and ss -tan state
- tcp_tw_reuse and connection reuse
Connectivity & Auth Troubleshooting: ssh -v, nc Port Tests, Kerberos Clock Skew & resolvectl
Diagnosing remote-access failures step by step: ssh -v/-vv/-vvv to see the keys and authentication methods the client tries, testing whether a TCP port such as 5432 is reachable without sending application data using nc -zv host port (or bash /dev/tcp), Kerberos 'Clock skew too great' caused by time drift and fixed by synchronizing time with chrony or NTP, and viewing per-interface DNS servers and search domains on systemd-resolved hosts with resolvectl status
Objectives
- Use client verbosity to find why SSH authentication fails
- Test TCP reachability without sending data
- Resolve Kerberos time skew and inspect DNS settings per interface
Key concepts
- ssh -vvv debug output
- nc -zv port test
- /dev/tcp test
- Kerberos clock skew
- chrony time sync
- resolvectl status
- systemd-resolved DNS per link
Boot Recovery: Rebuilding the initramfs from a Rescue chroot (dracut, update-initramfs)
Recovering a system that drops to an emergency shell because the initramfs lacks the storage driver: booting rescue media, mounting the root filesystem and bind-mounting /dev, /proc and /sys, entering it with chroot, regenerating the image with dracut -f --kver on RHEL-family, update-initramfs -u -k on Debian-family or mkinitcpio -P on Arch, and verifying contents with lsinitrd or lsinitramfs
Objectives
- Diagnose a boot failure caused by a missing driver in the initramfs
- Enter a system from rescue media with chroot
- Rebuild and verify the initramfs for the distribution family
Key concepts
- emergency shell and initramfs
- rescue chroot with bind mounts
- dracut -f
- update-initramfs -u
- lsinitrd
- missing storage driver
Levels: Junior, Mid, and Senior
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying Linux System Administration?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying Linux System Administration?
Start with System Fundamentals & Software: Linux Fundamentals & Boot Process, Files, Directories & Text Processing, and Package Management & Building Software. The map orders topics by what they depend on, so each one prepares the next.
How long does a full Linux System Administration assessment take?
A full assessment of this path takes about 55 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.