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.
- 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
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
Recommended Courses
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
Hands-on scenarios for exam preparation.
FAQ
Yes, 6-12 months of hands-on Linux administration recommended.
Yes, man pages and local documentation available. No internet access.
Automatically by Red Hat's grading system. Tasks must work correctly.
Incomplete tasks receive no credit. Time management is critical.
RHCSA is hands-on and most respected. Linux+ is multiple choice. LFCS is similar hands-on format.
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!
CertPractice Team
Expert certification guides and study tips