Fedora 31 Essentials

Book description

Gain access to all the information you need to get started with this exciting, cutting-edge operating system

Key Features

  • Start with installation and explore advanced topics, such as file sharing using both Samba and NFS
  • Gain insight into using logical volume management and firewall configuration on a Fedora 31 system
  • Get an overview of network management, including using the NetworkManager service

Book Description

Linux kernel development is perhaps the world's largest collaborative project to date. With Fedora 31 Essentials, you'll be given easily accessible information to install, use, and administer the Fedora 31 distribution.

The book begins with a concise history of the Linux operating system and the Fedora project. You'll learn how to install Fedora 31 using the dual boot configuration so that it can coexist with Windows on the same drive. After installing Fedora 31, you'll learn how to use GNOME 3 — the desktop environment included with Fedora 31 that helps you navigate through the distribution. As you progress, you'll explore the Cockpit web interface that enables you to perform tasks via a web browser instead of using the command-line. You'll also learn how to manage user access and roles on the Fedora 31 system by adding, removing, and managing users and groups. While learning advanced topics, you'll discover how to use Fedora Modularity to list, install, and remove the software packages that make up a functioning Fedora 31 system.

By the end of the book, you'll have all the information you need to confidently start working with Fedora 31.

What you will learn

  • Manage swap space efficiently to maintain the performance of the Fedora 31 system
  • Perform systemd unit configuration tasks using the systemctl command-line tool
  • Add new disk space to increase the capacity of the root file system
  • Configure a basic Linux-based email environment
  • Configure a Fedora 31 system to act as a web server using Apache
  • Create and manage containers on Fedora 31

Who this book is for

Fedora 31 Essentials is the ideal book if you're looking for essential information on getting started using the Fedora 31 distribution. Whether you are a developer, a system administrator, or a tech lover with no previous Linux administration background, you'll be able to start your adventure with this book.

Table of contents

  1. 1. Introduction
    1. 1.1 Superuser Conventions
    2. 1.2 Feedback
    3. 1.3 Errata
  2. 2. A Brief History of Linux
    1. 2.1 What exactly is Linux?
    2. 2.2 UNIX Origins
    3. 2.3 Who Created Linux?
    4. 2.4 The Early Days of Red Hat
    5. 2.5 Red Hat Support
    6. 2.6 Open Source
    7. 2.7 The Fedora Project
    8. 2.8 CentOS - The Free Alternative
    9. 2.9 Summary
  3. 3. Installing Fedora 31 on a Clean Disk Drive
    1. 3.1 Fedora Installation Options
    2. 3.2 Choosing an Installation Option
    3. 3.3 Obtaining the Fedora 31 Installation Media
    4. 3.4 Writing the ISO Installation Image to a USB Drive
      1. 3.4.1 Linux
      2. 3.4.2 macOS
      3. 3.4.3 Windows
    5. 3.5 Installing Fedora 31
    6. 3.6 Partitioning a Disk for Fedora 31
    7. 3.7 Adding a User and Root Access
    8. 3.8 The Physical Installation
    9. 3.9 Final Configuration Steps
    10. 3.10 Installing Updates
    11. 3.11 Displaying Boot Messages
    12. 3.12 Summary
  4. 4. Dual Booting Fedora 31 with Windows
    1. 4.1 Partition Resizing
    2. 4.2 Changing the Default Boot Option
    3. 4.3 Accessing the Windows Partition from Fedora 31
    4. 4.4 Summary
  5. 5. Allocating Windows Disk Partitions to Fedora 31
    1. 5.1 Unmounting the Windows Partition
    2. 5.2 Deleting the Windows Partitions from the Disk
    3. 5.3 Formatting the Unallocated Disk Partition
    4. 5.4 Mounting the New Partition
    5. 5.5 Editing the Boot Menu
    6. 5.6 Summary
  6. 6. A Guided Tour of the GNOME 3 Desktop
    1. 6.1 Installing the GNOME Desktop
    2. 6.2 An Overview of the GNOME 3 Desktop
    3. 6.3 Launching Activities
    4. 6.4 Managing Windows
    5. 6.5 Using Workspaces
    6. 6.6 Calendar and Notifications
    7. 6.7 Desktop Settings
    8. 6.8 Summary
  7. 7. An Overview of the Fedora 31 Cockpit Web Interface
    1. 7.1 An Overview of Cockpit
    2. 7.2 Installing and Enabling Cockpit
    3. 7.3 Accessing Cockpit
    4. 7.4 System
    5. 7.5 Logs
    6. 7.6 Storage
    7. 7.7 Networking
    8. 7.8 Accounts
    9. 7.9 Services
    10. 7.10 Applications
    11. 7.11 Virtual Machines
    12. 7.12 Podman Containers
    13. 7.13 Diagnostic Reports
    14. 7.14 Kernel Dump
    15. 7.15 SELinux
    16. 7.16 Software Updates
    17. 7.17 Terminal
    18. 7.18 Connecting to Multiple Servers
    19. 7.19 Enabling Stored Metrics
    20. 7.20 Summary
  8. 8. Using the Bash Shell on Fedora 31
    1. 8.1 What is a Shell?
    2. 8.2 Gaining Access to the Shell
    3. 8.3 Entering Commands at the Prompt
    4. 8.4 Getting Information about a Command
    5. 8.5 Bash Command-line Editing
    6. 8.6 Working with the Shell History
    7. 8.7 Filename Shorthand
    8. 8.8 Filename and Path Completion
    9. 8.9 Input and Output Redirection
    10. 8.10 Working with Pipes in the Bash Shell
    11. 8.11 Configuring Aliases
    12. 8.12 Environment Variables
    13. 8.13 Writing Shell Scripts
    14. 8.14 Summary
  9. 9. Managing Fedora 31 Users and Groups
    1. 9.1 User Management from the Command-line
    2. 9.2 User Management with Cockpit
    3. 9.3 Summary
  10. 10. Understanding Fedora 31 Software Installation and Management
    1. 10.1 Repositories
    2. 10.2 The fedora Repository
    3. 10.3 The fedora-modular Repository
    4. 10.4 Summary
  11. 11. Configuring Fedora 31 systemd Units
    1. 11.1 Understanding Fedora 31 systemd Targets
    2. 11.2 Understanding Fedora 31 systemd Services
    3. 11.3 Fedora 31 systemd Target Descriptions
    4. 11.4 Identifying and Configuring the Default Target
    5. 11.5 Understanding systemd Units and Unit Types
    6. 11.6 Dynamically Changing the Current Target
    7. 11.7 Enabling, Disabling and Masking systemd Units
    8. 11.8 Working with systemd Units in Cockpit
    9. 11.9 Summary
  12. 12. Fedora 31 Network Management
    1. 12.1 An Introduction to NetworkManager
    2. 12.2 Installing and Enabling NetworkManager
    3. 12.3 Basic nmcli Commands
    4. 12.4 Working with Connection Profiles
    5. 12.5 Interactive Editing
    6. 12.6 Configuring NetworkManager Permissions
    7. 12.7 Summary
  13. 13. Basic Fedora 31 Firewall Configuration with firewalld
    1. 13.1 An Introduction to firewalld
      1. 13.1.1 Zones
      2. 13.1.2 Interfaces
      3. 13.1.3 Services
      4. 13.1.4 Ports
    2. 13.2 Checking firewalld Status
    3. 13.3 Configuring Firewall Rules with firewall-cmd
      1. 13.3.1 Identifying and Changing the Default Zone
      2. 13.3.2 Displaying Zone Information
      3. 13.3.3 Adding and Removing Zone Services
      4. 13.3.4 Working with Port-based Rules
      5. 13.3.5 Creating a New Zone
      6. 13.3.6 Changing Zone/Interface Assignments
      7. 13.3.7 Masquerading
      8. 13.3.8 Adding ICMP Rules
      9. 13.3.9 Implementing Port Forwarding
    4. 13.4 Managing firewalld from the Cockpit Interface
    5. 13.5 Managing firewalld using firewall-config
    6. 13.6 Summary
  14. 14. Configuring SSH Key-based Authentication on Fedora 31
    1. 14.1 An Overview of Secure Shell (SSH)
    2. 14.2 SSH Key-based Authentication
    3. 14.3 Setting Up Key-based Authentication
    4. 14.4 Installing and Starting the SSH Service
    5. 14.5 SSH Key-based Authentication from Linux and macOS Clients
    6. 14.6 Managing Multiple Keys
    7. 14.7 SSH Key-based Authentication from Windows 10 Clients
    8. 14.8 SSH Key-based Authentication using PuTTY
    9. 14.9 Generating a Private Key with PuTTYgen
    10. 14.10 Installing the Public Key for a Google Cloud Instance
    11. 14.11 Summary
  15. 15. Fedora 31 Remote Desktop Access with VNC
    1. 15.1 Secure and Insecure Remote Desktop Access
    2. 15.2 Installing the GNOME Desktop Environment
    3. 15.3 Installing VNC on Fedora 31
    4. 15.4 Configuring the VNC Server
    5. 15.5 Connecting to a VNC Server
    6. 15.6 Establishing a Secure Remote Desktop Session
    7. 15.7 Establishing a Secure Tunnel on Windows using PuTTY
    8. 15.8 Shutting Down a Desktop Session
    9. 15.9 Troubleshooting a VNC Connection
    10. 15.10 Summary
  16. 16. Displaying Fedora 31 Applications Remotely (X11 Forwarding)
    1. 16.1 Requirements for Remotely Displaying Fedora 31 Applications
    2. 16.2 Remotely Displaying a Fedora 31 Application
    3. 16.3 Trusted X11 Forwarding
    4. 16.4 Compressed X11 Forwarding
    5. 16.5 Displaying Remote Fedora 31 Apps on Windows
    6. 16.6 Summary
  17. 17. Using NFS to Share Fedora 31 Files with Remote Systems
    1. 17.1 Ensuring NFS Services are running on Fedora 31
    2. 17.2 Configuring the Fedora 31 Firewall to Allow NFS Traffic
    3. 17.3 Specifying the Folders to be Shared
    4. 17.4 Accessing Shared Fedora 31 Folders
    5. 17.5 Mounting an NFS Filesystem on System Startup
    6. 17.6 Unmounting an NFS Mount Point
    7. 17.7 Accessing NFS Filesystems in Cockpit
    8. 17.8 Summary
  18. 18. Sharing Files between Fedora 31 and Windows Systems with Samba
    1. 18.1 Samba and Samba Client
    2. 18.2 Installing Samba on a Fedora 31 System
    3. 18.3 Configuring the Fedora 31 Firewall to Enable Samba
    4. 18.4 Configuring the smb.conf File
      1. 18.4.1 Configuring the [global] Section
      2. 18.4.2 Configuring a Shared Resource
      3. 18.4.3 Removing Unnecessary Shares
    5. 18.5 Configuring SELinux for Samba
    6. 18.6 Creating a Samba User
    7. 18.7 Testing the smb.conf File
    8. 18.8 Starting the Samba and NetBIOS Name Services
    9. 18.9 Accessing Samba Shares
    10. 18.10 Accessing Windows Shares from Fedora 31
    11. 18.11 Summary
  19. 19. An Overview of Virtualization Techniques
    1. 19.1 Guest Operating System Virtualization
    2. 19.2 Hypervisor Virtualization
      1. 19.2.1 Paravirtualization
      2. 19.2.2 Full Virtualization
      3. 19.2.3 Hardware Virtualization
    3. 19.3 Virtual Machine Networking
    4. 19.4 Summary
  20. 20. Installing KVM Virtualization on Fedora 31
    1. 20.1 An Overview of KVM
    2. 20.2 KVM Hardware Requirements
    3. 20.3 Preparing Fedora 31 for KVM Virtualization
    4. 20.4 Verifying the KVM Installation
    5. 20.5 Summary
  21. 21. Creating KVM Virtual Machines using Cockpit and virt-manager
    1. 21.1 Installing the Cockpit Virtual Machines Module
    2. 21.2 Creating a Virtual Machine in Cockpit
    3. 21.3 Starting the Installation
    4. 21.4 Working with Storage Volumes and Storage Pools
    5. 21.5 Creating a Virtual Machine using virt-manager
    6. 21.6 Starting the Virtual Machine Manager
    7. 21.7 Configuring the KVM Virtual System
    8. 21.8 Starting the KVM Virtual Machine
    9. 21.9 Summary
  22. 22. Creating KVM Virtual Machines with virt-install and virsh
    1. 22.1 Running virt-install to build a KVM Guest System
    2. 22.2 An Example Fedora 31 virt-install Command
    3. 22.3 Starting and Stopping a Virtual Machine from the Command-Line
    4. 22.4 Creating a Virtual Machine from a Configuration File
    5. 22.5 Summary
  23. 23. Creating a Fedora 31 KVM Networked Bridge Interface
    1. 23.1 Getting the Current Network Settings
    2. 23.2 Creating a Network Bridge from the Command-Line
    3. 23.3 Declaring the KVM Bridged Network
    4. 23.4 Using a Bridge Network in a Virtual Machine
    5. 23.5 Creating a Bridge Network using nm-connection-editor
    6. 23.6 Summary
  24. 24. Managing KVM using the virsh Command-Line Tool
    1. 24.1 The virsh Shell and Command-Line
    2. 24.2 Listing Guest System Status
    3. 24.3 Starting a Guest System
    4. 24.4 Shutting Down a Guest System
    5. 24.5 Suspending and Resuming a Guest System
    6. 24.6 Saving and Restoring Guest Systems
    7. 24.7 Rebooting a Guest System
    8. 24.8 Configuring the Memory Assigned to a Guest OS
    9. 24.9 Summary
  25. 25. An Introduction to Linux Containers
    1. 25.1 Linux Containers and Kernel Sharing
    2. 25.2 Container Uses and Advantages
    3. 25.3 Fedora 31 Container Tools
    4. 25.4 The Docker Registry
    5. 25.5 Container Networking
    6. 25.6 Summary
  26. 26. Working with Containers on Fedora 31
    1. 26.1 Installing the Container Tools
    2. 26.2 Pulling a Container Image
    3. 26.3 Running the Image in a Container
    4. 26.4 Managing a Container
    5. 26.5 Saving a Container to an Image
    6. 26.6 Removing an Image from Local Storage
    7. 26.7 Removing Containers
    8. 26.8 Building a Container with Buildah
    9. 26.9 Building a Container from Scratch
    10. 26.10 Container Bridge Networking
    11. 26.11 Managing Containers in Cockpit
    12. 26.12 Summary
  27. 27. Setting Up a Fedora 31 Web Server
    1. 27.1 Requirements for Configuring a Fedora 31 Web Server
    2. 27.2 Installing the Apache Web Server Packages
    3. 27.3 Configuring the Firewall
    4. 27.4 Port Forwarding
    5. 27.5 Starting the Apache Web Server
    6. 27.6 Testing the Web Server
    7. 27.7 Configuring the Apache Web Server for Your Domain
    8. 27.8 The Basics of a Secure Web Site
    9. 27.9 Configuring Apache for HTTPS
    10. 27.10 Obtaining an SSL Certificate
    11. 27.11 Summary
  28. 28. Configuring a Fedora 31 Postfix Email Server
    1. 28.1 The structure of the Email System
      1. 28.1.1 Mail User Agent
      2. 28.1.2 Mail Transfer Agent
      3. 28.1.3 Mail Delivery Agent
      4. 28.1.4 SMTP
      5. 28.1.5 SMTP Relay
    2. 28.2 Configuring a Fedora 31 Email Server
    3. 28.3 Postfix Pre-Installation Steps
    4. 28.4 Firewall/Router Configuration
    5. 28.5 Installing Postfix on Fedora 31
    6. 28.6 Configuring Postfix
    7. 28.7 Configuring DNS MX Records
    8. 28.8 Starting Postfix on a Fedora 31 System
    9. 28.9 Testing Postfix
    10. 28.10 Sending Mail via an SMTP Relay Server
    11. 28.11 Summary
  29. 29. Adding a New Disk Drive to a Fedora 31 System
    1. 29.1 Mounted File Systems or Logical Volumes
    2. 29.2 Finding the New Hard Drive
    3. 29.3 Creating Linux Partitions
    4. 29.4 Creating a File System on a Fedora 31 Disk Partition
    5. 29.5 An Overview of Journaled File Systems
    6. 29.6 Mounting a File System
    7. 29.7 Configuring Fedora 31 to Automatically Mount a File System
    8. 29.8 Adding a Disk Using Cockpit
    9. 29.9 Summary
  30. 30. Adding a New Disk to a Fedora 31 Volume Group and Logical Volume
    1. 30.1 An Overview of Logical Volume Management (LVM)
      1. 30.1.1 Volume Group (VG)
      2. 30.1.2 Physical Volume (PV)
      3. 30.1.3 Logical Volume (LV)
      4. 30.1.4 Physical Extent (PE)
      5. 30.1.5 Logical Extent (LE)
    2. 30.2 Getting Information about Logical Volumes
    3. 30.3 Adding Additional Space to a Volume Group from the Command-Line
    4. 30.4 Adding Additional Space to a Volume Group using Cockpit
    5. 30.5 Summary
  31. 31. Adding and Managing Fedora 31 Swap Space
    1. 31.1 What is Swap Space?
    2. 31.2 Recommended Swap Space for Fedora 31
    3. 31.3 Identifying Current Swap Space Usage
    4. 31.4 Adding a Swap File to a Fedora 31 System
    5. 31.5 Adding Swap as a Partition
    6. 31.6 Adding Space to a Fedora 31 LVM Swap Volume
    7. 31.7 Adding Swap Space to the Volume Group
    8. 31.8 Summary
  32. Index

Product information

  • Title: Fedora 31 Essentials
  • Author(s): Neil Smyth
  • Release date: April 2020
  • Publisher(s): Packt Publishing
  • ISBN: 9781800562790