Published by Pearson (December 26, 2013) © 2014
Mark Sobell“I have found this book to be a very useful classroom text, as well as a great Linux resource. It teaches Linux using a ground-up approach that gives students the chance to progress with their skills and grow into the Linux world. I have often pointed to this book when asked to recommend a solid Linux reference.”
– Eric Hartwell, Chair, School of Information Technology, ITT Technical Institute
Master All the Techniques You Need to Succeed with Fedora™ or Red Hat® Enterprise Linux®
- The #1 Fedora and RHEL resource–a tutorial AND on-the-job reference
- Master Linux administration and security using the command line, GUI tools, Python, systemd, and firewalld
- Set up key Internet servers, step by step, including Samba, Apache, MariaDB/MySQL, sendmail, OpenSSH, DNS, LDAP, and more
- Brand-new chapter on Virtual Machines and Cloud Computing!
In this comprehensive guide, one of the world’s leading Linux experts brings together all the knowledge and real-world insights you need to master and succeed with today’s versions of Fedora or Red Hat Enterprise Linux. Best-selling author Mark Sobell explains Linux clearly and effectively, focusing on skills you’ll actually need as a user, programmer, or administrator.
Sobell assumes no prior Linux knowledge. He starts at the beginning and walks you through every topic and task that matters, using easy-to-understand examples. Step by step, you’ll learn how to install and configure Linux from the accompanying DVD, navigate its graphical user interface, provide file/printer sharing, configure network servers, secure Linux desktops and networks, work with the command line, administer Linux efficiently, and automate administration using Python and bash.
Mark Sobell has taught hundreds of thousands of Linux and UNIX professionals. He knows every Linux nook and cranny–and he never forgets what it’s like to be new to Linux. Whatever you want to do with Linux–now or in the future–you’ll find it in this book.
Compared with other Linux books, A Practical Guide to Fedora™and Red Hat®Enterprise Linux ®, Seventh Edition, delivers
- Complete, up-to-the-minute coverage of Fedora 19 and RHEL 7 (beta)
- New programming chapters that cover Python and MariaDB/MySQL, plus a new tutorial on using GnuPG to encrypt communications
- Information on state-of-the-art security: SELinux, ACLs, firewalld (firewall-config and firewall-cmd), iptables (system-config-firewall), GnuPG, and OpenSSH
- New chapter on VMs (virtual machines) and cloud computing, including VMware, QEMU/KVM, virt-manager, virsh, GNOME Boxes, and AWS (Amazon Web Services)
- Expanded command-line coverage, including a new chapter that details 32 important utilities
- Practical information on Internet server configuration, including Apache, sendmail, NFSv4, DNS/BIND, the new LDAP Dynamic Server, and IPv6
- Complete “meat-and-potatoes” information on system/network administration, now including GRUB 2, the XFS filesystem, the new Anaconda Installer, the systemd init daemon, firewalld, and NetworkManager
- Detailed instructions on keeping Linux systems up to date, finding software packages, and working with repositories using yum and rpm
- Full coverage of the LPI Linux Essentials exam objectives plus extensive coverage of the CompTIA Linux+ exam objectives; Appendix E provides a map from objectives to pages in the book
- New coverage of find, sort, xz (compression), free, xargs, and the nano editor
- And much more, including a 500+ term glossary and comprehensive indexes
Preface xliii
Chapter 1: Welcome to Linux 1
The History of UNIX and GNU–Linux 2
Overview of Linux 11
Choosing an Operating System 19
Chapter Summary 21
Exercises 21
Part I: Installing Fedora and Red Hat Enterprise Linux 23
Chapter 2: Installation Overview 25
Conventions Used in This Book 26
LPI and CompTIA Certification Icons 28
More Information 28
Planning the Installation 29
The Installation Process 44
Downloading an Installation Image File and Writing to/Burning the Installation
Medium 46
Gathering Information About the System 50
Chapter Summary 52
Exercises 53
Advanced Exercises 53
Chapter 3: Step-by-Step Installation 55
The New Anaconda Installer 56
Running a Fedora Live Session 56
Installing Fedora/RHEL 59
Installation Tasks 69
Chapter Summary 86
Exercises 86
Advanced Exercises 86
Part II: Using Fedora and Red Hat Enterprise Linux 87
Chapter 4: Introduction to Fedora and Red Hat Enterprise Linux 89
Curbing Your Power (Superuser/root Privileges) 90
Logging In on the System 90
The GNOME 3 Standard and Classic Desktops 91
Working with the Desktop 97
Using the Nautilus File Manager 102
The Settings Window 107
Getting Help 113
Updating, Installing, and Removing Software Packages 116
Working from the Command Line 119
More About Logging In and Passwords 135
Chapter Summary 138
Exercises 139
Advanced Exercises 140
Chapter 5: The Shell 141
Special Characters 142
Ordinary Files and Directory Files 143
The Command Line 144
Standard Input and Standard Output 151
Running a Command in the Background 163
Filename Generation/Pathname Expansion 165
Builtins 170
Chapter Summary 170
Exercises 171
Advanced Exercises 173
Chapter 6: The Linux Filesystem 175
The Hierarchical Filesystem 176
Ordinary Files and Directory Files 177
Pathnames 181
Working with Directories 183
Access Permissions 191
ACLs: Access Control Lists 198
Links 203
Chapter Summary 209
Exercises 211
Advanced Exercises 212
Chapter 7: The Linux Utilities 215
Basic Utilities 216
Working with Files 224
Compressing and Archiving Files 245
Displaying User and System Information 252
Miscellaneous Utilities 255
Editing Files 262
Chapter Summary 273
Exercises 275
Advanced Exercises 276
Chapter 8: Networking and the Internet 279
Introduction to Networking 280
Types of Networks and How They Work 282
Communicate over a Network 301
Network Utilities 302
Distributed Computing 309
WWW: World Wide Web 319
Chapter Summary 321
Exercises 322
Advanced Exercises 322
Part III: System Administration 325
Chapter 9: The Bourne Again Shell (bash) 327
Background 328
Startup Files 329
Commands That Are Symbols 333
Redirecting Standard Error 333
Writing and Executing a Shell Script 336
Control Operators: Separate and Group Commands 341
Job Control 346
Manipulating the Directory Stack 349
Parameters and Variables 352
Special Characters 366
Locale 368
Time 371
Processes 373
History 376
Aliases 392
Functions 396
Controlling bash: Features and Options 398
Processing the Command Line 403
Chapter Summary 414
Exercises 415
Advanced Exercises 417
Chapter 10: System Administration: Core Concepts 419
Running Commands with root Privileges 422
The systemd init Daemon 438
SysVinit (rc) Scripts: Start and Stop System Services 448
System Operation 448
System Administration Tools 464
Setting Up a Server 481
DHCP: Configures Network Interfaces 491
nsswitch.conf: Which Service to Look at First 495
Getting Help 498
Chapter Summary 498
Exercises 499
Advanced Exercises 500
Chapter 11: Files, Directories, and Filesystems 501
Important Files and Directories 502
File Types 514
Filesystems 519
The XFS Filesystem 527
Chapter Summary 529
Exercises 530
Advanced Exercises 530
Chapter 12: Finding, Downloading, and Installing Software 531
Introduction 532
JumpStart: Installing and Removing Software Packages Using yum 534
Finding the Package That Holds an Application or File You Need 536
yum: Keeps the System Up-to-Date 538
BitTorrent 543
RPM: The RPM Package Manager 546
Installing Non-rpm Software 550
Keeping Software Up-to-Date 552
curl: Downloads Files Noninteractively 553
Chapter Summary 553
Exercises 554
Advanced Exercises 554
Chapter 13: Printing with CUPS 555
Introduction 556
The System Configures a Local Printer Automatically 558
JumpStart I: Configuring a Printer Using system-config-printer 558
JumpStart II: Setting Up a Local or Remote Printer 560
Working with the CUPS Web Interface 565
Configuring Printers 566
Traditional UNIX Printing 573
Printing from Windows 574
Printing to Windows 576
Chapter Summary 577
Exercises 577
Advanced Exercises 578
Chapter 14: Building a Linux Kernel 579
Downloading, Installing, and Prepping the Kernel Source Code 581
Configuring and Compiling the Linux Kernel 584
Installing the Kernel, Modules, and Associated Files 589
GRUB: The Linux Boot Loader 590
dmesg: Displays Kernel Messages 595
Chapter Summary 595
Exercises 596
Advanced Exercises 596
Chapter 15: Administration Tasks 597
Configuring User and Group Accounts 598
Backing Up Files 602
Scheduling Tasks 607
System Reports 611
Maintaining the System 613
Chapter Summary 629
Exercises 630
Advanced Exercises 630
Chapter 16: Configuring and Monitoring a LAN 631
More Information 632
Setting Up the Hardware 632
Configuring the Systems 636
NetworkManager: Configures Network Connections 637
Setting Up Servers 643
Introduction to Cacti 645
Chapter Summary 656
Exercises 656
Advanced Exercises 657
Chapter 17: Setting Up Virtual Machines Locally and in the Cloud 659
VMs (Virtual Machines) 660
QEMU/KVM 663
VMware Player: Installing Fedora on VMware 671
Cloud Computing 676
Chapter Summary 681
Exercises 682
Advanced Exercises 682
Part IV: Using Clients and Setting Up Servers 683
Chapter 18: OpenSSH: Secure Network Communication 685
Introduction to OpenSSH 686
Running the ssh, scp, and sftp OpenSSH Clients 689
Setting Up an OpenSSH Server (sshd) 700
Troubleshooting 706
Tunneling/Port Forwarding 707
Chapter Summary 710
Exercises 710
Advanced Exercises 711
Chapter 19: FTP: Transferring Files Across a Network 713
Introduction to FTP 714
Running the ftp and sftp FTP Clients 716
Setting Up an FTP Server (vsftpd) 724
Chapter Summary 737
Exercises 738
Advanced Exercises 738
Chapter 20: sendmail: Setting Up Mail Servers, Clients, and More 739
Introduction to sendmail 740
Setting Up a sendmail Mail Server 742
JumpStart I: Configuring sendmail on a Client 743
JumpStart II: Configuring sendmail on a Server 744
Working with sendmail Messages 745
Configuring sendmail 748
SpamAssassin 753
Additional Email Tools 758
Authenticated Relaying 764
Chapter Summary 766
Exercises 766
Advanced Exercises 767
Chapter 21: NIS and LDAP 769
Introduction to NIS 770
Running an NIS Client 773
Setting Up an NIS Server 779
LDAP 786
Setting Up an LDAP Server 789
Tools for Working with LDAP 795
Chapter Summary 798
Exercises 799
Advanced Exercises 799
Chapter 22: NFS: Sharing Directory Hierarchies 801
Introduction to NFS 803
Running an NFS Client 805
Setting Up an NFS Server 811
automount: Mounts Directory Hierarchies on Demand 821
Chapter Summary 824
Exercises 824
Advanced Exercises 825
Chapter 23: Samba: Linux and Windows File and Printer Sharing 827
Introduction to Samba 828
Running Samba Clients 832
Setting Up a Samba Server 836
Troubleshooting 846
Chapter Summary 848
Exercises 849
Advanced Exercises 849
Chapter 24: DNS/BIND: Tracking Domain Names and Addresses 851
Introduction to DNS 852
Setting Up a DNS Server 864
Configuring a DNS Server 872
Setting Up Different Types of DNS Servers 885
Chapter Summary 895
Exercises 896
Advanced Exercises 896
Chapter 25: firewalld and iptables: Setting Up a Firewall 897
The firewalld Service 898
JumpStart: Building a Firewall Using firewall-config 900
firewall-config: The Firewall Configuration Window 902
firewall-cmd: Controlling firewalld from the Command Line 906
Introduction to iptables 908
Building a Set of Rules Using iptables 916
Copying Rules to and from the Kernel 922
system-config-firewall: Generates a Set of Rules 923
Sharing an Internet Connection Using NAT 924
Chapter Summary 928
Exercises 929
Advanced Exercises 929
Chapter 26: Apache (httpd): Setting Up a Web Server 931
Introduction 932
Running an Apache Web Server 935
Filesystem Layout 938
Configuration Directives 939
Advanced Configuration 962
Troubleshooting 967
Modules 968
webalizer: Analyzes Web Traffic 975
MRTG: Monitors Traffic Loads 975
Error Codes 975
Chapter Summary 976
Exercises 977
Advanced Exercises 977
Part V: Programming Tools 979
Chapter 27: Programming the Bourne Again Shell (bash) 981
Control Structures 982
File Descriptors 1016
Parameters 1022
Variables 1031
Builtin Commands 1040
Expressions 1056
Implicit Command-Line Continuation 1063
Shell Programs 1064
Chapter Summary 1074
Exercises 1076
Advanced Exercises 1078
Chapter 28: The Python Programming Language 1081
Introduction 1082
Scalar Variables, Lists, and Dictionaries 1086
Control Structures 1092
Reading from and Writing to Files 1097
Regular Expressions 1101
Defining a Function 1102
Using Libraries 1103
Lambda Functions 1107
List Comprehensions 1108
Chapter Summary 1109
Exercises 1110
Advanced Exercises 1110
Chapter 29: The MariaDB SQL Database Management System 1113
History 1114
Notes 1114
Installing a MariaDB Server and Client 1118
Setting Up MariaDB 1119
Examples 1123
Chapter Summary 1135
Exercises 1135
Advanced Exercises 1135
Part VI: Appendixes 1137
Appendix A: Regular Expressions 1139
Characters 1140
Delimiters 1140
Simple Strings 1140
Special Characters 1140
Rules 1143
Bracketing Expressions 1144
The Replacement String 1144
Extended Regular Expressions 1145
Appendix Summary 1147
Appendix B: Help 1149
Solving a Problem 1150
Finding Linux-Related Information 1151
Specifying a Terminal 1153
Appendix C: Security Including GPG 1155
Encryption 1156
File Security 1161
Email Security 1161
Network Security 1162
Host Security 1165
Tutorial: Using GPG to Secure a File 1169
Security Resources 1180
Appendix Summary 1182
Appendix D: Keeping the System Up-to-Date Using apt-get 1183
Using apt-get to Install, Remove, and Update Packages 1184
Using apt-get to Upgrade the System 1185
Other apt-get Commands 1186
Repositories 1186
sources.list: Specifies Repositories for apt-get to Search 1187
Appendix E: LPI and CompTIA Certification 1189
More Information 1190
Linux Essentials 1190
Certification Exam 1 Objectives: LX0-101 1204
Certification Exam 2 Objectives: LX0-102 1220
Glossary 1235
JumpStart Index 1283
File Tree Index 1285
Utility Index 1289
Main Index 1295