Tải bản đầy đủ (.pdf) (825 trang)

linux all-in-one desk reference for dummies 2nd

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (12.18 MB, 825 trang )

by Naba Barkakati
Linux
®
ALL-IN-ONE DESK REFERENCE
FOR
DUMmIES

2ND EDITION
01_752622 ffirs.qxp 3/29/06 12:08 AM Page i
Linux
®
All-in-One Desk Reference For Dummies,
®
2nd Edition
Published by
Wiley Publishing, Inc.
111 River Street
Hoboken, NJ 07030-5774
www.wiley.com
Copyright © 2006 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or
by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permit-
ted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written
permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the
Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600.
Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing,
Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at
/>Trademarks: Wiley, the Wiley Publishing logo, For Dummies, the Dummies Man logo, A Reference for the
Rest of Us!, The Dummies Way, Dummies Daily, The Fun and Easy Way, Dummies.com, and related trade


dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates in the United
States and other countries, and may not be used without written permission. Linux is a registered trade-
mark of Linus Torvalds. All other trademarks are the property of their respective owners. Wiley
Publishing, Inc., is not associated with any product or vendor mentioned in this book.
LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESENTATIONS
OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS WORK AND
SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A
PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS.
THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS
SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING,
OR OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A COMPE-
TENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE
FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS
WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE
AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR
RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN
THIS WORK MAY HAVE CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT
IS READ. FULFILLMENT OF EACH COUPON OFFER IS THE SOLE RESPONSIBILITY OF THE OFFEROR.
For general information on our other products and services, please contact our Customer Care
Department within the U.S. at 800-762-2974, outside the U.S. at 317-572-3993, or fax 317-572-4002.
For technical support, please visit www.wiley.com/techsupport.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may
not be available in electronic books.
Library of Congress Control Number: 2005931152
ISBN-13: 978-0-471-75262-2
ISBN-10: 0-471-75262-2
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
2B/RY/QU/QW/IN
01_752622 ffirs.qxp 3/29/06 12:08 AM Page ii

About the Author
Naba Barkakati is an electrical engineer and a successful computer-book
author who has experience in a wide variety of systems, ranging from MS-DOS
and Windows to UNIX and Linux. He bought his first personal computer —
an IBM PC-AT — in 1984 after graduating with a PhD in electrical engineering
from the University of Maryland at College Park. While pursuing a full-time
career in engineering, Naba dreamed of writing software for the emerging PC
software market. As luck would have it, instead of building a software empire
like Microsoft, he ended up writing successful computer books. Currently,
Naba is a Senior Level Technologist at the Center for Technology and
Engineering in the U.S. Government Accountability Office (GAO).
Over the past 15 years, Naba has written over 25 computer books on a
number of topics, ranging from Windows programming with C++ to Linux.
He has authored several best-selling titles, such as The Waite Group’s
Turbo C++ Bible, Object-Oriented Programming in C++, X Window System
Programming, Visual C++ Developer’s Guide, Borland C++ 4 Developer’s Guide,
and Linux Secrets. His books have been translated into many languages,
including Spanish, French, Polish, Greek, Italian, Chinese, Japanese, and
Korean. Naba’s most recent book is Red Hat Fedora Linux Secrets, also pub-
lished by Wiley Publishing, Inc.
Naba lives in North Potomac, Maryland, with his wife Leha, and their
children, Ivy, Emily, and Ashley.
01_752622 ffirs.qxp 3/29/06 12:08 AM Page iii
Dedication
I would like to dedicate this book to my wife Leha, and daughters Ivy, Emily,
and Ashley.
01_752622 ffirs.qxp 3/29/06 12:08 AM Page v
Author’s Acknowledgments
I am grateful to Terri Varveris for getting me started on this book — a set of
eight quick reference guides about Linux that focuses on several major Linux

distributions. As the project editor, Christopher Morris guided me through
the manuscript-submission process and kept everything moving. I appreciate
the guidance and support that Terri and Chris gave me during this project.
I would like to thank Jason Luster for reviewing the manuscript for technical
accuracy and providing many useful suggestions for improving the book’s
content.
Thanks to everyone at Wiley Publishing for transforming my raw manuscript
into this well-edited and beautifully packaged book.
Of course, there would be no reason for this book if it were not for Linux.
For this, we have Linus Torvalds and the legions of Linux developers around
the world to thank. Finally, and as always, my greatest thanks go to my wife,
Leha, and our daughters, Ivy, Emily, and Ashley — it is their love and sup-
port that keeps me going. Thanks for being there!
01_752622 ffirs.qxp 3/29/06 12:08 AM Page vii
Publisher’s Acknowledgments
We’re proud of this book; please send us your comments through our online registration form
located at
www.dummies.com/register/.
Some of the people who helped bring this book to market include the following:
Acquisitions, Editorial, and Media
Development
Project Editor: Christopher Morris
Acquisitions Editor: Terri Varveris
Copy Editor: Heidi Unger
Technical Editor: Dan DiNicolo
Editorial Manager: Kevin Kirschner
Permissions Editor: Laura Moss
Media Development Specialist: Travis Silvers
Media Development Manager:
Laura VanWinkle

Media Development Supervisor:
Richard Graves
Editorial Assistant: Amanda Foxworth
Cartoons: Rich Tennant
(
www.the5thwave.com)
Composition Services
Project Coordinator: Erin Smith
Layout and Graphics: Andrea Dahl,
Denny Hager, Melanee Prendergast,
Heather Ryan, Erin Zeltner
Proofreaders: Vicki Broyles, Joe Niesen
Indexer: Johnna VanHoose
Publishing and Editorial for Technology Dummies
Richard Swadley, Vice President and Executive Group Publisher
Andy Cummings, Vice President and Publisher
Mary Bednarek, Executive Acquisitions Director
Mary C. Corder, Editorial Director
Publishing for Consumer Dummies
Diane Graves Steele, Vice President and Publisher
Joyce Pepple, Acquisitions Director
Composition Services
Gerry Fahey, Vice President of Production Services
Debbie Stailey, Director of Composition Services
01_752622 ffirs.qxp 3/29/06 12:08 AM Page viii
Contents at a Glance
Introduction 1
Book I: Linux Basics 7
Chapter 1: Introducing Linux 9
Chapter 2: Installing Linux 31

Chapter 3: Troubleshooting and Configuring Linux 81
Chapter 4: Trying Out Linux 111
Book II: Linux Desktops 131
Chapter 1: Introducing the GUI Desktops 133
Chapter 2: Commanding the Shell 161
Chapter 3: Navigating the Linux File System 181
Chapter 4: Introducing Linux Applications 207
Chapter 5: Using Text Editors 239
Book III: Networking 251
Chapter 1: Connecting to the Internet 253
Chapter 2: Setting Up a Local Area Network 275
Chapter 3: Adding a Wireless Ethernet LAN 287
Chapter 4: Managing the Network 299
Book IV: Internet 311
Chapter 1: E-Mailing and IMing in Linux 313
Chapter 2: Browsing the Web 333
Chapter 3: Reading Newsgroups and RSS Feeds 345
Chapter 4: Using FTP 361
Book V: Administration 371
Chapter 1: Introducing Basic System Administration 373
Chapter 2: Managing Users and Groups 413
Chapter 3: Managing File Systems 425
Chapter 4: Installing and Updating Applications 449
Chapter 5: Customizing the Linux Kernel 473
02_752622 ftoc.qxp 4/4/06 9:11 AM Page ix
Book VI: Security 497
Chapter 1: Introducing Linux Security 499
Chapter 2: Securing a Linux Host 513
Chapter 3: Improving Network Security 529
Chapter 4: Performing Computer Security Audits 547

Book VII: Internet Servers 563
Chapter 1: Managing Internet Services 565
Chapter 2: Running a Web Server 583
Chapter 3: Setting Up the FTP Server 607
Chapter 4: Managing Mail and News Servers 613
Chapter 5: Managing DNS 639
Chapter 6: Using Samba and NFS 661
Book VIII: Programming 671
Chapter 1: Programming in Linux 673
Chapter 2: Programming in C 699
Chapter 3: Writing Shell Scripts 731
Chapter 4: Programming in Perl 743
Appendix 771
Index 777
02_752622 ftoc.qxp 4/4/06 9:11 AM Page x
Table of Contents
Introduction 1
About This Book 2
Conventions Used in This Book 3
What You Don’t Have to Read 3
Who Are You? 3
How This Book Is Organized 4
What’s on the DVD? 5
Icons Used in This Book 5
Where to Go from Here 6
Book I: Linux Basics 7
Chapter 1: Introducing Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
What Is Linux? 9
Linux distributions 10
Making sense of version numbers 14

Linux Standard Base (LSB) 15
What a Linux Distribution Includes 16
GNU software 17
GUIs and applications 19
Networks 21
Internet servers 21
Software development 22
Online documentation 23
What Linux Helps You Manage 24
Disks, CD-ROMs, and DVD-ROMs 25
Peripheral devices 26
File systems and sharing 26
Network 27
Getting Started 27
Install 27
Configure 28
Explore 28
Find out more 29
Chapter 2: Installing Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
Following the Installation Steps 32
Checking Your PC’s Hardware 34
Trying Out the Knoppix Live CD 36
Burning CDs or DVDs from ISO Images 37
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xi
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xii
Using a CD burner application 37
Using Knoppix to burn CDs or DVDs 38
Setting Aside Space for Linux 39
Resizing a Windows partition using PartitionMagic 40

Resizing a partition with QTParted in Knoppix 41
Installing Debian GNU/Linux 42
Getting an overview of the installation 43
Completing the Debian installation 44
Installing Fedora Core 48
Selecting keyboard and installation type 49
Partitioning the hard drive for Fedora Core 50
Setting up key system parameters 51
Selecting and installing the package groups 54
Configuring the firewall and SELinux after first boot 56
Installing MEPIS 57
Installing SUSE Linux 60
Performing an FTP install 60
Installing SUSE Linux from CDs 63
Starting the SUSE install in YaST 65
Installing Ubuntu 71
Installing Xandros Desktop 73
Using Xandros Express Install 75
Using Xandros Custom Install 76
Chapter 3: Troubleshooting and Configuring Linux . . . . . . . . . . . . . . . .81
Using Text Mode Installation 82
Troubleshooting X 82
Resolving Other Installation Problems 84
Using Knoppix boot commands 84
The fatal signal 11 error 86
Getting around the PC reboot problem 87
Using Linux kernel boot options 87
Setting Up Printers 90
Configuring printers in Debian 90
Configuring printers in Fedora Core 92

Configuring printers in Knoppix and MEPIS 94
Configuring printers in SUSE 97
Configuring printers in Ubuntu 99
Configuring printers in Xandros 100
Managing DVDs and CD-ROMs 103
Installing Other Software 103
Installing software in Debian, MEPIS, and Ubuntu 104
Installing software in Fedora Core 106
Installing software in SUSE 107
Installing software in Xandros 108
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xii
Table of Contents
xiii
Chapter 4: Trying Out Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
Starting Linux 111
Exploring GUI Desktops 115
GNOME 115
KDE 122
Playing with the Shell 125
Starting the bash shell 126
Understanding shell commands 127
Trying a few Linux commands 128
Shutting Down 129
Book II: Linux Desktops 131
Chapter 1: Introducing the GUI Desktops . . . . . . . . . . . . . . . . . . . . . . .133
Getting to Know the Common Features of the GUIs 134
Desktop context menus 135
Icon context menus 136
The panel 137
The Main Menu 139

Introducing Debian’s GNOME Desktop 142
Introducing Fedora Core’s GNOME Desktop 144
Introducing the Knoppix Desktop 146
Introducing the MEPIS KDE Desktop 150
Introducing the SUSE Desktop 153
Introducing Ubuntu’s GNOME Desktop 156
Introducing the Xandros Desktop 158
Chapter 2: Commanding the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
Opening Terminal Windows and Virtual Consoles 161
Using the Bash Shell 162
Understanding the syntax of shell commands 162
Combining shell commands 164
Controlling command input and output 164
Typing less with automatic command completion 167
Going wild with asterisks and question marks 167
Repeating previously typed commands 169
Discovering and Using Linux Commands 170
Becoming root (superuser) 173
Managing processes 174
Working with date and time 175
Processing files 176
Writing Shell Scripts 179
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xiii
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xiv
Chapter 3: Navigating the Linux File System . . . . . . . . . . . . . . . . . . . .181
Understanding the Linux File System 181
Using GUI File Managers 186
Using the Nautilus shell 186
Using Konqueror 190

Navigating the File System with Linux Commands 194
Commands for directory navigation 195
Commands for directory listings and permissions 196
Commands for changing permissions and ownerships 199
Commands for working with files 200
Commands for working with directories 201
Commands for finding files 202
Commands for mounting and unmounting 203
Commands for checking disk-space usage 204
Chapter 4: Introducing Linux Applications . . . . . . . . . . . . . . . . . . . . . .207
Taking Stock of Linux Applications 207
Office Applications and Tools 214
OpenOffice.org office suite 214
Calendars 218
Calculators 219
Commercially available office applications for Linux 220
Aspell spelling checker 222
Databases 223
Reviewing the steps to build the database 224
Designing the database 225
Creating an empty database 225
Using the MySQL monitor 226
Defining a table 226
Loading data into a table 227
Querying the database 228
Multimedia Applications 228
Using a digital camera 229
Playing audio CDs 230
Playing sound files 231
Burning a CD 233

Graphics and Imaging 234
The GIMP 234
GNOME Ghostview 236
Chapter 5: Using Text Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
Using GUI Text Editors 239
Text Editing with ed and vi 240
Using ed 241
Using vi 245
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xiv
Table of Contents
xv
Book III: Networking 251
Chapter 1: Connecting to the Internet . . . . . . . . . . . . . . . . . . . . . . . . . .253
Understanding the Internet 253
Deciding How to Connect to the Internet 254
Connecting with DSL 256
How DSL works 257
DSL alphabet soup: ADSL, IDSL, SDSL 258
Typical DSL setup 259
Connecting with a Cable Modem 262
How a cable modem works 262
Typical cable modem setup 264
Setting Up Dialup Networking 267
Connecting the modem 269
Setting up and activating a PPP connection 270
Configuring CHAP and PAP authentication 272
Chapter 2: Setting Up a Local Area Network . . . . . . . . . . . . . . . . . . . .275
Understanding TCP/IP 275
TCP/IP and the Internet 277
IP addresses 277

Internet services and port numbers 278
Setting Up an Ethernet LAN 279
How Ethernet works 280
Ethernet cables 281
Configuring TCP/IP Networking 283
Connecting Your LAN to the Internet 285
Chapter 3: Adding a Wireless Ethernet LAN . . . . . . . . . . . . . . . . . . . . .287
Understanding Wireless Ethernet Networks 287
Understanding infrastructure and ad hoc modes 289
Understanding Wired Equivalent Privacy (WEP) 289
Setting Up the Wireless Hardware 291
Configuring the wireless access point 292
Configuring Wireless Networking 293
Chapter 4: Managing the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
Discovering the TCP/IP Configuration Files 299
/etc/hosts 300
/etc/networks 300
/etc/host.conf 300
/etc/resolv.conf 301
/etc/hosts.allow 301
/etc/hosts.deny 302
/etc/nsswitch.conf 302
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xv
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xvi
Checking Out TCP/IP Networks 303
Checking the network interfaces 303
Checking the IP routing table 304
Checking connectivity to a host 304
Checking network status 305

Sniffing network packets 307
Configuring Networks at Boot Time 308
Book IV: Internet 311
Chapter 1: E-Mailing and IMing in Linux . . . . . . . . . . . . . . . . . . . . . . .313
Understanding Electronic Mail 314
How MUA and MTA work 314
Mail message enhancements 316
Taking Stock of Mail Readers and IM Clients in Linux 316
E-Mailing in Linux 317
Introducing Evolution 317
Introducing Thunderbird 321
Introducing KMail 325
Instant Messaging in Linux 327
Using Gaim 327
Using Kopete 329
Chapter 2: Browsing the Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
Discovering the World Wide Web 333
Like a giant spider’s web 334
Links and URLs 335
Web servers and Web browsers 337
Web Browsing in Linux 338
Checking out Web browsers for Linux 339
Introducing Firefox’s user interface 340
Changing your home page 342
Surfing the Net with Firefox 343
Chapter 3: Reading Newsgroups and RSS Feeds . . . . . . . . . . . . . . . .345
Understanding Newsgroups 345
Newsgroup hierarchy 346
Top-level newsgroup categories 347
Linux-related newsgroups 348

Reading Newsgroups from Your ISP 349
Taking stock of newsreaders 350
Reading newsgroups with Thunderbird 350
Newsgroup subscriptions 353
Posting news 353
Using KNode 354
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xvi
Table of Contents
xvii
Reading and Searching Newsgroups at Web Sites 357
Reading RSS Feeds 358
Examining an RSS Feed 358
Reading RSS Feeds 359
Chapter 4: Using FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
Using Graphical FTP Clients 361
Using gFTP 362
Introducing KBear 363
Using a Web browser as an FTP client 364
Using the Command-Line FTP Client 366
Book V: Administration 371
Chapter 1: Introducing Basic System Administration . . . . . . . . . . . . .373
Taking Stock of System Administration Tasks 373
Introducing Some GUI Sysadmin Tools 375
GUI sysadmin tools in Debian 375
GUI sysadmin tools in Fedora Core 375
GUI sysadmin tools in Knoppix 376
GUI sysadmin tools in MEPIS 377
GUI sysadmin tools in SUSE 378
GUI sysadmin tools in Ubuntu 379
GUI sysadmin tools in Xandros 380

How to Become root 381
Using the su - command 382
Becoming root for the GUI utilities 382
Recovering from a forgotten root password 383
Understanding How Linux Boots 384
Understanding the init process 384
Examining the /etc/inittab file 386
Trying a new run level with the init command 387
Understanding the Linux startup scripts 388
Manually starting and stopping servers 389
Automatically starting servers at system startup 389
Taking Stock of Linux System Configuration Files 390
Monitoring System Performance 393
Using the top utility 393
Using the uptime command 395
Using the vmstat utility 395
Checking disk performance and disk usage 396
Viewing System Information via the /proc File System 398
Understanding Linux Devices 401
Device files 401
Persistent device naming with udev 403
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xvii
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xviii
Managing Loadable Driver Modules 404
Loading and unloading modules 404
Using the /etc/modprobe.conf file 405
Scheduling Jobs in Linux 407
Scheduling one-time jobs 407
Scheduling recurring jobs 409

Chapter 2: Managing Users and Groups . . . . . . . . . . . . . . . . . . . . . . . .413
Adding User Accounts 413
Using a GUI user manager to add user accounts 414
Using commands to manage user accounts 416
Understanding the /etc/passwd File 417
Managing Groups 418
Exploring the User Environment 420
Changing User and Group Ownership of Files 422
Chapter 3: Managing File Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425
Exploring the Linux File System 425
Understanding the file-system hierarchy 426
Mounting a device on the file system 429
Examining the /etc/fstab file 430
Sharing Files with NFS 432
Exporting a file system with NFS 432
Mounting an NFS file system 433
Backing Up and Restoring Files 434
Selecting a back up strategy and media 434
Commercial back up utilities for Linux 435
Using the tape archiver — tar 436
Accessing a DOS/Windows File System 441
Mounting a DOS/Windows disk partition 441
Mounting DOS floppy disks 442
Mounting an NTFS partition 444
Using mtools 444
Trying mtools 445
Understanding the /etc/mtools.conf file 445
Learning the mtools commands 446
Chapter 4: Installing and Updating Applications . . . . . . . . . . . . . . . . .449
Working with RPM Files 449

Using the RPM commands 450
Understanding RPM filenames 451
Querying RPMs 451
Installing an RPM 453
Removing an RPM 454
Upgrading an RPM 454
Verifying an RPM 455
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xviii
Table of Contents
xix
Working with DEB Files 456
Understanding DEB filenames 456
Using the dpkg command 457
Introducing dselect 459
Using APT to manage DEB packages 459
Building Software Packages from Source Files 461
Downloading and unpacking the software 461
Building the software from source files 462
Installing SRPMs 464
Updating Linux Applications Online 465
Keeping Debian, MEPIS, and Ubuntu updated with APT 465
Updating Fedora Core Applications 466
Updating SUSE online 469
Using Xandros Networks 471
Chapter 5: Customizing the Linux Kernel . . . . . . . . . . . . . . . . . . . . . . .473
Rebuilding the Kernel 474
Creating a monolithic versus a modular kernel 475
Configuring the kernel 476
Building the Kernel and the Modules 491
Installing the Modules 492

Creating the Initial RAM Disk File 492
Installing the New Kernel and Setting Up GRUB 493
Rebooting the System 495
Book VI: Security 497
Chapter 1: Introducing Linux Security . . . . . . . . . . . . . . . . . . . . . . . . . .499
Why Worry about Security? 499
Establishing a Security Framework 500
Determining business requirements for security 501
Performing risk analysis 502
Establishing a security policy 503
Implementing security solutions (mitigation) 504
Managing security 505
Securing Linux 505
Understanding the host security issues 506
Understanding network security issues 506
Delving into Computer Security Terminology 507
Keeping Up with Security News and Updates 511
Chapter 2: Securing a Linux Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .513
Securing Passwords 513
Shadow passwords 514
Pluggable authentication modules (PAMs) 515
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xix
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xx
Protecting Files and Directories 516
Viewing ownerships and permissions 516
Changing file ownerships 516
Changing file permissions 517
Setting default permission 517
Checking for set user ID permission 519

Encrypting and Signing Files with GnuPG 520
Understanding public key encryption 520
Understanding digital signatures 521
Using GPG 523
Monitoring System Security 527
Chapter 3: Improving Network Security . . . . . . . . . . . . . . . . . . . . . . . .529
Securing Internet Services 529
Turning off standalone services 530
Configuring the Internet super server 530
Configuring TCP wrapper security 531
Using Secure Shell (SSH) for Remote Logins 532
Setting Up Simple Firewalls 534
Using NATs 538
Enabling packet filtering on your Linux system 539
Chapter 4: Performing Computer Security Audits . . . . . . . . . . . . . . . .547
Understanding Security Audits 547
Non-technical aspects of security audits 548
Technical aspects of security audits 549
Implementing a Security Test Methodology 549
Some common computer vulnerabilities 550
Host-security review 552
Network-security review 555
Exploring Security Testing Tools 557
nmap 558
Nessus 559
Book VII: Internet Servers 563
Chapter 1: Managing Internet Services . . . . . . . . . . . . . . . . . . . . . . . . .565
Understanding Internet Services 565
TCP/IP and sockets 566
Internet services and port numbers 570

Using the Internet Super Server 571
Using inetd 572
Using xinetd 573
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xx
Table of Contents
xxi
Running Standalone Servers 575
Starting and stopping servers manually 575
Starting servers automatically at boot time 576
Chapter 2: Running a Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .583
Understanding HTTP 583
Exploring the Apache Web Server 587
Installing the Apache Web server 587
Starting the Apache Web server 588
Configuring the Apache Web Server 589
Using Apache configuration tools 590
Syntax of the Apache configuration files 593
The Apache Web server configuration file 593
Virtual host setup 603
Chapter 3: Setting Up the FTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . .607
Installing the FTP Server 607
Configuring the FTP Server 608
vsftpd configuration files 608
The vsftpd.conf file 609
/etc/vsftpd.ftpusers file 612
/etc/vsftpd.user_list file 612
Chapter 4: Managing Mail and News Servers . . . . . . . . . . . . . . . . . . .613
Installing the Mail Server 613
Using sendmail 614
A mail-delivery test 614

The mail-delivery mechanism 615
The sendmail configuration file 617
sendmail.cf file syntax 623
Other sendmail files 625
The .forward file 627
The sendmail alias file 628
Installing the INN Server 628
Configuring and Starting the INN Server 629
InterNetNews components 630
The incoming.conf file 634
The readers.conf file 634
InterNetNews startup 635
Setting Up Local Newsgroups 636
Defining a newsgroup hierarchy 636
Updating configuration files 636
Adding the newsgroups 637
Testing your newsgroups 637
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xxi
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xxii
Chapter 5: Managing DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .639
Understanding Domain Name System (DNS) 639
What is DNS? 639
Discovering hierarchical domain names 641
Exploring Berkeley Internet Name Domain (BIND) 642
Configuring DNS 646
Configuring the resolver 646
Configuring a caching name server 647
Configuring a primary name server 657
Chapter 6: Using Samba and NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .661

Sharing Files with NFS 661
Exporting a file system with NFS 662
Mounting an NFS file system 664
Setting Up a Windows Server Using Samba 665
Installing Samba 666
Configuring Samba 667
Trying out Samba 669
Learning more about Samba 669
Book VIII: Programming 671
Chapter 1: Programming in Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .673
An Overview of Programming 673
A simplified view of a computer 673
Role of the operating system 675
Basics of computer programming 676
Exploring the Software-Development Tools in Linux 677
GNU C and C++ compilers 678
The GNU make utility 682
The GNU debugger 689
Understanding the Implications of GNU Licenses 695
The GNU General Public License 696
The GNU Lesser General Public License 697
Chapter 2: Programming in C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .699
The Structure of a C Program 699
Preprocessor Directives 701
Including files 702
Defining macros 702
Declaration and Definition of Variables 705
Basic data types 705
Enumerations 706
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xxii

Table of Contents
xxiii
Structures, Unions, and Bit Fields 707
Arrays 707
Pointers 708
Type definitions 709
Type qualifiers: const and volatile 710
Expressions 711
Operator Precedence 713
Statements 715
The break statement 715
The case statement 716
A compound statement or block 716
The continue statement 716
The default label 717
The do statement 717
Expression statements 717
The for statement 717
The goto statement 718
The if statement 718
The if-else statement 718
The null statement 719
The return statement 719
The switch statement 719
The while statement 720
Functions 721
Function prototypes 721
The void type 722
Functions with a variable number of arguments 722
The C Library 722

Shared Libraries in Linux Applications 724
Examining the shared libraries that a program uses 724
Creating a shared library 725
Dynamically loading a shared library 727
Chapter 3: Writing Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .731
Trying Out Simple Shell Scripts 731
Exploring the Basics of Shell Scripting 734
Storing stuff 734
Calling shell functions 735
Controlling the flow 736
Exploring bash’s built-in commands 739
Chapter 4: Programming in Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .743
Understanding Perl 743
Determining Whether You Have Perl 744
Writing Your First Perl Script 745
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xxiii
Linux All-in-One Desk Reference For Dummies, 2nd Edition
xxiv
Getting an Overview of Perl 746
Basic Perl syntax 747
Variables 747
Operators and expressions 751
Regular expressions 752
Flow-control statements 755
Accessing Linux commands 758
File access 760
Filename with pipe prefix 761
Subroutines 762
Built-in functions in Perl 763
Understanding Perl Packages and Modules 763

Perl packages 764
Perl modules 765
Using a module 765
Using Objects in Perl 766
Understanding Perl Objects 767
Creating and accessing Perl objects 767
Using the English module 768
Appendix 771
Index 777
02_752622 ftoc.qxp 4/4/06 9:11 AM Page xxiv
Introduction
L
inux is truly amazing when you consider how it originated and how it
continues to evolve. From its modest beginning as the hobby of one
person — Linus Torvalds of Finland — Linux has grown into a full-fledged
operating system with features that rival those of any commercial UNIX
operating system. To top it off, Linux — with all of its source code — is
available free of cost to anyone. All you have to do is download it from an
Internet site or get it on CDs or a DVD for a nominal fee from one of many
Linux CD vendors.
Linux certainly is an exception to the rule that “you get what you pay for.”
Even though Linux is free, it is no slouch when it comes to performance, fea-
tures, and reliability. The robustness of Linux has to do with the way it is
developed and updated. Many developers around the world collaborate to
add features. Incremental versions are continually downloaded by users and
tested in a variety of system configurations. Linux revisions go through
much more rigorous beta testing than any commercial software does.
Since the release of Linux kernel 1.0 on March 14, 1994, the number of Linux
users around the world has grown exponentially. Many Linux distributions —
combinations of the operating system with applications and installation

tools — have been developed to simplify the installation and use. Some
Linux distributions are commercially sold and supported, while many con-
tinue to be freely available.
Unlike many freely available software programs, Linux comes with extensive
online information on topics such as installing and configuring the operating
system for a wide variety of PCs and peripherals. A small group of hard-core
Linux users are expert enough to productively use Linux with the online
documentation alone. A much larger number of users, however, move to
Linux with some specific purpose in mind (such as setting up a Web server
or learning Linux). Also, a large number of Linux users use their systems at
home. For these new users, the online documentation is not easy to use, and
the documentation typically does not cover the specific uses of Linux that
the user may have in mind.
If you’re beginning to use Linux, what you need is a practical guide that not
only gets you going with the installation and setup of Linux, but also shows
you how to use Linux for a specific task, such as setting up a Web server or
developing software. You may also want to try out different Linux distribu-
tions before settling on one that you like.
03_752622 intro.qxp 3/28/06 11:35 PM Page 1
About This Book
2
Accordingly, Linux All-in-One Desktop Reference For Dummies comes with a
DVD that includes seven different Linux distributions — Debian GNU/Linux
3.1r0, Fedora Core 5, Knoppix 4.0.2, MEPIS 3.3.1, SUSE Linux 10.0, Ubuntu
5.04, and Xandros 3.02 Open Circulation Edition — and the instructions to
install and use any of these distributions. (Hint: Use Knoppix Live CD directly
from this book’s DVD for a quick, no-risk Linux experience.)
About This Book
Linux All-in-One Desk Reference For Dummies gives you eight different quick-
reference guides in a single book. Taken together, these eight minibooks pro-

vide detailed information on installing, configuring, and using Linux.
What you’ll like most about this book is that you don’t have to read it
sequentially chapter by chapter, or for that matter, even the sections in a
chapter. You can pretty much turn to the topic you want and quickly get the
answer to your pressing questions about Linux, be it about using the
OpenOffice.org word processor or setting up the Apache Web server.
Here are some of the things you can do with this book:
✦ Install and configure Linux — Debian, Fedora Core, Knoppix, MEPIS,
SUSE, Ubuntu, or Xandros — from the DVD-ROM included with the book.
(You can use Knoppix by simply booting from the DVD.)
✦ Connect the Linux PC to the Internet through a DSL or cable modem.
✦ Set up dialup networking with PPP.
✦ Add a wireless Ethernet to your existing network.
✦ Get tips, techniques, and shortcuts for specific uses of Linux, such as
• Setting up and using Internet services: Web, Mail, News, FTP, NFS,
and DNS.
• Setting up a Windows server using Samba.
• Using Linux commands.
• Using Perl, shell, and C programming on Linux.
• Using the OpenOffice.org office suite and other applications that
come with Linux.
✦ Understand the basics of system and network security.
✦ Perform system administration tasks.
03_752622 intro.qxp 3/28/06 11:35 PM Page 2
Who Are You?
3
Conventions Used in This Book
I use a simple notational style in this book. All listings, filenames, function
names, variable names, and keywords are typeset in a monospace font for
ease of reading. I italicize the first occurrences of new terms and concepts

and then provide a definition right there. I show typed commands in bold-
face. The output of commands and any listing of files is shown in a mono-
space font.
What You Don’t Have to Read
Each mini reference book zeros in on a specific task area — such as using the
Internet or running Internet servers — and then provides hands-on instruc-
tions on how to perform a series of related tasks. You can jump right to a sec-
tion and read about a specific task. You don’t have to read anything but the
few paragraphs or the list of steps that relate to your question. Use the Table
of Contents or the Index to locate the pages relevant to your question.
You can safely ignore text next to the Technical Stuff icons as well as the
sidebars. However, if you are the kind of person who likes to know some of
the hidden details of how Linux works, by all means, dig into the Technical
Stuff icons and the sidebars.
Who Are You?
I assume that you are somewhat familiar with a PC — you know how to turn
it on and off and you have dabbled a bit with Windows. Considering that
most new PCs come preloaded with Windows, this assumption is safe, right?
And you know how to use some of the Windows applications such as
Microsoft Office.
When installing Linux on your PC, you may want to retain your Windows 2000
or Windows XP installations. I assume you don’t mind shrinking the Windows
partition to make room for Linux. For this you can use the qtparted utility
included with Knoppix on this book’s companion DVD or invest in a good
disk-partitioning tool such as Symantec’s Norton PartitionMagic, available at
www.powerquest.com/partitionmagic. (No, I don’t have any connec-
tions with Symantec.)
I also assume that you’re willing to accept the risk that when you try to
install Linux, some things may not quite work. Problems can happen if you
have some uncommon types of hardware. If you are afraid of ruining your

system, try finding a slightly older spare Pentium PC that you can sacrifice
and then install Linux on that PC. Or simply run Knoppix directly from the
DVD included with this book.
03_752622 intro.qxp 3/28/06 11:35 PM Page 3

×