Study guide
16.1 Configure Time Service Clients
Red Hat Certified System Administrator RHCSA
Track your progress as you read
Finished sections get a check mark.
1 Introduction & Exam Overview
1.1 Current Exam Facts 1.2 Lab Setup & Performance-Based Study Strategy
2 Essential Tools: Shell, Redirection & Text Analysis
2.1 Shell Prompt and Command Syntax 2.2 Input-Output Redirection and Pipes 2.3 grep and Regular Expressions for Text Analysis
3 Essential Tools: Remote Access, Users & Text Editing
3.1 Access Remote Systems Using SSH 3.2 Log In and Switch Users in Multiuser Targets 3.3 Create and Edit Text Files
4 Essential Tools: Files, Links & Archives
4.1 Create, Delete, Copy, and Move Files and Directories 4.2 Hard and Soft Links 4.3 Archive and Compress with tar, gzip, and bzip2
5 Essential Tools: Permissions & System Documentation
5.1 List, Set, and Change Standard ugo/rwx Permissions 5.2 System Documentation: man, info, and /usr/share/doc
6 Manage Software: RPM and Flatpak
6.1 Configure Access to RPM Repositories 6.2 Install and Remove RPM Software Packages 6.3 Configure Access to Flatpak Repositories 6.4 Install and Remove Flatpak Software Packages
7 Create Simple Shell Scripts
7.1 Conditional Execution: if, test, and [] 7.2 Looping Constructs for Files and Input 7.3 Process Script Inputs ($1, $2, and Beyond) 7.4 Process Shell Command Output in Scripts
8 Operate Running Systems: Boot and Recovery
8.1 Boot, Reboot, and Shut Down a System Normally 8.2 Boot Systems into Different Targets Manually 8.3 Interrupt the Boot Process to Gain Access
9 Operate Running Systems: Processes and Tuning
9.1 Identify and Kill CPU/Memory Intensive Processes 9.2 Adjust Process Scheduling 9.3 Manage Tuning Profiles
10 Operate Running Systems: Logs, Services & File Transfer
10.1 Locate and Interpret System Log Files and Journals 10.2 Preserve System Journals 10.3 Start, Stop, and Check Status of Network Services 10.4 Securely Transfer Files Between Systems
11 Configure Local Storage: Partitions and LVM
11.1 List, Create, and Delete Partitions on GPT Disks 11.2 Create and Remove Physical Volumes 11.3 Assign Physical Volumes to Volume Groups 11.4 Create and Delete Logical Volumes
12 Configure Local Storage: Mounting and Expansion
12.1 Mount File Systems at Boot by UUID or Label 12.2 Add Partitions, Logical Volumes, and Swap Non-Destructively
13 Create and Configure File Systems: Local FS and Permissions
13.1 Create, Mount, and Use VFAT, ext4, and XFS File Systems 13.2 Extend Existing Logical Volumes 13.3 Diagnose and Correct File Permission Problems
14 Create and Configure File Systems: NFS and autofs
14.1 Mount and Unmount Network File Systems Using NFS 14.2 Configure autofs
15 Deploy and Maintain: Scheduling, Services & Targets
15.1 Schedule Tasks with at, cron, and systemd Timers 15.2 Start, Stop, and Enable Services at Boot 15.3 Configure Systems to Boot into a Specific Target
16 Deploy and Maintain: Time, Software Updates & Bootloader
16.1 Configure Time Service Clients 16.2 Install and Update Software from CDN, Remote Repos, and Local Files 16.3 Modify the System Bootloader
17 Manage Basic Networking
17.1 Configure IPv4 and IPv6 Addresses 17.2 Configure Hostname Resolution 17.3 Configure Network Services to Start Automatically at Boot 17.4 Restrict Network Access Using firewalld and firewall-cmd
18 Manage Users and Groups
18.1 Create, Delete, and Modify Local User Accounts 18.2 Change Passwords and Adjust Password Aging 18.3 Create, Delete, and Modify Local Groups and Memberships 18.4 Configure Privileged Access
19 Manage Security: Firewall, umask & SSH Keys
19.1 Configure Firewall Settings with firewall-cmd and firewalld 19.2 Manage Default File Permissions 19.3 Configure Key-Based Authentication for SSH
20 Manage Security: SELinux Modes and Contexts
20.1 Set Enforcing and Permissive Modes for SELinux 20.2 List and Identify SELinux File and Process Contexts 20.3 Restore Default File Contexts
21 Manage Security: SELinux Ports and Booleans
21.1 Manage SELinux Port Labels 21.2 Use Boolean Settings to Modify SELinux Settings
16.1 Configure Time Service Clients
Key Takeaways Explain This Topic AI
On RHEL 10, timedatectl is the primary interface for timezone, NTP enablement, and clock status; chronyd is the usual NTP/chrony client daemon behind set-ntp.
Enable synchronized time with timedatectl set-ntp true (and ensure chronyd is installed, active, and enabled); verify with timedatectl status and chronyc tracking/sources.
Set the timezone with timedatectl set-timezone Region/City; list zones with timedatectl list-timezones; confirm with timedatectl and date.
Manual clock set (timedatectl set-time) is for offline or broken-sync scenarios; prefer NTP when the exam wants continuous correct time.
Configuration must persist: enabled chronyd, correct timezone, and working sources survive reboot—re-check after reboot when time allows.
Last updated: August 2026
16.1 Configure Time Service Clients
Quick Answer: Check state with timedatectl status . Set the zone with timedatectl set-timezone America/New_York (use a real zone from timedatectl list-timezones ). Turn on network time with timedatectl set-ntp true , which relies on chronyd . Confirm sync with timedatectl , systemctl status chronyd , and chronyc tracking / chronyc sources .
Why time is a deploy objective
Under Deploy, configure, and maintain systems , Red Hat expects you to configure time service clients . Wrong time breaks TLS, Kerberos, log correlation, scheduled jobs, and certificate validity windows. EX200-style tasks look like:
- “Set the system timezone to Europe/Berlin .”
- “Ensure the system synchronizes time via NTP/chrony.”
- “Configure chrony to use server ntp.example.lab and enable the service.”
- “Make sure time stays correct after reboot.”
You are graded on persistent configuration and demonstrable sync state , not on memorizing every chrony filter directive.
- timedatectl: the front door
- systemd-timedated exposes timedatectl . Use it first on every time task. timedatectl
- # or
- timedatectl status
Typical fields you care about:
- Field Meaning
- Local time / Universal time Wall clock and UTC
- RTC time Hardware clock
- Time zone e.g. America/Chicago ( CDT, -0500 )
- System clock synchronized Whether sync is considered good
- NTP service active / inactive
- RTC in local TZ Prefer no (UTC in RTC is the modern default) timedatectl show
- timedatectl show-timesync 2>/dev/null || true
- Set timezone timedatectl list-timezones | less
- timedatectl list-timezones | grep -i chicago
- sudo timedatectl set-timezone America/Chicago
- timedatectl
- date
- ls -l /etc/localtime
- # /etc/localtime -> ../usr/share/zoneinfo/America/Chicago
Rules:
Use IANA names ( Region/City ), not legacy CST6CDT strings unless a task forces them.
set-timezone updates /etc/localtime (symlink into /usr/share/zoneinfo/ ).
Wrong spelling fails—tab-complete via list-timezones or grep . # Common exam zones (examples only—use what the task names)
- sudo timedatectl set-timezone UTC
- sudo timedatectl set-timezone America/New_York
- sudo timedatectl set-timezone Europe/London
- sudo timedatectl set-timezone Asia/Tokyo
- Enable or disable NTP (network time) sudo timedatectl set-ntp true
- timedatectl | grep -E 'NTP|synchronized'
- systemctl is-active chronyd
- systemctl is-enabled chronyd sudo timedatectl set-ntp false # only when you must freeze NTP (rare on exam)
On RHEL, set-ntp true enables and starts the configured time sync service—almost always chronyd (package chrony ). If chrony is missing on a minimal image: rpm -q chrony
- sudo dnf install -y chrony
- sudo systemctl enable --now chronyd
- sudo timedatectl set-ntp true
Exam habit: After set-ntp true , always prove chronyd is active and enabled and that timedatectl shows NTP active (and ideally synchronized after sources answer).
Manual time set (when allowed)
If the task says set the clock to a specific value and NTP is off or unreachable: sudo timedatectl set-ntp false
- sudo timedatectl set-time '2026-08-05 14:30:00'
- timedatectl
- date
Format is typically YYYY-MM-DD HH:MM:SS . With NTP on, manual sets may be refused or quickly overwritten—disable NTP first if you must set manually, then re-enable if the lasting requirement is sync.
- RTC and hwclock (awareness) sudo hwclock --show
- # timedatectl can set RTC from system time depending on options/docs
- timedatectl | grep RTC
Prefer RTC in UTC (default). Do not casually switch “RTC in local TZ” unless a task demands it—timezone + NTP correctness is the usual bar.
- chronyd: the time client daemon
- Service control systemctl status chronyd -l --no-pager
- sudo systemctl enable --now chronyd
- systemctl is-active chronyd
- systemctl is-enabled chronyd
- Unit name is chronyd . Logs: sudo journalctl -u chronyd -b --no-pager | tail -n 40
- Configuration file
Primary config: /etc/chrony.conf (and sometimes drop-ins under /etc/chrony.d/ on newer layouts—check what the system uses). grep -E '^(server|pool|peer|sourcedir)' /etc/chrony.conf
ls /etc/chrony.d 2>/dev/null
Common directives:
- Directive Role
- server HOST iburst Single NTP server; iburst speeds initial sync
- pool HOST iburst Pool DNS name returning multiple servers
- driftfile Frequency drift storage (vendor default is fine)
- makestep Allow large step corrections early
- rtcsync Keep RTC near system time via kernel
- Exam pattern—use a lab NTP server: sudo cp -a /etc/chrony.conf /etc/chrony.conf.bak
- sudo vim /etc/chrony.conf
Example fragment (follow task hostnames): # Prefer task-specified servers; comment or remove conflicting defaults if required
- server ntp.example.lab iburst
- # pool 2.rhel.pool.ntp.org iburst sudo systemctl restart chronyd
- chronyc -a makestep 2>/dev/null || sudo chronyc makestep
After edits: restart chronyd , then verify sources. Some environments use sourcedir /run/chrony-dhcp or NetworkManager-provided sources—if the task gives an explicit server, put it in config and ensure it shows in chronyc sources .
- chronyc verification (client tools) chronyc tracking
- chronyc sources -v
- chronyc sourcestats
- chronyc activity
Interpret:
tracking : Reference ID, stratum, system time offset, leap status.
sources : ^* = current sync source; ^+ = acceptable candidate; ^? = unreachable/unusable; ^x = false ticker. # Quick health
- chronyc tracking | grep -E 'Reference|System time|Leap'
- chronyc sources | head
If all sources are ^? , fix network, DNS, firewall (UDP/123), or the server line in chrony.conf . Time sync is a client config skill—also ensure the host can reach the NTP server.
Firewall note
Outbound NTP usually works without opening inbound ports. If you run chronyd as a server for others (less common on EX200 “client” wording), you would allow UDP 123 in firewalld. Client-only tasks focus on config + service enablement.
Relationship: timedatectl vs chronyc vs date
- Tool Use
- timedatectl Timezone, NTP on/off, high-level sync flags
- systemctl … chronyd Daemon lifecycle and enablement
- chronyc Detailed NTP source and tracking state
- date Human display of local time string
- hwclock Hardware clock
Do not stop at date alone—graders and self-checks want timezone + NTP service + sync evidence .
- Full exam workflows
- Workflow A — Timezone only timedatectl list-timezones | grep Berlin
- sudo timedatectl set-timezone Europe/Berlin
- timedatectl | grep 'Time zone'
- date
- Workflow B — Enable network time (standard) rpm -q chrony || sudo dnf install -y chrony
- sudo systemctl enable --now chronyd
- sudo timedatectl set-ntp true
- timedatectl
- chronyc sources -v
- chronyc tracking
Workflow C — Point chrony at a lab server sudo sed -i.bak '/^pool /s/^/#/' /etc/chrony.conf # optional: quiet default pools if task wants exclusive server
- echo 'server ntp.classroom.example iburst' | sudo tee -a /etc/chrony.conf
- sudo systemctl restart chronyd
- sleep 2
- chronyc sources -v
- sudo timedatectl set-ntp true
- timedatectl
Prefer clean, readable chrony.conf edits over blind sed if you have time—end state is what matters.
- Workflow D — Prove persistence systemctl is-enabled chronyd
- timedatectl
- sudo systemctl reboot
# after login:
- timedatectl
- systemctl is-active chronyd
- chronyc tracking
- Common traps
Setting timezone with a wrong name ( US/Eastern may work on some systems; prefer the task’s exact string from list-timezones ).
set-ntp true without chrony installed —install chrony first.
Editing chrony.conf but never restarting chronyd .
Assuming date is enough —not proof of NTP client configuration.
Leaving NTP disabled after a manual set-time when the task wanted ongoing sync.
Firewall or offline lab with unreachable public pools—use the local server the exam provides.
Confusing hardware clock skew with failed NTP—check chronyc sources for ^? .
Stopping chronyd to “fix” time for a script while forgetting to re-enable.
Only systemctl start chronyd without enable —fails after reboot.
Editing the wrong file (legacy ntp.conf for ntpd )—RHEL client path is chrony .
Relationship to other chapters
Scheduling (15.1): cron/timers fire on local time—wrong zone means wrong wall-clock schedules.
Logs (Ch10): journal timestamps follow the clock; skew confuses incident review.
Services (15.2): enable --now chronyd is the same persistence model as other daemons.
Networking: DNS and reachability to NTP servers matter for sources health.
Section checkpoint
You should query and set timezone with timedatectl , enable NTP via set-ntp true , ensure chronyd is installed, active , and enabled , configure server / pool lines in /etc/chrony.conf when required, verify with chronyc tracking and sources , use manual set-time only when appropriate, and leave a configuration that still looks correct after reboot. That is the EX200 bar for time service clients on RHEL 10.