LFCS exam format and lab strategy
LFCS is a two-hour performance-based exam: you are given tasks on a live system and graded on the end state, not on how you reached it. This guide covers what that format rewards, why the exam is sat on either Ubuntu or Rocky and what that means for preparation, and introduces the machines every later page runs on.
Start Here Guide 1 of 38 Beginner
- PlatformsUbuntu 26.04 LTS + AlmaLinux 10.2
- LVM2.03.31 (Ubuntu) / 2.03.36 (AlmaLinux)
- nftables1.1.6 (Ubuntu) / 1.1.5 (AlmaLinux)
- TimeAbout 12 min
Exam format and the five domain weights are the Linux Foundation's published certification page, linked below. Nothing here is derived from this site's practice questions - a question bank is edited, and a guide that quotes one goes quietly out of date.
- Firewallufw 0.36.2 enabled but reporting inactive / firewalld active
- Network confignetplan + systemd-networkd / NetworkManager 1.56.0
| Server Name | IP Address | OS | Roles | CPU | RAM | HDD |
|---|---|---|---|---|---|---|
| LFCS-A01 | 192.168.0.70 | Ubuntu 26.04 LTS | Primary host - most guides run only here | 2 Core | 4 GB | 50 GB |
| LFCS-C01 | 192.168.0.72 | AlmaLinux 10.2 | The other distribution - dnf, firewalld and NetworkManager | 2 Core | 4 GB | 50 GB |
This guide includes
Use this before you book anything. This matters because LFCS is sat on a live system against a two-hour clock, and you choose Ubuntu or Rocky at the start - so half the commands you revise have two correct spellings and only one of them counts on the day.
- identifying a machine's distribution, kernel and package family in one command
- running that same command on both families and watching the answers diverge
- listing the subsystems that differ between the two machines you may be given
- checking which shell you are actually in, and what
$BASH_VERSIONreports under zsh
Before you start
-
The machines, and why there are two distributions
The candidate chooses the distribution at the start of the exam.
bash Example session hostnamectl hostname; . /etc/os-release; echo "$PRETTY_NAME kernel $(uname -r)"lfcs-a01Ubuntu 26.04 LTS kernel 7.0.0-30-generichostnamectl hostname; . /etc/os-release; echo "$PRETTY_NAME kernel $(uname -r)"lfcs-c01AlmaLinux 10.2 (Lavender Lion) kernel 6.12.0-211.7.3.el10_2.x86_64Expected resultUbuntu 26.04 LTS and AlmaLinux 10.2, on kernels 7.0.0-30-generic and 6.12.0-211.7.3.el10_2.
Success conditionYou know which machine each command on this path ran on.
-
The tooling that differs between them
Not a preference - the two families genuinely ship different tools.
bash Example session printf '%-18s %s\n' "package manager" "$(command -v apt-get >/dev/null && echo apt || echo dnf)" "init system" "$(ps -p 1 -o comm=)" "firewall front end" "$(command -v ufw >/dev/null && echo ufw || echo firewall-cmd)" "network config" "$(command -v netplan >/dev/null && echo 'netplan + systemd-networkd' || echo NetworkManager)"package manager aptinit system systemdfirewall front end ufwnetwork config netplan + systemd-networkdprintf '%-18s %s\n' "package manager" "$(command -v apt-get >/dev/null && echo apt || echo dnf)" "init system" "$(ps -p 1 -o comm=)" "firewall front end" "$(command -v ufw >/dev/null && echo ufw || echo firewall-cmd)" "network config" "$(command -v netplan >/dev/null && echo 'netplan + systemd-networkd' || echo NetworkManager)"package manager aptinit system systemdfirewall front end ufwnetwork config netplan + systemd-networkdExpected resultapt with ufw and netplan on one side; dnf with firewalld and NetworkManager on the other.
Success conditionYou can see what "either distribution" actually costs you in preparation.
-
What a performance exam does not give you
The login shell, and why it matters when you are being timed.
zsh Example session echo "SHELL=$SHELL"; echo "BASH_VERSION=[$BASH_VERSION]"; echo "ZSH_VERSION=[$ZSH_VERSION]"; getent passwd sysadmin | cut -d: -f7SHELL=/bin/zshBASH_VERSION=[]ZSH_VERSION=[5.9]/bin/zshbash -c 'echo "under bash -c: BASH_VERSION=$BASH_VERSION"'under bash -c: BASH_VERSION=5.2.26(1)-releaseExpected result
SHELL=/usr/bin/zshwith an emptyBASH_VERSION, and a version appearing only once the same question is asked underbash -c.Success conditionYou will not lose exam minutes to a shell that is not the one you assumed.
Troubleshooting
Revision assumes one distribution and the exam offers a choice.
Why: LFCS is distribution-neutral: you pick the family at the start, and the tooling differs - apt/ufw/netplan against dnf/firewalld/NetworkManager.
Fix:Learn both spellings of the four things that differ - package manager, firewall, network configuration and the SELinux/AppArmor layer. Everything else is the same command on both.
A script that works when pasted fails when run from a file.
Why: These hosts log in to zsh, so
$BASH_VERSIONis empty and the interactive shell is not the one your script runs under.Fix:Give every script an explicit
#!/bin/bash, and check inside it rather than trusting the login shell.echo $SHELLreports the login shell and says nothing about the script.The exam is treated as a set of facts to recall.
Why: It is a performance exam: you are given a live machine and graded on the state you leave it in, not on the route you took.
Fix:Practise finishing tasks and verifying them - and remember a task is not done until it survives a reboot, which for a service means
enableas well asstart.