HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
The Most Complete, Easy-to-Follow Guide to Ubuntu Linux
Mark Sobell’s A Practical Guide to Ubuntu Linux®, Second Edition, isn’t just the most thorough and up-to-date reference to installing, configuring, and working with Ubuntu. It also provides comprehensive server coverage you won’t find in any other Ubuntu book.
The fully updated JumpStart sections help you get complex servers running quickly. Whatever your questions may be, the completely revamped index gives you even faster access to the answers you’re searching for. And a brand new chapter on Perl programming teaches you the basics of this powerful system administration language.
Sobell walks you through every feature and technique you’ll need, from installing Ubuntu to working with GNOME, Samba, exim4, Apache, DNS, NIS, LDAP, ufw, firestarter, and iptables. His exceptionally clear explanations demystify everything from system security to Windows file/printer sharing. You’ll find full chapters on running Ubuntu from the command line and GUI, administering systems and security, setting up networks and Internet servers, and much more.
Along the way, you’ll learn both the “hows” and the “whys” of Ubuntu. Sobell knows every Linux nook and cranny: He’s taught hundreds of thousands of readers–and never forgets what it’s like to be new to
Linux. Whether you’re a user, administrator, or programmer, this book gives you all you need–and more.
The world’s most practical Ubuntu Linux book is now even more useful!
This book delivers
Includes DVD! Get the full version of the Ubuntu 8.10 (Intrepid Ibex) release!
A First Look at Kubuntu-Jaunty (v9.04)
Zfone: Secure Cross-Platform Voice Communication for Linux
Please visit the author's website at www.sobell.com.
List of JumpStarts xxxvii
Preface xxxix
Chapter 1: Welcome to Linux 1
Ubuntu Linux 2
The History of UNIX and GNU—Linux 3
What Is So Good About Linux? 7
Overview of Linux 12
Additional Features of Linux 17
Conventions Used in This Book 19
Chapter Summary 21
Exercises 22
PART I: Installing Ubuntu Linux 23
Chapter 2: Installation Overview 25
The Live/Install Desktop CD/DVD 26
More Information 26
Planning the Installation 27
The Installation Process 41
Downloading and Burning a CD/DVD 42
Gathering Information About the System 46
Chapter Summary 47
Exercises 48
Advanced Exercises 48
Chapter 3: Step-by-Step Installation 49
Basic Installation from the Live/Install Desktop CD/DVD 50
Graphical Partitioners 58
Upgrading to a New Release 64
Installing KDE 65
Setting Up a Dual-Boot System 66
Advanced Installation 67
Chapter Summary 81
Exercises 81
Advanced Exercises 81
PART II: Getting Started with Ubuntu Linux 83
Chapter 4: Introduction to Ubuntu Linux 85
Curbing Your Power: root Privileges/sudo 86
A Tour of the Ubuntu Linux Desktop 87
Getting the Most out of the Desktop 104
Updating, Installing, and Removing Software Packages 116
Where to Find Documentation 121
More About Logging In 130
Working from the Command Line 135
Controlling Windows: Advanced Operations 138
Chapter Summary 140
Exercises 142
Advanced Exercises 142
Chapter 5: The Linux Utilities 145
Special Characters 146
Basic Utilities 147
Working with Files 149
| (Pipe): Communicates Between Processes 156
Four More Utilities 157
Compressing and Archiving Files 160
Locating Commands 164
Obtaining User and System Information 166
Communicating with Other Users 170
Email 171
Tutorial: Using vim to Create and Edit a File 172
Chapter Summary 179
Exercises 182
Advanced Exercises 183
Chapter 6: The Linux Filesystem 185
The Hierarchical Filesystem 186
Directory Files and Ordinary Files 186
Pathnames 191
Working with Directories 193
Access Permissions 201
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 229
Running a Command in the Background 240
Filename Generation/Pathname Expansion 242
Builtins 247
Chapter Summary 247
Exercises 248
Advanced Exercises 250
PART III: Digging into Ubuntu Linux 251
Chapter 8: Linux GUIs: X and GNOME 253
X Window System 254
The Nautilus File Browser Window 262
GNOME Utilities 269
Chapter Summary 272
Exercises 273
Advanced Exercises 274
Chapter 9: The Bourne Again Shell 275
Background 276
Shell Basics 277
Parameters and Variables 296
Special Characters 310
Processes 312
History 314
Aliases 330
Functions 333
Controlling bash: Features and Options 336
Processing the Command Line 340
Chapter Summary 349
Exercises 351
Advanced Exercises 353
Chapter 10: Networking and the Internet 355
Types of Networks and How They Work 357
Communicate Over a Network 372
Network Utilities 374
Distributed Computing 381
Usenet 391
WWW: World Wide Web 393
Chapter Summary 395
Exercises 396
Advanced Exercises 397
PART IV: System Administration 399
Chapter 11: System Administration: Core Concepts 401
Running Commands with root Privileges 403
The Upstart Event-Based init Daemon 416
System Operation 426
Avoiding a Trojan Horse 436
Getting Help 438
Textual System Administration Utilities 438
Setting Up a Server 443
nsswitch.conf: Which Service to Look at First 458
PAM 461
Chapter Summary 466
Exercises 467
Advanced Exercises 467
Chapter 12: Files, Directories, and Filesystems 469
Important Files and Directories 470
File Types 482
Filesystems 487
Chapter Summary 497
Exercises 497
Advanced Exercises 498
Chapter 13: Downloading and Installing Software 499
JumpStart: Installing and Removing Packages Using aptitude 501
Finding the Package That Holds a File You Need 503
APT: Keeps the System Up-to-Date 504
dpkg: The Debian Package Management System 514
BitTorrent 521
Installing Non-dpkg Software 523
wget: Downloads Files Noninteractively 525
Chapter Summary 526
Exercises 527
Advanced Exercises 527
Chapter 14: Printing with CUPS 529
Introduction 530
JumpStart I: Configuring a Local Printer 531
system-config-printer: Configuring a Printer 532
JumpStart II: Setting Up a Local or Remote Printer Using the CUPS Web Interface 538
Traditional UNIX Printing 542
Configuring Printers 543
Printing from Windows 550
Printing to Windows 552
Chapter Summary 552
Exercises 552
Advanced Exercises 553
Chapter 15: Building a Linux Kernel 555
Prerequisites 556
Downloading the Kernel Source Code 557
Read the Documentation 559
Configuring and Compiling the Linux Kernel 559
Installing the Kernel, Modules, and Associated Files 566
Rebooting 567
grub: The Linux Boot Loader 567
dmesg: Displays Kernel Messages 575
Chapter Summary 576
Exercises 576
Advanced Exercises 576
Chapter 16: Administration Tasks 577
Configuring User and Group Accounts 578
Backing Up Files 582
Scheduling Tasks 588
System Reports 591
parted: Reports on and Partitions a Hard Disk 593
Keeping Users Informed 597
Creating Problems 598
Solving Problems 599
Chapter Summary 610
Exercises 610
Advanced Exercises 611
Chapter 17: Configuring a LAN 613
Setting Up the Hardware 614
Configuring the Systems 617
Setting Up Servers 622
More Information 623
Chapter Summary 623
Exercises 624
Advanced Exercises 624
PART V: Using Clients and Setting Up Servers 625
Chapter 18: OpenSSH: Secure Network Communication 627
Introduction to OpenSSH 628
Running the ssh, scp, and sftp OpenSSH Clients 631
Setting Up an OpenSSH Server (sshd) 640
Troubleshooting 644
Tunneling/Port Forwarding 645
Chapter Summary 648
Exercises 648
Advanced Exercises 649
Chapter 19: FTP: Transferring Files Across a Network 651
Introduction to FTP 652
Running the ftp and sftp FTP Clients 654
Setting Up an FTP Server (vsftpd) 663
Chapter Summary 675
Exercises 676
Advanced Exercises 676
Chapter 20: exim4: Setting Up Mail Servers, Clients, and More 677
Introduction to exim4 678
Setting up a Mail Server (exim4) 679
Working with exim4 Messages 684
Configuring an exim4 Mail Server 688
SpamAssassin 691
Additional Email Tools 695
Authenticated Relaying 700
Chapter Summary 702
Exercises 702
Advanced Exercises 703
Chapter 21: NIS and LDAP 705
Introduction to NIS 706
Running an NIS Client 708
Setting Up an NIS Server 714
LDAP 722
Setting Up an LDAP Server 724
Other Tools for Working with LDAP 731
Chapter Summary 734
Exercises 735
Advanced Exercises 735
Chapter 22: NFS: Sharing Filesystems 737
Introduction to NFS 738
Running an NFS Client 740
Setting Up an NFS Server 746
automount: Mounts Directory Hierarchies on Demand 756
Chapter Summary 759
Exercises 759
Advanced Exercises 760
Chapter 23: Samba: Linux and Windows File and Printer Sharing 761
Introduction to Samba 762
Setting up a Samba Server 764
Working with Linux Shares from Windows 776
Working with Windows Shares from Linux 777
Troubleshooting 779
Chapter Summary 782
Exercises 782
Advanced Exercises 782
Chapter 24: DNS/BIND: Tracking Domain Names and Addresses 783
Introduction to DNS 784
Setting Up a DNS Server 796
Setting Up Different Types of DNS Servers 811
Chapter Summary 821
Exercises 821
Advanced Exercises 822
Chapter 25: firestarter, ufw, and iptables: Setting Up a Firewall 823
Introduction to firestarter 824
firestarter: Setting Up and Maintaining a Firewall 826
ufw: The Uncomplicated Firewall 834
Introduction to iptables 836
Building a Set of Rules Using iptables 841
Copying Rules to and from the Kernel 847
Sharing an Internet Connection Using NAT 848
Chapter Summary 852
Exercises 853
Advanced Exercises 853
Chapter 26: Apache: Setting Up a Web Server 855
Introduction 856
Running a Web Server (Apache) 858
Configuration Directives 865
Configuration Files 888
Advanced Configuration 891
Troubleshooting 896
Modules 897
webalizer: Analyzes Web Traffic 904
MRTG: Monitors Traffic Loads 904
Error Codes 904
Chapter Summary 905
Exercises 906
Advanced Exercises 906
PART VI: Programming Tools 907
Chapter 27: Programming the Bourne Again Shell 909
Control Structures 910
File Descriptors 943
Parameters and Variables 946
Builtin Commands 958
Expressions 972
Shell Programs 980
Chapter Summary 990
Exercises 992
Advanced Exercises 994
Chapter 28: Perl 997
Introduction to Perl 998
Variables 1004
Control Structures 1011
Working with Files 1020
Sort 1023
Subroutines 1025
Regular Expressions 1027
CPAN Modules 1033
Examples 1035
Chapter Summary 1038
Exercises 1039
Advanced Exercises 1039
PART VII: Appendixes 1041
Appendix A: Regular Expressions 1043
Characters 1044
Delimiters 1044
Simple Strings 1044
Special Characters 1044
Rules 1047
Bracketing Expressions 1048
The Replacement String 1048
Extended Regular Expressions 1049
Appendix Summary 1051
Appendix B: Help 1053
Solving a Problem 1054
Finding Linux-Related Information 1055
Specifying a Terminal 1060
Appendix C: Security 1063
Encryption 1064
File Security 1069
Email Security 1069
Network Security 1070
Host Security 1073
Security Resources 1078
Appendix Summary 1081
Appendix D: The Free Software Definition 1083
Appendix E: The Linux 2.6 Kernel 1087
Native Posix Thread Library (NPTL) 1088
IPSecurity (IPSec) 1088
Asynchronous I/O (AIO) 1088
O(1) Scheduler 1089
OProfile 1089
kksymoops 1089
Reverse Map Virtual Memory (rmap VM) 1089
HugeTLBFS: Translation Look-Aside Buffer Filesystem 1090
remap_file_pages 1090
2.6 Network Stack Features (IGMPv3, IPv6, and Others) 1090
Internet Protocol Virtual Server (IPVS) 1091
Access Control Lists (ACLs) 1091
4GB-4GB Memory Split: Physical Address Extension (PAE) 1091
Scheduler Support for HyperThreaded CPUs 1091
Block I/O (BIO) Block Layer 1091
Support for Filesystems Larger Than 2 Terabytes 1092
New I/O Elevators 1092
Interactive Scheduler Response Tuning 1092
Glossary 1093
JumpStart Index 1143
File Tree Index 1145
Utility Index 1149
Main Index 1155