Preface xxxvii
Chapter 1: Welcome to Linux 1
The GNU-Linux Connection 2
The Linux 2.6 Kernel 5
The Heritage of Linux: UNIX 5
What Is So Good About Linux? 6
Overview of Linux 10
Additional Features of Linux 14
Conventions Used in This Book 16
Chapter Summary 19
Exercises 19
Part I: Installing Fedora and Red Hat Enterprise Linux 21
Chapter 2: Installation Overview 23
The Desktop Live CD and the Install DVD 24
Planning the Installation 24
The Installation Process 39
The Medium: Where Is the Source Data? 40
Downloading a CD/DVD (FEDORA) 41
Checking and Burning the CD/DVD 45
Rescue Selection of the Install DVD 46
Gathering Information About the System 46
Finding the Installation Manual 47
More Information 48
Chapter Summary 48
Exercises 49
Advanced Exercises 49
Chapter 3: Step-by-Step Installation 51
Running a Fedora Live Session 52
Installing Fedora/RHEL 55
Installation Tasks 68
The X Window System 84
Chapter Summary 85
Exercises 85
Advanced Exercises 86
Part II: Getting Started with 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
A Tour of the Fedora/RHEL Desktop 90
Getting the Most Out of the Desktop 109
Updating, Installing, and Removing Software Packages 122
Where to Find Documentation 124
More About Logging In 132
Working from the Command Line 138
Controlling Windows: Advanced Operations 141
Chapter Summary 143
Exercises 144
Advanced Exercises 145
Chapter 5: The Linux Utilities 147
Special Characters 148
Basic Utilities 149
Working with Files 151
| (Pipe): Communicates Between Processes 158
Four More Utilities 159
Compressing and Archiving Files 161
Locating Commands 166
Obtaining User and System Information 168
Communicating with Other Users 172
Email 174
Tutorial: Creating and Editing a File Using vim 174
Chapter Summary 181
Exercises 184
Advanced Exercises 185
Chapter 6: The Linux Filesystem 187
The Hierarchical Filesystem 188
Directory Files and Ordinary Files 188
Pathnames 193
Directory Commands 195
Working with Directories 200
Access Permissions 202
ACLs: Access Control Lists 207
Links 212
Chapter Summary 218
Exercises 220
Advanced Exercises 222
Chapter 7: The Shell 223
The Command Line 224
Standard Input and Standard Output 230
Running a Program in the Background 241
Filename Generation/Pathname Expansion 243
Builtins 247
Chapter Summary 248
Utilities and Builtins Introduced in This Chapter 249
Exercises 249
Advanced Exercises 251
Part III: Digging into Fedora and Red Hat Enterprise Linux 253
Chapter 8: Linux GUIs: X and GNOME 255
X Window System 256
The Nautilus File Browser Window 264
The Nautilus Spatial View 270
GNOME Utilities 272
Chapter Summary 276
Exercises 277
Advanced Exercises 277
Chapter 9: The Bourne Again Shell 279
Background 280
Shell Basics 281
Parameters and Variables 299
Special Characters 313
Processes 314
History 316
Aliases 332
Functions 335
Controlling bash Features and Options 338
Processing the Command Line 342
Chapter Summary 351
Exercises 353
Advanced Exercises 355
Chapter 10: Networking and the Internet 357
Types of Networks and How They Work 359
Communicate Over a Network 374
Network Utilities 376
Distributed Computing 383
Usenet 392
WWW: World Wide Web 395
Chapter Summary 397
Exercises 398
Advanced Exercises 399
Part IV: System Administration 401
Chapter 11: System Administration: Core Concepts 403
System Administrator and Superuser 405
Rescue Mode 411
SELinux 414
The Upstart Event-Based init Daemon (FEDORA) 417
System Operation 424
System Administration Utilities 436
Setting Up a Server 441
nsswitch.conf: Which Service to Look at First 455
PAM 458
Chapter Summary 464
Exercises 464
Advanced Exercises 465
Chapter 12: Files, Directories, and Filesystems 467
Important Files and Directories 468
File Types 480
Filesystems 485
Chapter Summary 495
Exercises 495
Advanced Exercises 496
Chapter 13: Downloading and Installing Software 497
yum: Keeps the System Up-to-Date 498
Adding and Removing Software Packages 505
BitTorrent 507
rpm: Red Hat Package Manager 510
Installing Non-rpm Software 513
Keeping Software Up-to-Date 515
wget: Downloads Files Noninteractively 517
Chapter Summary 518
Exercises 518
Advanced Exercises 518
Chapter 14: Printing with CUPS 519
Introduction 520
JumpStart I: Configuring a Local Printer 521
system-config-printer: Configuring a Printer 522
JumpStart II: Setting Up a Local or Remote Printer Using the CUPS Web Interface 527
Traditional UNIX Printing 530
Configuring Printers 532
Printing from Windows 538
Printing to Windows 540
Chapter Summary 540
Exercises 541
Advanced Exercises 541
Chapter 15: Rebuilding the Linux Kernel 543
Preparing the Source Code 544
Read the Documentation 546
Configuring and Compiling the Linux Kernel 547
Installing the Kernel and Associated Files 550
Rebooting the System 550
Boot Loader 551
dmesg: Displays Kernel Messages 553
Chapter Summary 553
Exercises 554
Advanced Exercises 554
Chapter 16: Administration Tasks 555
Configuring User and Group Accounts 556
Backing Up Files 558
Scheduling Tasks 565
System Reports 566
parted: Reports on and Partitions a Hard Disk 568
Keeping Users Informed 572
Creating Problems 572
Solving Problems 574
MySQL 584
Chapter Summary 592
Exercises 593
Advanced Exercises 593
Chapter 17: Configuring and Monitoring a LAN 595
Setting Up the Hardware 596
Configuring the Systems 598
NetworkManager: Configures Network Connections 599
The Network Configuration Window (system-config-network) 601
iwconfig: Configures a Wireless NIC 605
Setting Up Servers 606
Introduction to Cacti 607
More Information 617
Chapter Summary 617
Exercises 618
Advanced Exercises 618
Part V: Using Clients and Setting Up Servers 619
Chapter 18: OpenSSH: Secure Network Communication 621
Introduction 622
About OpenSSH 622
OpenSSH Clients 625
sshd: OpenSSH Server 633
Troubleshooting 637
Tunneling/Port Forwarding 638
Chapter Summary 641
Exercises 641
Advanced Exercises 642
Chapter 19: FTP: Transferring Files Across a Network 643
Introduction 644
More Information 645
FTP Client 645
FTP Server (vsftpd) 654
Chapter Summary 666
Exercises 667
Advanced Exercises 667
Chapter 20: sendmail: Setting Up Mail Clients, Servers, and More 669
Introduction 670
JumpStart I: Configuring sendmail on a Client 672
JumpStart II: Configuring sendmail on a Server 673
How sendmail Works 674
Configuring sendmail 677
Additional Email Tools 682
Authenticated Relaying 689
Alternatives to sendmail 691
Chapter Summary 692
Exercises 692
Advanced Exercises 693
Chapter 21: NIS and LDAP 695
Introduction to NIS 696
How NIS Works 696
Setting Up an NIS Client 699
Setting Up an NIS Server 703
LDAP 710
Setting Up an LDAP Server 713
Chapter Summary 723
Exercises 724
Advanced Exercises 724
Chapter 22: NFS: Sharing Filesystems 727
Introduction 728
More Information 730
Setting Up an NFS Client 730
Setting Up an NFS Server 736
automount: Automatically Mounts Directory Hierarchies 744
Chapter Summary 746
Exercises 746
Advanced Exercises 747
Chapter 23: Samba: Integrating Linux and Windows 749
Introduction 750
About Samba 751
JumpStart: Configuring a Samba Server Using system-config-samba 753
swat: Configures a Samba Server 755
Manually Configuring a Samba Server 759
Accessing Linux Shares from Windows 765
Accessing Windows Shares from Linux 766
Troubleshooting 768
Chapter Summary 770
Exercises 771
Advanced Exercises 771
Chapter 24: DNS/BIND: Tracking Domain Names and Addresses 773
Introduction to DNS 774
About DNS 785
JumpStart I: Setting Up a DNS Cache 787
JumpStart II: Setting Up a Domain Using system-config-bind 789
Setting Up BIND 793
Troubleshooting 805
A Full-Functioned Nameserver 807
A Slave Server 810
A Split Horizon Server 811
Chapter Summary 816
Exercises 816
Advanced Exercises 817
Chapter 25: iptables: Setting Up a Firewall 819
How iptables Works 820
About iptables 822
JumpStart: Building a Firewall Using system-config-firewall 824
Anatomy of an iptables Command 825
Building a Set of Rules 826
system-config-firewall: Generates a Set of Rules 833
Sharing an Internet Connection Using NAT 835
Chapter Summary 839
Exercises 839
Advanced Exercises 839
Chapter 26: Apache (httpd): Setting Up a Web Server 841
Introduction 842
About Apache 842
JumpStart I: Getting Apache Up and Running 844
JumpStart II: Setting Up Apache Using system-config-httpd 846
Filesystem Layout 848
Configuration Directives 850
The Fedora/RHEL httpd.conf File 870
Redirects 873
Multiviews 874
Server-Generated Directory Listings (Indexing) 874
Virtual Hosts 874
Troubleshooting 875
Modules 876
webalizer: Analyzes Web Traffic 881
MRTG: Monitors Traffic Loads 882
Error Codes 882
Chapter Summary 883
Exercises 884
Advanced Exercises 884
Part VI: Programming Tools 885
Chapter 27: Programming the Bourne Again Shell 887
Control Structures 888
File Descriptors 921
Parameters and Variables 924
Builtin Commands 936
Expressions 950
Shell Programs 958
Chapter Summary 968
Exercises 970
Advanced Exercises 972
Chapter 28: The Perl Scripting Language 975
Introduction to Perl 976
Variables 983
Control Structures 991
Working with Files 1000
Sort 1003
Subroutines 1005
Regular Expressions 1007
CPAN Modules 1013
Examples 1015
Chapter Summary 1019
Exercises 1019
Advanced Exercises 1020
Part VII: Appendixes 1021
Appendix A: Regular Expressions 1023
Characters 1024
Delimiters 1024
Simple Strings 1024
Special Characters 1024
Rules 1027
Bracketing Expressions 1028
The Replacement String 1028
Extended Regular Expressions 1029
Appendix Summary 1031
Appendix B: Help 1033
Solving a Problem 1034
Finding Linux-Related Information 1035
Specifying a Terminal 1040
Appendix C: Security 1043
Encryption 1044
File Security 1049
Email Security 1049
Network Security 1050
Host Security 1053
Security Resources 1058
Appendix Summary 1061
Appendix D: The Free Software Definition 1063
Glossary 1067
Index 1117