Rocky Linux 9 Essentials: Learn to Install, Administer, and Deploy Rocky Linux 9 Systems
By Neil Smyth
()
About this ebook
Rocky Linux 9 Essentials is designed to provide detailed information on the installation, use, and administration of the Rocky Linux 9 distribution. For beginners, the book covers topics such as operating system installation, the basics of the GNOME desktop environment, configuring email and web servers, and installing packages and system updates. Additional installation topics, such as dual booting with Microsoft Windows, are also covered, together with all important security topics, such as configuring a firewall and user and group administration.
For the experienced user, topics such as remote desktop access, the Cockpit web interface, logical volume management (LVM), disk partitioning, swap management, KVM virtualization, Secure Shell (SSH), Linux Containers, and file sharing using both Samba and NFS are covered in detail to provide a thorough overview of this enterprise class operating system.
Read more from Neil Smyth
iOS 17 App Development Essentials: Developing iOS 17 Apps with Xcode 15, Swift, and SwiftUI Rating: 0 out of 5 stars0 ratingsUbuntu 23.04 Essentials: A Guide to Ubuntu 23.04 Desktop and Server Editions Rating: 5 out of 5 stars5/5Jetpack Compose 1.3 Essentials: Developing Android Apps with Jetpack Compose 1.3, Android Studio, and Kotlin Rating: 0 out of 5 stars0 ratingsUbuntu 20.04 Essentials: A Guide to Ubuntu 20.04 Desktop and Server Editions Rating: 0 out of 5 stars0 ratingsJetpack Compose 1.6 Essentials: Developing Android Apps with Jetpack Compose 1.6, Android Studio, and Kotlin Rating: 5 out of 5 stars5/5Android Studio Development Essentials Rating: 5 out of 5 stars5/5Jetpack Compose 1.5 Essentials: Developing Android Apps with Jetpack Compose 1.5, Android Studio, and Kotlin Rating: 0 out of 5 stars0 ratingsiOS 18 App Development Essentials: Developing iOS Apps with SwiftUI, Swift, and Xcode 16 Rating: 0 out of 5 stars0 ratingsAndroid Studio Giraffe Essentials - Java Edition: Developing Android Apps Using Android Studio 2022.3.1 and Java Rating: 0 out of 5 stars0 ratingsRed Hat Enterprise Linux 9 Essentials: Learn to Install, Administer and Deploy RHEL 9 Systems Rating: 0 out of 5 stars0 ratingsBuilding iOS 17 Apps with Xcode Storyboards: Develop iOS 17 Apps with Xcode 15 and Swift Rating: 0 out of 5 stars0 ratingsCentOS 8 Essentials: Learn to Install, Administer and Deploy CentOS 8 Systems Rating: 0 out of 5 stars0 ratingsAndroid Studio Hedgehog Essentials - Kotlin Edition: Developing Android Apps Using Android Studio 2023.1.1 and Kotlin Rating: 0 out of 5 stars0 ratingsAndroid 4.4 App Development Essentials Rating: 4 out of 5 stars4/5Android Studio Ladybug Essentials - Java Edition: Developing Android Apps Using Android Studio Ladybug and Java Rating: 0 out of 5 stars0 ratingsAndroid Studio Electric Eel Essentials - Kotlin Edition: Developing Android Apps Using Android Studio 2022.1.1 and Kotlin Rating: 0 out of 5 stars0 ratingsSwiftUI Essentials - iOS Edition: Learn to Develop iOS Apps Using SwiftUI, Swift 5 and Xcode 11 Rating: 0 out of 5 stars0 ratingsAndroid Studio Hedgehog Essentials - Java Edition: Developing Android Apps Using Android Studio 2023.1.1 and Java Rating: 0 out of 5 stars0 ratingsAndroid Studio Iguana Essentials - Java Edition: Developing Android Apps Using Android Studio 2023.2.1 and Java Rating: 0 out of 5 stars0 ratingsUbuntu 22.04 Essentials: A Guide to Ubuntu 22.04 Desktop and Server Editions Rating: 0 out of 5 stars0 ratingsJetpack Compose 1.7 Essentials: Developing Android Apps with Jetpack Compose 1.7, Android Studio, and Kotlin Rating: 0 out of 5 stars0 ratingsiOS 16 App Development Essentials - UIKit Edition: Learn to Develop iOS 16 Apps with Xcode 14 and Swift Rating: 0 out of 5 stars0 ratingsAndroid Studio Koala Essentials - Java Edition: A guide to developing Android apps using Android Studio Koala Feature Drop and Java Rating: 0 out of 5 stars0 ratingsAndroid Studio Electric Eel Essentials - Java Edition: Developing Android Apps Using Android Studio 2022.1.1 and Java Rating: 0 out of 5 stars0 ratings
Related to Rocky Linux 9 Essentials
Related ebooks
Mastering Proxmox Rating: 5 out of 5 stars5/5Mastering Linux System Administration Rating: 0 out of 5 stars0 ratingsJetpack Compose 1.5 Essentials: Developing Android Apps with Jetpack Compose 1.5, Android Studio, and Kotlin Rating: 0 out of 5 stars0 ratingsVirtualization Essentials Rating: 0 out of 5 stars0 ratingsRed Hat Enterprise Linux 6 Administration: Real World Skills for Red Hat Administrators Rating: 0 out of 5 stars0 ratingsMastering VMware vSphere 6.7 Rating: 0 out of 5 stars0 ratingsVMware vSphere Design Rating: 3 out of 5 stars3/5Microsoft Windows Server Administration Essentials Rating: 0 out of 5 stars0 ratingsOpenStack in Action Rating: 0 out of 5 stars0 ratingsDocker: Creating Structured Containers Rating: 0 out of 5 stars0 ratingsRed Hat Enterprise Linux 9 Essentials: Learn to Install, Administer and Deploy RHEL 9 Systems Rating: 0 out of 5 stars0 ratingsCentOS 8 Essentials: Learn to Install, Administer and Deploy CentOS 8 Systems Rating: 0 out of 5 stars0 ratingsPodman in Action: Secure, rootless containers for Kubernetes, microservices, and more Rating: 0 out of 5 stars0 ratingsCloud Computing and Virtualization Rating: 0 out of 5 stars0 ratingsUbuntu 18.04 Essentials: Learn to Install, Administer and Use Ubuntu 18.04 Systems Rating: 0 out of 5 stars0 ratingsUbuntu Linux Bible Rating: 0 out of 5 stars0 ratingsLinux in Action Rating: 0 out of 5 stars0 ratingsLearn Linux in a Month of Lunches Rating: 3 out of 5 stars3/5Implementing Samba 4 Rating: 0 out of 5 stars0 ratingsSudo Mastery: IT Mastery, #13 Rating: 0 out of 5 stars0 ratingsLearning Proxmox VE Rating: 0 out of 5 stars0 ratingsPowerCLI Cookbook Rating: 0 out of 5 stars0 ratingsCentOS 7 Server Deployment Cookbook Rating: 0 out of 5 stars0 ratingsSELinux System Administration - Second Edition Rating: 0 out of 5 stars0 ratingsTroubleshooting Ubuntu Server Rating: 0 out of 5 stars0 ratingsIntroducing VirtualBox & Debian: MyOwnGeek, #1 Rating: 0 out of 5 stars0 ratingsBSD UNIX Toolbox: 1000+ Commands for FreeBSD, OpenBSD and NetBSD Rating: 0 out of 5 stars0 ratingsKVM Virtualization Cookbook Rating: 0 out of 5 stars0 ratingsVMware - A Guide for New Admins - CLI: VMware Admin Series, #2 Rating: 0 out of 5 stars0 ratings
Operating Systems For You
Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Hacking : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Ethical Hacking Rating: 5 out of 5 stars5/5The Mac Terminal Reference and Scripting Primer Rating: 4 out of 5 stars4/5Linux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Windows 11 For Dummies Rating: 0 out of 5 stars0 ratingsApple Card and Apple Pay: A Ridiculously Simple Guide to Mobile Payments Rating: 0 out of 5 stars0 ratingsMacBook Pro User Manual: 2022 MacBook Pro User Guide for beginners and seniors to Master Macbook Pro like a Pro Rating: 0 out of 5 stars0 ratingsmacOS Sonoma For Dummies Rating: 0 out of 5 stars0 ratingsBash Command Line Pro Tips Rating: 5 out of 5 stars5/5iPhone Unlocked Rating: 0 out of 5 stars0 ratingsTor Darknet Bundle: Master the Art of Invisibility Rating: 0 out of 5 stars0 ratingsWindows 11 All-in-One For Dummies Rating: 5 out of 5 stars5/5The Linux Command Line Beginner's Guide Rating: 4 out of 5 stars4/5Networking for System Administrators: IT Mastery, #5 Rating: 5 out of 5 stars5/5iPhone For Dummies Rating: 0 out of 5 stars0 ratingsLinux Command-Line Tips & Tricks Rating: 0 out of 5 stars0 ratingsHacking for Beginners: Mastery Guide to Learn and Practice the Basics of Computer and Cyber Security Rating: 0 out of 5 stars0 ratingsMake Your PC Stable and Fast: What Microsoft Forgot to Tell You Rating: 4 out of 5 stars4/5XDA Developers' Android Hacker's Toolkit: The Complete Guide to Rooting, ROMs and Theming Rating: 2 out of 5 stars2/5The Windows Command Line Beginner's Guide: Second Edition Rating: 4 out of 5 stars4/5Ultimate SwiftUI Handbook for iOS Developers: A complete guide to native app development for iOS, macOS, watchOS, tvOS, and visionOS Rating: 0 out of 5 stars0 ratingsUbuntu: 101 Tips & Tricks Rating: 0 out of 5 stars0 ratingsCompTIA Linux+ Study Guide: Exam XK0-004 Rating: 0 out of 5 stars0 ratingsPowerShell: A Beginner's Guide to Windows PowerShell Rating: 4 out of 5 stars4/5Linux for Beginners: Linux Command Line, Linux Programming and Linux Operating System Rating: 4 out of 5 stars4/5Raspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratings
Reviews for Rocky Linux 9 Essentials
0 ratings0 reviews
Book preview
Rocky Linux 9 Essentials - Neil Smyth
Rocky Linux 9 Essentials
Rocky Linux 9 Essentials
© 2023 Neil Smyth / Payload Media, Inc. All Rights Reserved.
This book is provided for personal use only. Unauthorized use, reproduction and/or distribution strictly prohibited. All rights reserved.
The content of this book is provided for informational purposes only. Neither the publisher nor the author offers any warranties or representation, express or implied, with regard to the accuracy of information contained in this book, nor do they accept any liability for any loss or damage arising from any errors or omissions.
This book contains trademarked terms that are used solely for editorial purposes and to the benefit of the respective trademark owner. The terms used within this book are not intended as infringement of any trademarks.
Rev: 1.0a
Table of Contents
1. Introduction
1.1 Superuser Conventions
1.2 Opening a Terminal Window
1.3 Editing Files
1.4 Feedback
1.5 Errata
2. A Brief History of Rocky Linux
2.1 What exactly is Linux?
2.2 UNIX Origins
2.3 Who Created Linux?
2.4 The Early Days of Red Hat
2.5 Red Hat Support
2.6 Open Source
2.7 The Fedora Project
2.8 CentOS Stream - The Free Alternative
2.9 Rocky Linux
2.10 Summary
3. Installing Rocky Linux 9 on a Clean Disk Drive
3.1 Obtaining the Rocky Linux Installation Media
3.2 Writing the ISO Installation Image to a USB Drive
3.2.1 Linux
3.2.2 macOS
3.2.3 Windows/macOS
3.3 Installing Rocky Linux 9
3.4 Partitioning a Disk for Rocky Linux 9
3.5 Disk Encryption
3.6 User Settings
3.7 The Physical Installation
3.8 Final Configuration Steps
3.9 Installing Updates
3.10 Displaying Boot Messages
3.11 Summary
4. Dual Booting Rocky Linux 9 with Windows
4.1 Partition Resizing
4.2 Changing the Default Boot Option
4.3 Accessing the Windows Partition from Rocky 9
4.4 Summary
5. Allocating Windows Disk Partitions to Rocky Linux 9
5.1 Unmounting the Windows Partition
5.2 Deleting the Windows Partitions from the Disk
5.3 Formatting the Unallocated Disk Partition
5.4 Mounting the New Partition
5.5 Summary
6. A Guided Tour of the GNOME 40 Desktop
6.1 Installing the GNOME Desktop
6.2 An Overview of the GNOME 40 Desktop
6.3 Activity Overview
6.4 Managing Windows
6.5 Using Workspaces
6.6 Calendar and Notifications
6.7 GNOME Desktop Settings
6.8 Beyond Basic Customization
6.9 Installing GNOME Desktop Apps
6.10 Summary
7. An Overview of the Cockpit Web Interface
7.1 An Overview of Cockpit
7.2 Installing and Enabling Cockpit
7.3 Accessing Cockpit
7.4 Overview
7.5 Logs
7.6 Storage
7.7 Networking
7.8 Accounts
7.9 Services
7.10 Applications
7.11 Virtual Machines
7.12 Software Updates
7.13 Terminal
7.14 Connecting to Multiple Servers
7.15 Enabling Stored Metrics
7.16 Summary
8. Using the Bash Shell on Rocky Linux 9
8.1 What is a Shell?
8.2 Gaining Access to the Shell
8.3 Entering Commands at the Prompt
8.4 Getting Information about a Command
8.5 Bash Command-line Editing
8.6 Working with the Shell History
8.7 Filename Shorthand
8.8 Filename and Path Completion
8.9 Input and Output Redirection
8.10 Working with Pipes in the Bash Shell
8.11 Configuring Aliases
8.12 Environment Variables
8.13 Writing Shell Scripts
8.14 Summary
9. Managing Rocky Linux 9 Users and Groups
9.1 User Management from the Command-line
9.2 User Management with Cockpit
9.3 User Management using the Settings App
9.4 Summary
10. Rocky Linux 9 Software Installation and AppStreams
10.1 Repositories
10.2 The Repository
10.3 The AppStream Repository
10.4 Summary
11. Managing Rocky Linux 9 systemd Units
11.1 Understanding Rocky 9 systemd Targets
11.2 Understanding Rocky 9 systemd Services
11.3 Rocky Linux 9 systemd Target Descriptions
11.4 Identifying and Configuring the Default Target
11.5 Understanding systemd Units and Unit Types
11.6 Dynamically Changing the Current Target
11.7 Enabling, Disabling, and Masking systemd Units
11.8 Working with systemd Units in Cockpit
11.9 Summary
12. Rocky Linux 9 Network Management
12.1 An Introduction to NetworkManager
12.2 Installing and Enabling NetworkManager
12.3 Basic nmcli Commands
12.4 Working with Connection Profiles
12.5 Interactive Editing
12.6 Configuring NetworkManager Permissions
12.7 Summary
13. Rocky Linux 9 Firewall Basics
13.1 Understanding Ports and Services
13.2 Securing Ports and Services
13.3 Rocky Linux 9 Services and iptables Rules
13.4 Well-Known Ports and Services
13.5 Summary
14. Rocky Linux 9 Firewall Configuration with firewalld
14.1 An Introduction to firewalld
14.1.1 Zones
14.1.2 Interfaces
14.1.3 Services
14.1.4 Ports
14.2 Checking firewalld Status
14.3 Configuring Firewall Rules with firewall-cmd
14.3.1 Identifying and Changing the Default Zone
14.3.2 Displaying Zone Information
14.3.3 Adding and Removing Zone Services
14.3.4 Working with Port-based Rules
14.3.5 Creating a New Zone
14.3.6 Changing Zone/Interface Assignments
14.3.7 Masquerading
14.3.8 Adding ICMP Rules
14.3.9 Implementing Port Forwarding
14.4 Managing firewalld from the Cockpit Interface
14.5 Managing firewalld using firewall-config
14.6 Summary
15. Configuring SSH Key-based Authentication on Rocky Linux 9
15.1 An Overview of Secure Shell (SSH)
15.2 SSH Key-based Authentication
15.3 Setting Up Key-based Authentication
15.4 Installing and Starting the SSH Service
15.5 SSH Key-based Authentication from Linux and macOS Clients
15.6 Managing Multiple Keys
15.7 SSH Key-based Authentication from Windows Clients
15.8 SSH Key-based Authentication using PuTTY
15.9 Generating a Private Key with PuTTYgen
15.10 Summary
16. Rocky Linux 9 Remote Desktop Access with VNC
16.1 Secure and Insecure Remote Desktop Access
16.2 Installing the GNOME Desktop Environment
16.3 Installing VNC on Rocky Linux 9
16.4 Configuring the VNC Server
16.5 Connecting to a VNC Server
16.6 Establishing a Secure Remote Desktop Session
16.7 Establishing a Secure Tunnel on Windows using PuTTY
16.8 Shutting Down a Desktop Session
16.9 Troubleshooting a VNC Connection
16.10 Summary
17. Displaying Rocky Linux 9 Applications Remotely (X11 Forwarding)
17.1 Requirements for Remotely Displaying Rocky Linux 9 Applications
17.2 Displaying a Rocky Linux 9 Application Remotely
17.3 Trusted X11 Forwarding
17.4 Compressed X11 Forwarding
17.5 Displaying Remote Rocky Linux 9 Apps on Windows
17.6 Summary
18. Using NFS on Rocky Linux 9 to Share Files with Remote Systems
18.1 Ensuring NFS Services are running on Rocky Linux 9
18.2 Configuring the Rocky Linux 9 Firewall to Allow NFS Traffic
18.3 Specifying the Folders to be Shared
18.4 Accessing Shared Folders
18.5 Mounting an NFS Filesystem on System Startup
18.6 Unmounting an NFS Mount Point
18.7 Accessing NFS Filesystems in Cockpit
18.8 Summary
19. Sharing Files between Rocky Linux 9 and Windows Systems with Samba
19.1 Accessing Windows Resources from the GNOME Desktop
19.2 Samba and Samba Client
19.3 Installing Samba on Rocky 9
19.4 Configuring the Rocky 9 Firewall to Enable Samba
19.5 Configuring the smb.conf File
19.5.1 Configuring the [global] Section
19.5.2 Configuring a Shared Resource
19.5.3 Removing Unnecessary Shares
19.6 Configuring SELinux for Samba
19.7 Creating a Samba User
19.8 Testing the smb.conf File
19.9 Starting the Samba and NetBIOS Name Services
19.10 Accessing Samba Shares
19.11 Accessing Windows Shares from Rocky 9
19.12 Summary
20. An Overview of Virtualization Techniques
20.1 Guest Operating System Virtualization
20.2 Hypervisor Virtualization
20.2.1 Paravirtualization
20.2.2 Full Virtualization
20.2.3 Hardware Virtualization
20.3 Virtual Machine Networking
20.4 Summary
21. Installing KVM Virtualization on Rocky Linux 9
21.1 An Overview of KVM
21.2 KVM Hardware Requirements
21.3 Preparing Rocky 9 for KVM Virtualization
21.4 Verifying the KVM Installation
21.5 Summary
22. Creating KVM Virtual Machines on Rocky Linux 9 using Cockpit
22.1 Installing the Cockpit Virtual Machines Module
22.2 Creating a Virtual Machine in Cockpit
22.3 Starting the Installation
22.4 Working with Storage Volumes and Storage Pools
22.5 Summary
23. Creating KVM Virtual Machines on Rocky Linux 9 using virt-manager
23.1 Starting the Virtual Machine Manager
23.2 Configuring the KVM Virtual System
23.3 Starting the KVM Virtual Machine
23.4 Summary
24. Creating KVM Virtual Machines with virt-install and virsh
24.1 Running virt-install to build a KVM Guest System
24.2 An Example Rocky Linux 9 virt-install Command
24.3 Starting and Stopping a Virtual Machine from the Command-Line
24.4 Creating a Virtual Machine from a Configuration File
24.5 Summary
25. Creating a Rocky Linux 9 KVM Networked Bridge Interface
25.1 Getting the Current Network Manager Settings
25.2 Creating a Network Manager Bridge from the Command-Line
25.3 Declaring the KVM Bridged Network
25.4 Using a Bridge Network in a Virtual Machine
25.5 Creating a Bridge Network using nm-connection-editor
25.6 Summary
26. Managing KVM using the virsh Command-Line Tool
26.1 The virsh Shell and Command-Line
26.2 Listing Guest System Status
26.3 Starting a Guest System
26.4 Shutting Down a Guest System
26.5 Suspending and Resuming a Guest System
26.6 Saving and Restoring Guest Systems
26.7 Rebooting a Guest System
26.8 Configuring the Memory Assigned to a Guest OS
26.9 Summary
27. An Introduction to Linux Containers
27.1 Linux Containers and Kernel Sharing
27.2 Container Uses and Advantages
27.3 Rocky Linux 9 Container Tools
27.4 The Docker Registry
27.5 Container Networking
27.6 Summary
28. Working with Containers on Rocky Linux 9
28.1 Installing the Container Tools
28.2 Pulling a Rocky 9 Container Image
28.3 Running the Image in a Container
28.4 Managing a Container
28.5 Saving a Container to an Image
28.6 Removing an Image from Local Storage
28.7 Removing Containers
28.8 Building a Container with Buildah
28.9 Building a Container from Scratch
28.10 Container Bridge Networking
28.11 Managing Containers in Cockpit
28.12 Summary
29. Setting Up a Rocky Linux 9 Web Server
29.1 Requirements for Configuring a Rocky 9 Web Server
29.2 Installing the Apache Web Server Packages
29.3 Configuring the Firewall
29.4 Port Forwarding
29.5 Starting the Apache Web Server
29.6 Testing the Web Server
29.7 Configuring the Apache Web Server for Your Domain
29.8 The Basics of a Secure Website
29.9 Configuring Apache for HTTPS
29.10 Obtaining an SSL Certificate
29.11 Summary
30. Configuring a Rocky Linux 9 Postfix Email Server
30.1 The Structure of the Email System
30.1.1 Mail User Agent
30.1.2 Mail Transfer Agent
30.1.3 Mail Delivery Agent
30.1.4 SMTP
30.1.5 SMTP Relay
30.2 Configuring a Rocky Linux 9 Email Server
30.3 Postfix Pre-Installation Steps
30.4 Firewall/Router Configuration
30.5 Installing Postfix on Rocky Linux 9
30.6 Configuring Postfix
30.7 Configuring DNS MX Records
30.8 Starting Postfix on a Rocky Linux 9 System
30.9 Testing Postfix
30.10 Sending Mail via an SMTP Relay Server
30.11 Summary
31. Adding a New Disk Drive to a Rocky Linux 9 System
31.1 Mounted File Systems or Logical Volumes
31.2 Finding the New Hard Drive
31.3 Creating Linux Partitions
31.4 Creating a File System on a Rocky Linux 9 Disk Partition
31.5 An Overview of Journaled File Systems
31.6 Mounting a File System
31.7 Configuring Rocky Linux 9 to Mount a File System Automatically
31.8 Adding a Disk Using Cockpit
31.9 Summary
32. Adding a New Disk to a Rocky Linux 9 Volume Group and Logical Volume
32.1 An Overview of Logical Volume Management (LVM)
32.1.1 Volume Group (VG)
32.1.2 Physical Volume (PV)
32.1.3 Logical Volume (LV)
32.1.4 Physical Extent (PE)
32.1.5 Logical Extent (LE)
32.2 Getting Information about Logical Volumes
32.3 Adding Additional Space to a Volume Group from the Command-Line
32.4 Adding Additional Space to a Volume Group Using Cockpit
32.5 Summary
33. Adding and Managing Rocky Linux 9 Swap Space
33.1 What is Swap Space?
33.2 Recommended Swap Space for Rocky Linux 9
33.3 Identifying Current Swap Space Usage
33.4 Adding a Swap File to a Rocky Linux 9 System
33.5 Adding Swap as a Partition
33.6 Adding Space to a Rocky Linux 9 LVM Swap Volume
33.7 Adding Swap Space to the Volume Group
33.8 Summary
34. Rocky Linux 9 System and Process Monitoring
34.1 Managing Processes
34.2 Real-time System Monitoring with top
34.3 Command-Line Disk and Swap Space Monitoring
34.4 Summary
Index
1. Introduction
Rocky Linux 9 Essentials is designed to provide detailed information on the installation, use, and administration of the Rocky Linux 9 distribution. For beginners, the book covers topics such as operating system installation, the basics of the GNOME desktop environment, configuring email and web servers, and installing packages and system updates. Additional installation topics, such as dual booting with Microsoft Windows, are also covered, together with all important security topics, such as configuring a firewall and user and group administration.
For the experienced user, topics such as remote desktop access, the Cockpit web interface, logical volume management (LVM), disk partitioning, swap management, KVM virtualization, Secure Shell (SSH), Linux Containers, and file sharing using both Samba and NFS are covered in detail to provide a thorough overview of this enterprise class operating system.
1.1 Superuser Conventions
Rocky Linux 9, in common with Linux in general, has two types of user account, one being a standard user account with restricted access to many of the administrative files and features of the operating system, and the other a superuser (root) account with elevated privileges. Typically, a user can gain root access either by logging in as the root user, or using the su - command and entering the root password. In the following example, a user is gaining root access via the su - command:
[demo@demo-server ~]$ su -
Password:
[demo@demo-server ~]#
Note that the command prompt for a regular user ends with a $ sign while the root user has a # character. When working with the command-line, this is a useful indication as to whether or not you are currently issuing commands as the root user.
If the su - command fails, the root account on the system has most likely been disabled for security reasons. In this case, the sudo command can be used instead as outlined below.
Using sudo, a single command requiring root privileges may be executed by a non-root user. Consider the following attempt to update the operating system with the latest patches and packages:
[demo@demo-server ~]$ dnf update
Error: This command has to be run with superuser privileges (under the root user on most systems).
Optionally, user accounts may be configured so that they have access to root level privileges. Instead of using the su - command to first gain root access, user accounts with administration privileges are able to run otherwise restricted commands using sudo:
[demo@demo-server]$ sudo dnf update
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for demo:
.
.
To perform multiple commands without repeatedly using the sudo command, a command prompt with persistent super-user privileges may be accessed as follows:
[demo@demo-server]$ sudo su -
[demo@demo-server]#
The reason for raising this issue so early in the book is that many of the command-line examples outlined in this book will require root privileges. Rather than repetitively preface every command-line example with directions to run the command as root, the command prompt at the start of the line will be used to indicate whether or not the command needs to be performed as root. If the command can be run as a regular user, the command will be prefixed with a $ command prompt as follows:
$ date
If, on the other hand, the command requires root privileges, the command will be preceded by a # command prompt:
# dnf install openssh
1.2 Opening a Terminal Window
If you are using the GNOME desktop and need to access a command prompt you will need to open a Terminal window. To do this, either press the keyboard Windows key or click on the Activities button in the top left-hand corner of the screen, then select the Terminal from the dash as shown in Figure 1-1:
Figure 1-1
1.3 Editing Files
Configuring a Linux system typically involves editing files. For those new to Linux it can be unclear which editor to use. If you are running a terminal session and do not already have a preferred editor we recommend using the nano editor. To launch nano in a terminal window simply enter the following command:
# nano
Where
# nano /etc/passwd
Once loaded, nano will appear as illustrated in Figure 1-2:
Figure 1-2
To create a new file simply run nano as follows:
# nano
When you have finished editing the file, type Ctrl-S to save the file followed by Ctrl-X to exit. To open an existing file, use the Ctrl-R keyboard shortcut.
If you prefer to use a graphical editor within the GNOME desktop environment gedit is a useful starting point for basic editing tasks. To launch gedit from the desktop press Alt-F2 to display the Enter a Command window as shown in Figure 1-3:
Figure 1-3
Enter gedit into the text field and press the Enter key. After a short delay, gedit will load ready to open, create and edit files:
Figure 1-4
Alternatively, launch gedit from a terminal window either with or without the path to the file to open:
# gedit
# gedit /etc/passwd
1.4 Feedback
We want you to be satisfied with your purchase of this book. If you find any errors in the book, or have any comments, questions or concerns please contact us at [email protected].
1.5 Errata
While we make every effort to ensure the accuracy of the content of this book, it is inevitable that a book covering a subject area of this size and complexity may include some errors and oversights. Any known issues with the book will be outlined, together with solutions, at the following URL:
https://www.ebookfrenzy.com/errata/rocky9.html
In the event that you find an error not listed in the errata, please let us know by emailing our support team at [email protected].
2. A Brief History of Rocky Linux
Rocky Linux is one of several variants (also referred to as distributions) of the Linux operating system. It is based on the source code of the Red Hat Enterprise Linux distribution (RHEL), developed by a U.S. company named Red Hat, Inc. Based in Raleigh, North Carolina, the company was founded in the mid-1990s through the merger of two companies owned at the time by Marc Ewing and Bob Young. The origins of Linux, however, go back even further. This chapter will outline the history of both the Linux operating system and Red Hat, Inc. before explaining how Rocky Linux fits into this picture.
2.1 What exactly is Linux?
Linux is an operating system in much the same way that Windows is an operating system (and there any similarities between Linux and Windows end). The term operating system is used to describe the software that acts as a layer between the hardware in a computer and the applications that we all run on a daily basis. When programmers write applications, they interface with the operating system to perform such tasks as writing files to the hard disk drive and displaying information on the screen. Without an operating system, every programmer would have to write code to directly access the hardware of the system. In addition, the programmer would have to be able to support every single piece of hardware ever created to be sure the application would work on every possible hardware configuration. Because the operating system handles all of this hardware complexity, application development becomes a much easier task. Linux is just one of a number of different operating systems available today.
2.2 UNIX Origins
To understand the history of Linux, we first have to go back to AT&T Bell Laboratories in the late 1960s. During this time, AT&T had discontinued involvement in developing a new operating system named Multics. However, two AT&T engineers, Ken Thompson, and Dennis Ritchie, decided to take what they had learned from the Multics project and create a new operating system named UNIX which quickly gained popularity and wide adoption both with corporations and academic institutions.
A variety of proprietary UNIX implementations eventually came to market, including those created by IBM (AIX), Hewlett-Packard (HP-UX), and Sun Microsystems (SunOS and Solaris). In addition, a UNIX-like operating system named MINIX was created by Andrew S. Tanenbaum and designed for educational use with source code access provided to universities.
2.3 Who Created Linux?
The origins of Linux can be traced back to the work and philosophies of two people. At the heart of the Linux operating system is something called the kernel. This is the core set of features necessary for the operating system to function. The kernel manages the system’s resources and handles communication between the hardware and the applications. The Linux kernel was developed by Linus Torvalds, who, taking a dislike to MS-DOS and impatient for the availability of MINIX for the new Intel 80386 microprocessor, decided to write his own UNIX-like kernel. When he had finished the first version of the kernel, he released it under an open-source license that enabled anyone to download the source code and freely use and modify it without having to pay Linus any money.
Around the same time, Richard Stallman at the Free Software Foundation, a strong advocate of free and open-source software, was working on an open-source operating system of his own. Rather than focusing initially on the kernel, however, Stallman began by developing open-source versions of