11. Introduction
18217.8 Summary
21.1 Superuser Conventions
18318. Sharing Files between RHEL 10 and Windows with Samba
31.2 Opening a Terminal Window
18418.1 Accessing Windows Resources from the GNOME Desktop
41.3 Editing Files
18518.2 Samba and Samba Client
51.4 Feedback
18618.3 Installing Samba on RHEL 10
61.5 Errata
18718.4 Configuring the RHEL 10 Firewall to Enable Samba
72. A Brief History of Red Hat Linux
18818.5 Configuring the smb.conf File
82.1 What exactly is Linux?
18918.5.1 Configuring the [global] Section
92.2 UNIX Origins
19018.5.2 Configuring a Shared Resource
102.3 Who Created Linux?
19118.5.3 Removing Unnecessary Shares
112.4 The Early Days of Red Hat
19218.6 Configuring SELinux for Samba
122.5 Red Hat Support
19318.7 Creating a Samba User
132.6 Open Source
19418.8 Testing the smb.conf File
142.7 The Fedora Project
19518.9 Starting the Samba and NetBIOS Name Services
152.8 CentOS Stream
19618.10 Accessing Samba Shares
162.9 Summary
19718.11 Accessing Windows Shares from RHEL 10
173. Installing RHEL 10 on a Clean Disk Drive
19818.12 Summary
183.1 RHEL Installation Options
19919. An Overview of Virtualization Techniques
193.2 Obtaining the RHEL 10 Installation Media
20019.1 Guest Operating System Virtualization
203.3 Writing the ISO Installation Image to a USB Drive
20119.2 Hypervisor Virtualization
213.3.1 Linux
20219.2.1 Paravirtualization
223.3.2 macOS
20319.2.2 Full Virtualization
233.3.3 Windows/macOS
20419.2.3 Hardware Virtualization
243.4 Installing Red Hat Enterprise Linux 10
20519.3 Virtual Machine Networking
253.5 Registering the System
20619.4 Summary
263.6 Selecting the Installation Source
20720. Installing KVM Virtualization on RHEL 10
273.7 Software Selection
20820.1 An Overview of KVM
283.8 Kdump
20920.2 KVM Hardware Requirements
293.9 Partitioning a Disk for RHEL 10
21020.3 Preparing RHEL 10 for KVM Virtualization
303.10 Disk Encryption
21120.4 Verifying the KVM Installation
313.11 User Settings
21220.5 Summary
323.12 The Physical Installation
21321. Creating KVM Virtual Machines on RHEL 10 using Cockpit
333.13 Final Configuration Steps
21421.1 Installing the Cockpit Virtual Machines Module
343.14 Installing Updates
21521.2 Creating a Virtual Machine in Cockpit
353.15 Displaying Boot Messages
21621.3 Starting the Installation
363.16 Summary
21721.4 Working with Storage Volumes and Storage Pools
374. Running RHEL 10 on Windows with WSL
21821.5 Summary
384.1 Introducing Windows Subsystem for Linux
21922. Creating KVM Virtual Machines on RHEL 10 using virt-manager
394.2 WSL Architecture Overview
22022.1 Starting the Virtual Machine Manager
404.3 Installing WSL on Windows
22122.2 Configuring the KVM Virtual System
414.4 Downloading the RHEL WSL Image
22222.3 Starting the KVM Virtual Machine
424.5 Importing the RHEL Image
22322.4 Summary
434.6 Starting the RHEL System
22423. Creating KVM Virtual Machines with virt-install and virsh
444.7 Registering and Configuring the System
22523.1 Running virt-install to build a KVM Guest System
454.8 Accessing the Windows Filesystem from RHEL
22623.2 An Example RHEL 10 virt-install Command
464.9 Accessing the RHEL Filesystem from Windows
22723.3 Starting and Stopping a Virtual Machine from the Command-Line
474.10 Running RHEL GUI Applications
22823.4 Creating a Virtual Machine from a Configuration File
484.11 Shutting down WSL and Removing the RHEL Distribution
22923.5 Summary
494.12 Summary
23024. Creating a RHEL 10 KVM Networked Bridge Interface
505. A Guided Tour of the GNOME 47 Desktop
23124.1 Getting the Current Network Manager Settings
515.1 Installing the GNOME Desktop
23224.2 Creating a Network Manager Bridge from the Command-Line
525.2 An Overview of the GNOME 47 Desktop
23324.3 Declaring the KVM Bridged Network
535.3 Activity Overview
23424.4 Using a Bridge Network in a Virtual Machine
545.4 Managing Windows
23524.5 Creating a Bridge Network using nm-connection-editor
555.5 Using Workspaces
23624.6 Summary
565.6 Calendar and Notifications
23725. Managing KVM using the virsh Command-Line Tool
575.7 GNOME Desktop Settings
23825.1 The virsh Shell and Command-Line
585.8 Beyond Basic Customization
23925.2 Listing Guest System Status
595.9 Installing GNOME Desktop Apps
24025.3 Starting a Guest System
605.10 Summary
24125.4 Shutting Down a Guest System
616. An Overview of the Cockpit Web Interface
24225.5 Suspending and Resuming a Guest System
626.1 An Overview of Cockpit
24325.6 Saving and Restoring Guest Systems
636.2 Installing and Enabling Cockpit
24425.7 Rebooting a Guest System
646.3 Accessing Cockpit
24525.8 Configuring the Memory Assigned to a Guest OS
656.4 Overview
24625.9 Summary
666.5 Logs
24726. Building Custom Images with RHEL Image Builder
676.6 Storage
24826.1 Introducing Lightspeed Image Builder
686.7 Networking
24926.2 Designing an Image Blueprint in the Hybrid Cloud Console
696.8 Accounts
25026.3 Building an Image
706.9 Services
25126.4 Designing an Image Blueprint using the CLI
716.10 Applications
25226.5 The Blueprint Configuration File
726.11 Virtual Machines
25326.6 Working with the composer-cli Tool
736.12 Software Updates
25426.7 Building an Example Image
746.13 Terminal
25526.8 Summary
756.14 Enabling Stored Metrics
25627. An Introduction to Linux Containers
766.15 Summary
25727.1 Linux Containers and Kernel Sharing
777. Using the Bash Shell on RHEL 10
25827.2 Container Uses and Advantages
787.1 What is a Shell?
25927.3 RHEL 10 Container Tools
797.2 Gaining Access to the Shell
26027.4 Container Catalogs, Repositories, and Registries
807.3 Entering Commands at the Prompt
26127.5 Using the Quay.io Registry
817.4 Getting Information about a Command
26227.6 Container Networking
827.5 Bash Command-line Editing
26327.7 Summary
837.6 Working with the Shell History
26428. Working with Containers on RHEL 10
847.7 Filename Shorthand
26528.1 Installing the Container Tools
857.8 Filename and Path Completion
26628.2 Logging in to the Red Hat Container Registry
867.9 Input and Output Redirection
26728.3 Pulling a Container Image
877.10 Working with Pipes in the Bash Shell
26828.4 Running the Image in a Container
887.11 Configuring Aliases
26928.5 Managing a Container
897.12 Environment Variables
27028.6 Saving a Container to an Image
907.13 Writing Shell Scripts
27128.7 Pushing and Pulling Images
917.14 Summary
27228.8 Removing an Image from Local Storage
928. Using the RHEL Lightspeed Command-line Assistant
27328.9 Removing Containers
938.1 An Overview of the RHEL Lightspeed Command-line Assistant
27428.10 Building a Container with Buildah
948.2 Installing the Command-line Assistant
27528.11 Building a Container from Scratch
958.3 Interacting with the Assistant
27628.12 Container Bridge Networking
968.4 Using Terminal Capture Mode
27728.13 Managing Containers in Cockpit
978.5 AI Assisted Script Creation
27828.14 Summary
988.6 Command-line Assistant History
27929. An Overview of Container Files
998.7 Summary
28029.1 Understanding Container Files
1009. Managing RHEL 10 Users and Groups
28129.2 Structure of a Containerfile
1019.1 User Management from the Command-line
28229.3 Using ENTRYPOINT and CMD
1029.2 User Management with Cockpit
28329.4 A Simple Containerfile Example
1039.3 User Management using the Settings App
28429.5 Building and Running the Container
1049.4 Summary
28529.6 Summary
10510. RHEL 10 Software Installation and AppStreams
28630. Understanding RHEL Image Mode and Bootable Containers
10610.1 Repositories
28730.1 An Overview of Bootable Container Images
10710.2 The BaseOS Repository
28830.2 About the Example Bootable Container Image
10810.3 Application Streams in RHEL 10
28930.3 Preparing the Image Files
10910.4 Managing Software Versions
29030.4 Creating the Container File
11010.5 Summary
29130.5 Building the Container Image
11111. Managing RHEL 10 systemd Units
29230.6 Reviewing the Image in a Container
11211.1 Understanding RHEL 10 systemd Targets
29330.7 Converting to a Disk Image
11311.2 Understanding RHEL 10 systemd Services
29430.8 Booting the Image in a Virtual Machine
11411.3 RHEL 10 systemd Target Descriptions
29530.9 Updating Bootable Containers
11511.4 Identifying and Configuring the Default Target
29630.10 Modifying the Bootable Image
11611.5 Understanding systemd Units and Unit Types
29730.11 Updating the bootc system
11711.6 Dynamically Changing the Current Target
29830.12 Rolling Back an Update
11811.7 Enabling, Disabling, and Masking systemd Units
29930.13 Summary
11911.8 Working with systemd Units in Cockpit
30031. Setting Up a RHEL 10 Web Server
12011.9 Summary
30131.1 Requirements for Configuring a RHEL 10 Web Server
12112. RHEL 10 Network Management
30231.2 Installing the Apache Web Server Packages
12212.1 An Introduction to NetworkManager
30331.3 Configuring the Firewall
12312.2 Installing and Enabling NetworkManager
30431.4 Port Forwarding
12412.3 Basic nmcli Commands
30531.5 Starting the Apache Web Server
12512.4 Working with Connection Profiles
30631.6 Testing the Web Server
12612.5 Interactive Editing
30731.7 Configuring the Apache Web Server for Your Domain
12712.6 Configuring NetworkManager Permissions
30831.8 The Basics of a Secure Website
12812.7 Summary
30931.9 Configuring Apache for HTTPS
12913. RHEL 10 Firewall Basics
31031.10 Obtaining an SSL Certificate
13013.1 Understanding Ports and Services
31131.11 Summary
13113.2 Securing Ports and Services
31232. Configuring a RHEL 10 Postfix Email Server
13213.3 RHEL 10 Services and iptables Rules
31332.1 The Structure of the Email System
13313.4 Well-Known Ports and Services
31432.1.1 Mail User Agent
13413.5 Summary
31532.1.2 Mail Transfer Agent
13514. RHEL 10 Firewall Configuration with firewalld
31632.1.3 Mail Delivery Agent
13614.1 An Introduction to firewalld
31732.1.4 SMTP
13714.1.1 Zones
31832.1.5 SMTP Relay
13814.1.2 Interfaces
31932.2 Configuring a RHEL 10 Email Server
13914.1.3 Services
32032.3 Postfix Pre-Installation Steps
14014.1.4 Ports
32132.4 Firewall/Router Configuration
14114.2 Checking firewalld Status
32232.5 Installing Postfix on RHEL 10
14214.3 Configuring Firewall Rules with firewall-cmd
32332.6 Configuring Postfix
14314.3.1 Identifying and Changing the Default Zone
32432.7 Configuring DNS MX Records
14414.3.2 Displaying Zone Information
32532.8 Starting Postfix on a RHEL 10 System
14514.3.3 Adding and Removing Zone Services
32632.9 Testing Postfix
14614.3.4 Working with Port-based Rules
32732.10 Sending Mail via an SMTP Relay Server
14714.3.5 Creating a New Zone
32832.11 Summary
14814.3.6 Changing Zone/Interface Assignments
32933. Adding a New Disk Drive to a RHEL 10 System
14914.3.7 Masquerading
33033.1 Mounted File Systems or Logical Volumes
15014.3.8 Adding ICMP Rules
33133.2 Finding the New Hard Drive
15114.3.9 Implementing Port Forwarding
33233.3 Creating Linux Partitions
15214.4 Managing firewalld from the Cockpit Interface
33333.4 Creating a File System on a RHEL 10 Disk Partition
15314.5 Managing firewalld using firewall-config
33433.5 An Overview of Journaled File Systems
15414.6 Summary
33533.6 Mounting a File System
15515. Configuring SSH Key-based Authentication on RHEL 10
33633.7 Configuring RHEL 10 to Mount a File System Automatically
15615.1 An Overview of Secure Shell (SSH)
33733.8 Summary
15715.2 SSH Key-based Authentication
33834. Adding a New Disk to a RHEL 10 Volume Group and Logical Volume
15815.3 Setting Up Key-based Authentication
33934.1 An Overview of Logical Volume Management (LVM)
15915.4 Installing and Starting the SSH Service
34034.1.1 Volume Group (VG)
16015.5 SSH Key-based Authentication from Linux and macOS Clients
34134.1.2 Physical Volume (PV)
16115.6 Managing Multiple Keys
34234.1.3 Logical Volume (LV)
16215.7 SSH Key-based Authentication from Windows Clients
34334.1.4 Physical Extent (PE)
16315.8 SSH Key-based Authentication using PuTTY
34434.1.5 Logical Extent (LE)
16415.9 Generating a Private Key with PuTTYgen
34534.2 Getting Information about Logical Volumes
16515.10 Summary
34634.3 Adding Additional Space to a Volume Group from the Command Line
16616. Remote Desktop Access
34734.4 Summary
16716.1 Remote Desktop Access Types
34835. Adding and Managing RHEL 10 Swap Space
16816.2 Enabling Remote Desktop Access
34935.1 What is Swap Space?
16916.3 Configuring the Firewall
35035.2 Recommended Swap Space for RHEL 10
17016.4 Connecting to the Shared Desktop
35135.3 Identifying Current Swap Space Usage
17116.5 Connecting from Windows and macOS
35235.4 Adding a Swap File to a RHEL 10 System
17216.6 Configuring Remote Login Access
35335.5 Adding Swap as a Partition
17316.7 Summary
35435.6 Adding Space to a RHEL 10 LVM Swap Volume
17417. Using NFS on RHEL 10 to Share Files with Remote Systems
35535.7 Adding Swap Space to the Volume Group
17517.1 Ensuring NFS Services are running on RHEL 10
35635.8 Summary
17617.2 Configuring the Firewall to Allow NFS Traffic
35736. RHEL 10 System and Process Monitoring
17717.3 Specifying the Folders to be Shared
35836.1 Managing Processes
17817.4 Accessing Shared Folders
35936.2 Real-time System Monitoring with top
17917.5 Mounting an NFS Filesystem on System Startup
36036.3 Command-Line Disk and Swap Space Monitoring
18017.6 Unmounting an NFS Mount Point
36136.4 Summary
18117.7 Accessing NFS Filesystems in Cockpit
362Index