Learn
RHCSA (EX200)
Master every EX200 objective on real virtual machines
Complete RHCSA exam preparation covering all EX200 objectives. 66 hands-on labs on AlmaLinux 9 with real disks, real networking, real SELinux, and a serial console for boot-level practice. Covers the same objectives as Red Hat system administration courses (RH124 + RH134). RHCSA and Red Hat are registered trademarks of Red Hat, Inc. The Linux Camp is not affiliated with or endorsed by Red Hat, Inc.
70 hands-on labs across 9 modules, about 33 hours of work. Every lab runs on a real virtual machine in your browser, and checks your work on the machine itself.
Modules and labs
Understand the EX200 exam format. Master vim, shell redirection, grep, regular expressions, SSH, archive tools, file management, permissions, and local documentation. Every skill in this module appears on the exam.
- The EX200 Exam Environment - Orient to the current performance-based EX200 on RHEL 10: real machines, graded on end state only, single total score, no internet. Drill the two exam lifelines
- vim Essentials - Drive vim to exam fluency: the three modes, i/a/o and Esc, :wq versus :q!, dd/yy/p/u, gg/G, search with /pattern and n, and the global substitute :%s/old/new/g.
- Shell Redirection - Steer a command's two output streams. stdout and stderr, and for stdout, 2 for stderr, and the EX200 move that folds both into one file: command file 2&1. Plus
- grep and Regular Expressions - Pull exact lines out of any file with grep. Plain matches, the -c, -n, -i, -v, -o, and -r flags, the -E extended form, and the regex metacharacters ^ $ . and ch
- SSH and Key-Based Auth - Reach another node with ssh, then remove the password for good with an ed25519 key pair and ssh-copy-id. Covers ssh user@host, remote commands, ~/.ssh/authorize
- Login and User Switching - Read your identity with whoami and id, find the wheel group that grants sudo, and become root two ways: su - for a full login shell with the root password, and
- Archives and Compression - Create and extract tar archives on RHEL 10 for the EX200 file tasks. Create, list, and extract with -c -t -x and -f, three compressors (-z gzip, -j bzip2, -J xz
- File Management - Everyday file management for the EX200: cp with -r for directories and -p to preserve mode, owner, and time; mv to move and rename; rm and rm -r to delete; mkdi
- Hard and Soft Links - Create hard and soft links for EX200 task 3. A hard link is a second name on the same inode; a symlink is a small file that points at a path. Read inode and lin
- ugo/rwx Permissions - Read the ls -l ten-character mode string and set it exactly with chmod. Three classes (user, group, other) times three bits (read, write, execute), octal (640,
- umask and Default Permissions - Set the default permissions for new files and directories with umask (EX200 task 52). Files start at 666, directories at 777, and the umask is subtracted: 022 y
- man, info, and /usr/share/doc - Offline documentation is the only help on the RHCSA exam. Confirm a page with whatis, open the right section with man and man 5, search by keyword with man -k a
- Mission Control: Operation Field Kit - The RHCSA essential-tools capstone mission on a real RHEL 10 machine. Archive, link, filter, capture, and lock down, graded on the end state exam-style. Mission
Create simple shell scripts with conditionals, loops, arguments, and command output capture. The exam expects you to write scripts that automate real tasks under time pressure.
- Conditionals: if, test, [ ] - Make a script decide with test and its [ ] twin. File tests -f -d -e -r -w -x, string compares = != -z -n, numeric compares -eq -ne -lt -le -gt -ge, the exit st
- for Loops Over Files and Output - Run the same block once for every item with a for loop. The fixed for VAR in LIST; do ...; done shape, and four lists that feed it: an explicit set of words, a
- Script Inputs and Exit Codes - Write a real runnable script that takes command-line input and reports success or failure. The shebang, chmod +x, running with ./, the positional parameters $1
- Capturing Command Output - Run a command and keep its output as a value with command substitution. Capture into a variable with $(command), splice inline, do integer math with $(( )), nes
- Mission Control: Operation Toolsmith - The RHCSA shell-scripts capstone mission on a real RHEL 10 machine. Write the classic exam script ~/bin/inspect to an exact spec, graded by running it. Mission
Boot and reboot systems into different targets. Interrupt the boot process to reset root passwords. Manage processes, tuned profiles, and system journals. Secure file transfer between hosts.
- Boot, Reboot, Shutdown - Control services and system power with systemctl. is-active for the now, is-enabled for the boot, status for the full Loaded and Active picture, the acting verb
- Boot into Different Targets - Tell a RHEL 10 machine which world to boot into with systemd targets. Read the default with systemctl get-default, change it persistently with set-default (the
- Reset the Root Password - Recover a lost root password on RHEL 10 with rd.break. Interrupt GRUB, append rd.break to the kernel line, boot with Ctrl-x, then at switch_root run mount -o re
- Process Triage - Find a misbehaving process, then signal it correctly. List with ps -ef and ps aux, watch live with top, read the signals menu with kill -l, find PIDs by name wi
- nice and renice - Control process priority with nice and renice. The niceness scale from -20 (highest priority) to 19 (lowest), the default 0, launching at a chosen niceness with
- tuned Profiles - Tune a RHEL 10 machine by naming its kind, not turning knobs by hand. Read the running profile with tuned-adm active, see the menu with tuned-adm list, ask what
- journald: Persistent Journals - Read the systemd journal with journalctl and make it survive reboots. Filter by unit with -u, by severity with -p err, by time with --since, and follow live wit
- rsyslog and /var/log - Route system logs with rsyslog. The three files that matter (/var/log/messages, /var/log/secure, /var/log/cron), the facility.priority selector, adding a custom
- scp and sftp Secure Transfer - Move a file safely between two hosts over ssh. scp up and scp down with the colon marking the remote side, scp -r for whole directories, the interactive sftp se
- Mission Control: Operation Steady State - The RHCSA operating-systems capstone on a real RHEL 10 machine. A misconfigured server, brought to a persistent steady state, graded on live system state. Missi
Partition disks with MBR and GPT. Build the full LVM stack from physical volumes through logical volumes. Extend volumes without data loss. Configure swap and persistent mounts in fstab.
- MBR and GPT Partitioning - Partition a spare disk on RHEL 10. Survey with lsblk, read a disk table with fdisk -l, then carve a sized, typed partition with the interactive fdisk sequence (
- Physical Volumes and Volume Groups - Build the bottom two layers of LVM. Stamp a partition into a physical volume with pvcreate and inspect it with pvs and pvdisplay; then pool PVs into a volume gr
- Create and Remove Logical Volumes - Carve usable storage out of a volume group with lvcreate: size by capacity with -L 1G or by exact extent count with -l 40 (the classic exam wording), name it wi
- Extend Volumes Non-Destructively - Grow a logical volume and its filesystem online without unmounting or losing data. Extend the LV by a delta with lvextend -L +512M or fill the group with -l +10
- Swap: Partitions and Logical Volumes - Add swap to a RHEL 10 system non-destructively and make it survive reboots. Build a swap area from a partition or a logical volume, then run the fixed three ste
- fstab by UUID + Emergency Recovery - Mount filesystems persistently by UUID in /etc/fstab and recover a machine a bad line dropped into emergency mode. Read the UUID with blkid (or lsblk -f), write
- Mission Control: Operation Bedrock - The RHCSA local-storage capstone on a real RHEL 10 machine with two spare disks. Build the full LVM stack, partition to persistent UUID mount, graded on live en
Create and mount xfs, ext4, and vfat filesystems. Configure NFS and autofs mounts against a remote server. Set up SGID directories for group collaboration and diagnose permission problems.
- mkfs, mount, umount, findmnt - Take a raw partition all the way to a working mounted directory and cleanly back down. Format with mkfs.xfs (the RHEL 10 default, which can grow but never shrin
- NFS Mounts from serverb - Mount an NFS export from a provided server, the client side of the EX200 file-systems objective. Discover exports with showmount -e SERVER, mount now with mount
- autofs: Automatic Mounts - Configure on-demand automounting with classic autofs, the RHCSA exam form (not systemd automount units). The two-file model: a master-map entry under /etc/auto.
- SGID Directories for Collaboration - Build a shared team directory with the SGID bit so every file created inside inherits the directory group instead of the creator personal group. Covers the spec
- Permission Forensics - Diagnose and fix a permission or ownership problem that blocks a user or service (EX200 task 32). Read a file exact metadata with stat -c (name, symbolic and oc
- Mission Control: Operation Mountpoint - The RHCSA file-systems capstone on a real RHEL 10 machine. Wire local XFS by UUID, an NFS mount, an autofs automount, an SGID share, and a permission fix, grade
Schedule tasks with cron and at. Manage services with systemctl. Configure time synchronization with chrony. Work with dnf repositories, module streams, and GRUB kernel management.
- cron: Scheduled Tasks - Program the system to run recurring tasks on a clock with cron. List jobs with crontab -l, edit them with crontab -e, remove the whole table with crontab -r, an
- at: One-Shot Jobs - Run a command once, at a time you name, then have it clean itself up. Queue a one-shot job with echo cmd at <time, where <time is a clock time (at 14:00), a rel
- Services with systemctl - Get a service into the right state and keep it there across a reboot. The core exam trap: start runs a service now but does not survive a reboot, enable sets it
- systemd Timers - Schedule work the modern RHEL 10 way with systemd timers. A .timer unit holds the schedule and starts a .service of the same name that does the work. Read what
- chrony: Time Synchronization - Keep a RHEL 10 machine's clock locked to real time and prove it. Read the overview and set the zone with timedatectl, point chrony at a time source with server/
- dnf Repositories and Packages - Drive the RHEL 10 package manager end to end. See where software comes from with dnf repolist, install a package and its dependencies with dnf install -y (needs
- GRUB Modifications - Make boot changes that persist. Read the current kernel with grubby --default-kernel and grubby --info=DEFAULT, then change the kernel command line permanently
- Flatpak Applications - Install and manage desktop applications delivered as Flatpaks on RHEL 10, the ones dnf cannot find. Confirm the tool with flatpak --version, see catalogs with f
- Mission Control: Operation Rollout - The RHCSA deploy-configure capstone on a real RHEL 10 machine. Commission a fresh server: a nightly cron job, a service enabled and started, a dnf repository, t
Configure static IPv4 and IPv6 addresses with nmcli. Set hostnames and hostname resolution. Make network changes that survive reboot. Open firewall ports and services.
- nmcli: Static IPv4 Configuration - Give a RHEL 10 server a persistent static IPv4 address with nmcli, the tool that survives a reboot where ip addr add does not. Build the whole connection in one
- IPv6 Addresses with nmcli - Add an IPv6 address to a connection with the same nmcli you used for IPv4, just the ipv6. keys. Pick the method with ipv6.method (auto for SLAAC, manual for a s
- Hostname Resolution - Give a machine a stable name and teach it to resolve other names. Read and set the static hostname with hostnamectl and hostnamectl set-hostname NAME (which wri
- Persistent Network Connections - Make a network setting survive a reboot. The difference between a live runtime change (gone at the next boot) and a saved connection profile with connection.aut
- firewall-cmd First Contact - First contact with firewalld on RHEL 10, driven entirely through firewall-cmd. Read the firewall with --state (running), --get-default-zone (public), and --list
- Mission Control: Operation Uplink - The RHCSA basic-networking capstone on a real RHEL 10 machine. Wire a static IPv4 connection, add IPv6, set the hostname, add a static host entry, and open a fi
Create and manage users, groups, and password policies. Configure sudo access, skeleton directories, and login shells. Every exam form has user management tasks.
- useradd, usermod, userdel - Run the full local account lifecycle on RHEL 10. useradd NAME builds the user, a matching private group, and /home/NAME; flags -c comment, -s shell, -u uid, -G
- Password Aging with chage - Manage a local user password aging rules with chage. Read the full report with chage -l NAME, set the maximum valid days with -M, the minimum days between chang
- Groups: Primary and Supplementary - Organize shared access with Linux groups. Create a group with groupadd NAME, understand the split between the one primary group (usermod -g, exactly one, shown
- sudo Configuration - Grant administrative rights safely. Never edit /etc/sudoers with a raw editor: use visudo, which syntax-checks on save, or drop a rule file into /etc/sudoers.d/
- /etc/skel and Login Shells - Master the two halves of a new account: the /etc/skel template and the login shell. /etc/skel is the skeleton copied into every new home at creation time (add a
- Mission Control: Operation Roster - The RHCSA users-groups capstone on a real RHEL 10 machine. Create a user, a shared group, password aging, a sudo drop-in, and a locked service account, graded o
Configure firewalld zones and rules. Set up SSH key-based authentication. Manage SELinux modes, file contexts, port labels, and booleans. Diagnose and resolve AVC denials.
- firewalld: Zones and Rich Rules - Go deeper than firewalld first contact: a zone is a named trust level bound to interfaces and source addresses. See the live ones with firewall-cmd --get-active
- SSH Key-Based Authentication - Replace typed passwords with a cryptographic key pair so logins, and scripts, work without a prompt. Generate the RHEL 10 default with ssh-keygen -t ed25519 -N
- SELinux Modes - Read and change the SELinux mode, the first move in every SELinux problem. Three modes: Enforcing (blocks and logs), Permissive (logs only), Disabled (neither).
- SELinux File and Process Contexts - Every file and process on RHEL carries a SELinux security context, four colon-separated fields user:role:type:level. The third field, the type ending in _t, is
- restorecon and semanage fcontext - Fix the SELinux label that blocks a service even when permissions look fine. restorecon resets a file to the type the policy expects and is a silent no-op when
- SELinux Port Labels - Let a service listen on a nonstandard port under Enforcing SELinux. SELinux keeps its own list of which TCP ports each service type may bind, so a web server to
- Booleans and AVC Diagnosis - SELinux booleans are named on/off switches that toggle whole chunks of policy without writing rules. Read one with getsebool NAME, flip it permanently with sets
- Mission Control: Operation Lockdown - The RHCSA security capstone on a real RHEL 10 machine. A firewalld rich rule, key-based SSH, a SELinux port label, a SELinux boolean, and a relabeled web root,
Frequently asked questions
How many labs are in RHCSA (EX200)?
RHCSA (EX200) has 70 hands-on labs, roughly 33 hours of guided work, spread across 9 modules.
Do I need my own server or hardware to do the RHCSA (EX200) labs?
No. Every lab boots a real virtual machine in your browser, with a real Linux shell. There is nothing to install, and nothing on your own machine to break.
What level is RHCSA (EX200)?
Labs in this track are rated intermediate.