cloud Red Hat

RHCSA: Red Hat Certified System Administrator (RHEL 9)

Hands-on Linux system administration certification. File systems, users, networking, services, SELinux, storage management, and enterprise Linux administration skills.

calendar_today December 29, 2025 schedule 19 min read person CertPractice Team

RHCSA: Red Hat System Administrator

The Red Hat Certified System Administrator (RHCSA) is one of the most respected Linux certifications globally. Unlike traditional multiple-choice exams, RHCSA is a 100% hands-on, performance-based exam where you perform actual system administration tasks on live Red Hat Enterprise Linux systems.

RHCSA validates the core skills required to work as a Linux system administrator in enterprise environments.

lightbulb
Who Should Pursue RHCSA?
  • Linux system administrators
  • DevOps engineers managing Linux servers
  • IT professionals transitioning to Linux
  • Cloud engineers working with RHEL/CentOS
  • Anyone seeking enterprise Linux expertise

Exam Format

schedule
Duration
3 hours (180 minutes)
quiz
Format
Hands-on performance-based tasks
check_circle
Passing Score
210/300 (70%)
payments
Exam Fee
$400

Exam Characteristics

100% Hands-On:

  • No multiple choice questions
  • Perform real tasks on actual RHEL systems
  • Complete 15-20 tasks in 3 hours
  • Must achieve functional solutions

Performance-Based:

  • Tasks must work correctly to receive credit
  • Partial credit for partially completed tasks
  • System reboots test persistence of configurations
  • Graded automatically by Red Hat systems

Remote Exam:

  • Take from home/office with proctor
  • Multiple virtual machines provided
  • Use vim, man pages, and documentation
  • No internet access during exam

Exam Objectives (RHEL 9)

Understand and Use Essential Tools

Access Command Line:

  • Use bash shell
  • Navigate directory structure
  • Use command-line tools (ls, cd, cp, mv, rm, mkdir)
  • Use text editors (vim)
  • Understand file permissions and ownership

File Management:

# Create, copy, move, delete files
touch file.txt
cp file.txt backup.txt
mv backup.txt /tmp/
rm /tmp/backup.txt

# Create directories
mkdir -p /data/project/{src,bin,docs}

# Find files
find /etc -name "*.conf"
find /var -type f -size +100M

# Archive and compress
tar -czf backup.tar.gz /home/user/
tar -xzf backup.tar.gz -C /restore/

Text Processing:

# grep
grep -r "error" /var/log/
grep -i "failed" /var/log/messages

# sed
sed 's/old/new/g' file.txt
sed -i '/^#/d' config.conf

# awk
awk '{print $1, $3}' /etc/passwd
awk -F: '{print $1}' /etc/passwd

# cut, sort, uniq
cut -d: -f1 /etc/passwd | sort | uniq

Redirection:

# Output redirection
ls > file_list.txt
ls >> file_list.txt
ls 2> errors.txt
ls &> all_output.txt

# Pipes
ps aux | grep httpd
cat /etc/passwd | awk -F: '{print $1}' | sort

# Here documents
cat << EOF > config.txt
Line 1
Line 2
EOF

Operate Running Systems

Boot Process:

  • Understand systemd boot process
  • Interrupt boot process to gain access
  • Identify CPU/memory intensive processes
  • Adjust process priority
  • Manage tuning profiles

System Services:

# Systemctl commands
systemctl start httpd
systemctl stop httpd
systemctl restart httpd
systemctl reload httpd
systemctl enable httpd
systemctl disable httpd
systemctl status httpd
systemctl is-active httpd
systemctl list-units --type=service

# Manage targets
systemctl get-default
systemctl set-default multi-user.target
systemctl isolate rescue.target

Process Management:

# View processes
ps aux
ps -ef
top
htop

# Kill processes
kill 1234
killall httpd
pkill -9 process_name

# Job control
command &           # Background
jobs               # List jobs
fg %1              # Foreground job 1
bg %1              # Background job 1

# Nice values
nice -n 10 command
renice 5 -p 1234

System Logs:

# journalctl
journalctl -u httpd
journalctl -f
journalctl --since "2025-01-01"
journalctl --boot
journalctl -p err
journalctl -u sshd --since "1 hour ago"

# Log files
tail -f /var/log/messages
grep "error" /var/log/secure

Configure Local Storage

Partitioning:

# Create partitions
fdisk /dev/sdb
  n  # New partition
  p  # Primary
  1  # Partition number
  # Default start
  +2G  # Size
  w  # Write changes

# Partition tools
parted /dev/sdb
lsblk
blkid

File Systems:

# Create file systems
mkfs.xfs /dev/sdb1
mkfs.ext4 /dev/sdb2

# Mount file systems
mount /dev/sdb1 /data
umount /data

# Persistent mounts (/etc/fstab)
UUID=xxx-xxx /data xfs defaults 0 0
/dev/sdb2 /backup ext4 defaults 0 0

# Mount all from fstab
mount -a

# Check file system
xfs_repair /dev/sdb1
fsck /dev/sdb2

Swap:

# Create swap
mkswap /dev/sdb3
swapon /dev/sdb3
swapoff /dev/sdb3

# Make swap persistent (/etc/fstab)
/dev/sdb3 swap swap defaults 0 0

# View swap
swapon --show
free -h

LVM:

# Physical Volumes
pvcreate /dev/sdb /dev/sdc
pvs
pvdisplay

# Volume Groups
vgcreate vg_data /dev/sdb /dev/sdc
vgs
vgdisplay
vgextend vg_data /dev/sdd

# Logical Volumes
lvcreate -n lv_app -L 10G vg_data
lvs
lvdisplay
lvextend -L +5G /dev/vg_data/lv_app
lvextend -L 20G /dev/vg_data/lv_app

# Resize file system
xfs_growfs /mnt/app
resize2fs /dev/vg_data/lv_app

Create and Configure File Systems

Extended Attributes:

# Set extended attributes
setfattr -n user.description -v "Important data" file.txt
getfattr -d file.txt

# Immutable flag
chattr +i file.txt
lsattr file.txt
chattr -i file.txt

NFS:

# Server side (/etc/exports)
/shared 192.168.1.0/24(rw,sync,no_root_squash)

# Export file systems
exportfs -arv
exportfs -v

# Client side
mount 192.168.1.10:/shared /mnt/nfs

# Persistent NFS mount (/etc/fstab)
192.168.1.10:/shared /mnt/nfs nfs defaults 0 0

AutoFS:

# /etc/auto.master
/misc /etc/auto.misc

# /etc/auto.misc
data -fstype=nfs,rw 192.168.1.10:/shared

# Start autofs
systemctl enable --now autofs

Deploy, Configure, and Maintain Systems

Software Management:

# DNF/YUM commands
dnf install httpd
dnf remove httpd
dnf update
dnf search apache
dnf info httpd
dnf list installed
dnf provides */semanage

# Repositories
dnf repolist
dnf-config-manager --add-repo 
dnf clean all

# RPM packages
rpm -ivh package.rpm
rpm -qa
rpm -qi httpd
rpm -ql httpd
rpm -qc httpd

Scheduled Tasks:

# Cron jobs
crontab -e
crontab -l
crontab -r

# Cron syntax
# min hour day month weekday command
0 2 * * * /backup.sh
*/15 * * * * /check.sh
0 0 * * 0 /weekly.sh

# System cron
/etc/crontab
/etc/cron.d/
/etc/cron.{hourly,daily,weekly,monthly}/

# Anacron
/etc/anacrontab

# Systemd timers
systemctl list-timers

Networking:

# NetworkManager
nmcli connection show
nmcli connection add type ethernet con-name eth0 ifname eth0
nmcli connection modify eth0 ipv4.addresses 192.168.1.100/24
nmcli connection modify eth0 ipv4.gateway 192.168.1.1
nmcli connection modify eth0 ipv4.dns 8.8.8.8
nmcli connection modify eth0 ipv4.method manual
nmcli connection up eth0
nmcli connection down eth0

# Hostname
hostnamectl set-hostname server.example.com
hostnamectl status

# DNS resolution
cat /etc/resolv.conf
nmcli connection modify eth0 ipv4.dns "8.8.8.8 8.8.4.4"

Manage Users and Groups

User Management:

# Create users
useradd john
useradd -m -s /bin/bash -c "John Doe" john
passwd john

# Modify users
usermod -aG wheel john
usermod -s /bin/bash john
usermod -L john  # Lock account
usermod -U john  # Unlock account

# Delete users
userdel john
userdel -r john  # Remove home directory

# User info
id john
finger john
chage -l john

Group Management:

# Create groups
groupadd developers
groupadd -g 2000 admins

# Modify groups
groupmod -n devs developers

# Delete groups
groupdel developers

# Group membership
gpasswd -a john developers
gpasswd -d john developers
groups john

File Permissions:

# chmod
chmod 755 script.sh
chmod u+x,g+r,o-w file.txt
chmod -R 644 /data/*

# chown
chown john file.txt
chown john:developers file.txt
chown -R john:developers /data/

# Special permissions
chmod u+s /usr/bin/passwd  # SUID
chmod g+s /data/shared/    # SGID
chmod o+t /tmp/            # Sticky bit
chmod 4755 file  # SUID
chmod 2755 dir   # SGID
chmod 1777 dir   # Sticky

# Default permissions
umask
umask 022

ACLs:

# Set ACL
setfacl -m u:john:rwx file.txt
setfacl -m g:developers:rx /data/
setfacl -m d:u:john:rwx /data/  # Default ACL

# View ACL
getfacl file.txt

# Remove ACL
setfacl -x u:john file.txt
setfacl -b file.txt  # Remove all ACLs

Manage Security

SELinux:

# SELinux status
getenforce
sestatus

# Set SELinux mode
setenforce 0  # Permissive
setenforce 1  # Enforcing

# Persistent mode (/etc/selinux/config)
SELINUX=enforcing

# SELinux contexts
ls -Z
ps -Z
id -Z

# Change context
chcon -t httpd_sys_content_t /web/index.html
restorecon -Rv /web/

# SELinux booleans
getsebool -a
setsebool -P httpd_can_network_connect on

# Troubleshoot SELinux
sealert -a /var/log/audit/audit.log
ausearch -m avc

Firewalld:

# Firewall status
firewall-cmd --state
systemctl status firewalld

# Zones
firewall-cmd --get-default-zone
firewall-cmd --set-default-zone=public
firewall-cmd --get-active-zones
firewall-cmd --list-all

# Services
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --remove-service=http --permanent
firewall-cmd --list-services

# Ports
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --remove-port=8080/tcp --permanent
firewall-cmd --list-ports

# Reload
firewall-cmd --reload

Study Resources

Official Red Hat Resources

Books

  • 📘 RHCSA/RHCE Red Hat Linux Certification Study Guide by Sander van Vugt - Best study guide
  • 📘 Red Hat RHCSA 9 Cert Guide by Sander van Vugt - Comprehensive coverage

Practice Labs

  • 🔬 CentOS Stream / AlmaLinux / Rocky Linux - Free RHEL alternatives for practice
  • 🔬 VirtualBox / VMware - Create practice VMs
  • 🔬 Red Hat Developer Subscription - Free RHEL for development

8-Week Study Plan

Weeks 1-2: Essential Tools

  • Master vim editor
  • Command-line proficiency
  • File management and permissions
  • Text processing tools
  • Lab: 15-20 hours

Weeks 3-4: Storage and File Systems

  • Partitioning and file systems
  • LVM creation and management
  • NFS and AutoFS
  • Lab: 15-20 hours

Weeks 5-6: Users and Services

  • User and group management
  • Service management with systemd
  • Networking configuration
  • Lab: 15-20 hours

Weeks 7-8: Security and Practice

  • SELinux configuration
  • Firewalld management
  • Complete practice exams
  • Timed hands-on scenarios
  • Lab: 20-25 hours

Practice Questions

FAQ

quizFrequently Asked Questions
Q
Is Linux experience required?

Yes, 6-12 months of hands-on Linux administration recommended.

Q
Can I use documentation during exam?

Yes, man pages and local documentation available. No internet access.

Q
How is the exam graded?

Automatically by Red Hat's grading system. Tasks must work correctly.

Q
What if I run out of time?

Incomplete tasks receive no credit. Time management is critical.

Q
RHCSA vs Linux+ vs LFCS?

RHCSA is hands-on and most respected. Linux+ is multiple choice. LFCS is similar hands-on format.

Q
How long is certification valid?

3 years. Maintain by earning higher certs (RHCE) or recertifying.


RHCSA Success Tips:

  • Practice on real RHEL systems
  • Master vim editor
  • Know systemctl commands by heart
  • Understand SELinux basics
  • Practice under time pressure

RHCSA is the gold standard for Linux system administrator certification - proving you can actually DO the job, not just answer questions about it!

group

CertPractice Team

Expert certification guides and study tips

Ready to Get Red Hat Certified?

Start practicing with our RHCSA question bank. Get instant feedback and track your progress.