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.
Keeping with the tradition of offering the best and most comprehensive coverage of Red Hat Linux on the market, Red Hat Fedora 3 Unleashed includes new and additional materials based on the latest release of Red Hat's Fedora Core Linux distribution. Incorporating an advanced approach, the information presented aims to provide you with the best and latest information about installation, configuration, system administration, server operations and security. Updated discussions of the architecture of several Linux issues, as well as material on new applications, peripherals and Web development are also included. Get the most out of the latest Red Hat Linux distribution with Red Hat Fedora 3 Unleashed.
Introduction.
What Is Linux?
What Is Fedora Core?
Roots of Red Hat and Fedora
Licensing
Why Use Linux?
Who This Book Is For
What This Book Contains
Conventions Used in This Book
I. INSTALLATION AND CONFIGURATION.
1. Introducing Fedora.
What Is Fedora Core?
Inside Fedora Core
Features of the Fedora Install
Fedora File System Features
Fedora for Business
Fedora in Your Home
Getting the Most from Fedora and Linux Documentation
Fedora Developers and Documentation
Reference
2. Preparing to Install Fedora.
Planning Your Fedora Deployment
Business Considerations
System Considerations
User Considerations
A Predeployment Planning Checklist
Planning the Installation
Hardware Requirements
Meeting the Minimum Fedora Core Hardware Requirements
Using Legacy Hardware
Planning for Hard Drive Storage for Your Fedora Installation Class
Checking Hardware Compatibility
Preparing for Potential Hardware Problems
Preparing and Using a Hardware Inventory
Preparing for the Install Process
Preparing to Install from a CD-ROM
Partitioning Before and During Installation
Choosing a Partitioning Scheme
Hosting Parts of the Linux Filesystem on Separate Partitions
Using Red Hat's kickstart Installation Method
Reference
3. Installing Fedora.
Before You Begin the Installation
Research Your Hardware Specifications
Choose an Installation Type
Choose Software Installation Options
Planning Partition Strategies
The Boot Loader
Choosing How to Install Fedora
Installing from CD-ROM
Installing Using a Network
Step-by-Step Installation
Starting the Install
Partitioning Your Drive
Choosing, Configuring, and Installing the Boot Loader
Network Configuration
Firewall and Security Configuration
Setting the Time Zone
Creating a Root Password and User Accounts
Software Selection and Installation
Create a Bootdisk
Finishing the Install
Login and Shutdown
Reference
4. Post-Installation Issues.
Troubleshooting Post-Installation Configuration Problems
Your Hardware and kudzu
Pointer and Keyboard Configuration
Configuring Keyboards with Linux
Configuring Pointing Devices in Fedora
Configuring Display Graphics
Configuring Sound Devices
Detecting and Configuring a Modem
Configuring a Serial-Port Modem
Configuring a Fax Modem
Configuring minicom for Modem Use
Configuring Controllerless Modems for Laptops
Configuring Power Management in Fedora
Resetting the Date and Time
Using the date Command
Using the hwclock Command
Using the system-config-date Client
Managing PCMCIA
Using PCMCIA
Controlling PCMCIA Service
Configuring and Using CD, DVD, and CD-RW Drives
Checking Drive Assignment
Initializing IEEE 1394 CD Drives
Reference
5. First Steps with Fedora.
Working with the Linux File System
Viewing the Linux File System
Use Essential Commands from the /bin and /sbin Directories
Store the Booted Kernel and View Stored Devices in the /boot and /dev Directories
Use and Edit Files in the /etc Directory
Protect the Contents of User Directories-/home
Use the Contents of the /proc Directory to Interact with the Kernel
Work with Shared Data in the /usr Directory
Temporary File Storage in the /tmp Directory
Access Variable Data Files in the /var Directory
Logging In to and Working with Linux
Text-based Console Login
Working with Virtual Consoles
Using Simple Keyboard and Mouse Techniques in a Linux Console Session
Logging Out
Logging In and Out from a Remote Computer
Changing Your User Information
Reading Documentation
Using man Pages
Finding and Reading Software Packages Documentation
Using the Shell
Using Environment Variables
Navigating and Searching with the Shell
Managing Files with the Shell
Compressing and Decompressing Files Through the Shell
Using the Text Editors
Working with vi
Working with emacs
Working with Permissions
Assigning Permissions
Directory Permissions
Understanding Set User ID (SUID) and Set Group ID (SGID) Permissions
Working As root
Creating Users
Deleting Users
Shutting Down the System
Rebooting the System
Reference
6. The X Window System.
Basic X Concepts
Using X11R6
Elements of the xorg.conf File
Configuring X
Starting X
Using a Display Manager
Starting X from the Console by Using startx
Selecting and Using X Window Managers
Using Red Hat's switchdesk
The Tab Window Manager
The Motif Window Manager
The sawfish Window Manager
The Metacity Window Manager (metacity)
The GNOME and KDE Desktop Environments
GNOME: The GNU Network Object Model Environment
KDE: The K Desktop Environment
Reference
II. SYSTEM ADMINISTRATION AND MANAGING SERVICES.
7. Managing Services.
Understanding the Fedora Core Linux Boot Process
Beginning the Boot Loading Process
Loading the Linux Kernel
System Services and Runlevels
Runlevel Definitions
Booting into the Default Runlevel
Booting to a Non-Default Runlevel with GRUB
Understanding init Scripts and the Final Stage of Initialization
Running Services Through xinetd
Controlling Services at Boot with Administrative Tools
Using the chkconfig Text-Based Command-Line Tool
Using the GUI-based Service Configuration Tool
Starting and Stopping Services Manually
Changing Runlevels
Using Service Management to Troubleshoot Problems in Fedora Core Linux
Reference
8. Managing Software and System Resources.
Using RPM for Software Management
Command-Line and Graphical RPM Clients
Using rpm on the Command Line
Package Organization with RPM
Extracting a Single File from an RPM File
Graphical Package Management
Using Red Hat Network and Alternatives for Software Management
APT
YUM
Compiling Software from Source
Building RPMS from src.rpm Files
Working with Source RPM Files
Compile from Source Tarballs
System Monitoring Tools
Console-based Monitoring
Using the kill Command to Control Processes
Using Priority Scheduling and Control
Displaying Free and Used Memory with free
Disk Quotas
Graphical Process and System Management Tools
KDE Process and System Monitoring Tools
Reference
9. Managing Users.
User Accounts
User IDs and Group IDs
File Permissions
Managing Groups
Group Management Tools
Managing Users
User Management Tools
Adding New Users
Monitoring User Activity on the System
Managing Passwords
System Password Policy
The Password File
Shadow Passwords
Managing Password Security for Users
Changing Passwords in a Batch
Granting System Administrator Privileges to Regular Users
Temporarily Changing User Identity with the su Command
Granting Root Privileges on Occasion-The sudo Command
Control Via Restricted Shells
The User Login Process
Disk Quotas
Implementing Quotas
Manually Configuring Quotas
Reference
10. Managing the File System.
The Fedora Core Linux File System Basics
Physical Structure of the File System on the Disk
File System Partitions
Network and Disk File Systems
Viewing Your System's File Systems
Working with the ext3 File System
Understanding the ext3 File System Structure
Journaling Options in ext3
Verifying File Integrity in ext3 File Systems with the fsck Utility
Other File Systems Available to Fedora Core Linux
The Reiser File System
JFS and XFS File Systems
DOS File Systems
CD-ROM File Systems
Creating a File System
The Disk As a Storage Device
Creating the Partition Table
Creating the File System on the Partitioned Disk
Creating a DOS File System with mkdosfs
Mounting File Systems
The mount Command
The umount Command
Mounting Automatically with /etc/fstab
GUI Tools to Mount File Systems
Relocating a File System
Installing the New Drive
Creating the Partition Table and Formatting the Disk
Mounting the New Partition and Populating It with the Relocated Files
Logical Volume Management
File System Manipulation
Creating a File System for Testing
Using dumpe2fs
Mounting a Partition As Read-Only on a Running System
Converting an Existing ext2 File System to ext3
Examine an initrd Image File
Examine a Floppy Image File
Disk Tuning
Using the BIOS and Kernel to Tune the Disk Drives
The hdparm Command
File System Tuning
The mke2fs Command
The tune2fs Command
The e2fsck Command
The badblocks Command
The noatime Option for the mount Command
Managing Files for Character Devices, Block Devices, and Special Devices
Naming Conventions Used for Block and Character Devices
Using mknod to Create Devices
Reference
11. Backing Up, Restoring, and Recovery.
Choosing a Backup Strategy
Why Data Loss Occurs
Assessing Your Backup Needs and Resources
Evaluating Backup Strategies
Making the Choice
Choosing Backup Hardware and Media
Removable Storage Media
Network Storage
Tape Drive Backup
Using Backup Software
tar
Backing Up Files with cpio
The GNOME File Roller
The KDE Archiving Tools (KDE ark and kdat)
Using the dd Command for Archiving
Using the Amanda Backup Application
Alternative Backup Software
Copying Files
Copying Files Using tar
Compressing, Encrypting, and Sending tar Streams
Copying Files Using cp
Copying Files Using cpio
Copying Files Using mc
Copying Files Using scp
Copying Files Using rsync
Undeleting Files
Using the ext2fs Undeletion Process
Reformatting with the -S Option When Experiencing Unrecoverable File System Errors
Undeleting Files Using mc
System Rescue
The Fedora Core Rescue Disk
Backing Up and Restoring the Master Boot Record
Manually Restoring the Partition Table
Booting the System from the Rescue CD
Booting the System from a Generic Boot Floppy
Using a GRUB Boot Floppy
Using the Recovery Facility from the Installation Disk
Reference
III. SYSTEM SERVICES ADMINISTRATION.
12. Printing with Fedora.
Overview of Fedora Printing
Configuring and Managing Print Services
GUI-based Printer Configuration Quickstart
Console-based Printer Configuration Quickstart
Managing Printing Services
Creating and Configuring Local Printers
Creating the Print Queue
Editing Printer Settings
Creating Network Printers
Enabling Network Printing on a LAN
Session Message Block Printing
Network-Attached Printer Configuration and Printing
Console Print Control
Console-based Printer Configuration
Using Basic Print Commands
Manage Print Jobs
Using the Common UNIX Printing System
Creating a CUPS Printer Entry
Avoiding Printer-Support Problems
All-in-One (Print/Fax/Scan) Devices
Using USB and Legacy Printers
Reference
13. Network Connectivity.
Networking with TCP/IP
TCP/IP Addressing
Using IP Masquerading in Fedora
Ports
Network Organization
Subnetting
Subnet Masks
Broadcast, Unicast, and Multicast Addressing
Hardware Devices for Networking
Network Interface Cards
Network Cable
Hubs
Routers and Bridges
Initializing New Network Hardware
Using Network Configuration Tools
Command-Line Network Interface Configuration
Network Configuration Files
Using Graphical Configuration Tools
Dynamic Host Configuration Protocol
How DHCP Works
Activating DHCP at Installation and Boot Time
DHCP Software Installation and Configuration
Using DHCP to Configure Network Hosts
Other Uses for DHCP
Using the Network File System
Installing and Starting or Stopping NFS
NFS Server Configuration
NFS Client Configuration
Putting Samba to Work
Manually Configuring Samba with /etc/samba/smb.conf
Setting Global Samba Behavior with the [global] Section
Testing Samba with the testparm Command
Starting the smbd Daemon
Mounting Samba Shares
Configuring Samba Using SWAT
Wireless Networking
Support for Wireless Networking in Fedora
Cellular Networking
Advantages of Wireless Networking
Choosing from Among Available Wireless Protocols
Securing a Wireless Network
Securing Your Network
Using lokkit and system-config-securitylevel for Firewalling
Passwords and Physical Security
Securing TCP/IP
Configuring and Using Tripwire
Devices
Securing DHCP
Securing NFS
Making Samba Secure
Keeping Up-to-Date on Linux Security Issues
Using Patches/Upgrades to Keep Your Network Secure
Reference
General
DHCP
Wireless
Security
Books
14. Managing DNS.
Configuring DNS for Clients
Understanding the /etc/host.conf File
Understanding the /etc/nsswitch.conf File
Understanding the /etc/hosts File
Understanding the /etc/resolv.conf File
Understanding the Changes Made by DHCP
Essential DNS Concepts
How Nameservers Store DNS Structure Information
How DNS Provides Name Service Information to Users
Name Resolution in Practice
Reverse Resolution
What Did the Resolver Learn?
Using DNS Tools
dig
host
nslookup
whois
Configuring a Local Caching Nameserver
Your Own Domain Name and Third-Party DNS
Providing DNS for a Real Domain with BIND
rndc.conf
named.conf
Logging
Resolver Configuration
Running the named Nameserver Daemon
Providing DNS for a Real Domain
Forward Zone
Reverse Zone
Registering the Domain
Troubleshooting DNS
Delegation Problems
Reverse Lookup Problems
Maintaining Accurate Serial Numbers
Troubleshooting Problems in Zone Files
Tools for Troubleshooting
Using Fedora Core's BIND Configuration Tool
Managing DNS Security
UNIX Security Considerations
DNS Security Considerations
Using DNS Security Extensions
Using Split DNS
Reference
15. Internet Connectivity.
Common Configuration Information
Laying the Foundation: The localhost Interface
Checking for the Availability of the Loopback Interface
Configuring the Loopback Interface Manually
Configuring Dial-up Internet Access
Configuring a Dial-up Connection Manually
Using the Fedora Core Internet Configuration Wizard
Configuring Digital Subscriber Line Access
Understanding Point-to-Point Protocol over Ethernet
Configuring a PPPOE Connection Manually
Troubleshooting Connection Problems
Configuring a Dial-in PPP Server
Reference
16. Apache Web Server Management.
About the Apache Web Server
Installing the Apache Server
Installing from the RPM
Building the Source Yourself
Starting and Stopping Apache
Starting the Apache Server Manually
Using /etc/rc.d/init.d/httpd
Controlling Apache with Red Hat's service Command
Controlling Apache with Red Hat's chkconfig Command
Controlling Apache with Red Hat's system-config-services Client
Runtime Server Configuration Settings
Runtime Configuration Directives
Editing httpd.conf
Apache Multi-Processing Modules
Using .htaccess Configuration Files
File System Authentication and Access Control
Restricting Access with allow and deny
Authentication
Final Words on Access Control
Apache Modules
mod_access
mod_alias
mod_asis
mod_auth
mod_auth_anon
mod_auth_dbm
mod_auth_digest
mod_autoindex
mod_cgi
mod_dir and mod_env
mod_expires
mod_headers
mod_imap
mod_include
mod_info and mod_log_config
mod_mime and mod_mime_magic
mod_negotiation
mod_proxy
mod_rewrite
mod_setenvif
mod_speling
mod_status
mod_ssl
mod_unique_id
mod_userdir
mod_usertrack
mod_vhost_alias
Virtual Hosting
Address-based Virtual Hosts
Name-based Virtual Hosts
Logging
Dynamic Content
CGI
SSI
Basic SSI Directives
Flow Control
Graphic Interface Configuration of Apache
Configuring Virtual Host Properties
Configuring the Server
Configuring Apache for Peak Performance
Other Web Servers for Use with Fedora
thttpd
Sun ONE Web Server
Stronghold
Zope
Zeus Web Server
TWiki
Reference
17. Administering Database Services.
A Brief Review of Database Basics
How Relational Databases Work
Understanding SQL Basics
Creating Tables
Inserting Data into Tables
Retrieving Data from a Database
Choosing a Database: MySQL Versus PostgreSQL
Speed
Data Locking
ACID Compliance in Transaction Processing to Protect Data Integrity
SQL Subqueries
Procedural Languages and Triggers
Available Applications
Installing and Configuring MySQL
Initializing the Data Directory in MySQL
Setting a Password for the MySQL Root User
Creating a Database in MySQL
Granting and Revoking Privileges in MySQL
Installing and Configuring PostgreSQL
Initializing the Data Directory in PostgreSQL
Creating a Database in PostgreSQL
Creating Database Users in PostgreSQL
Deleting Database Users in PostgreSQL
Granting and Revoking Privileges in PostgreSQL
Database Clients
SSH Access to a Database
Local GUI Client Access to a Database
Web Access to a Database
The MySQL Command-Line Client
The PostgreSQL Command-Line Client
Graphical Clients
Reference
18. Secure File Transfer Protocol Service.
Using FTP Clients
Using sftp for Secure File Transfers
The FTP Client Interface
Using the Text-based FTP Client Interface
Using Graphical FTP Clients
FTP Servers
Choosing an Authenticated or Anonymous Server
Fedora FTP Server Packages
Other FTP Servers
Installing FTP Software
The FTP User
xinetd Configuration for wu-ftpd
Configuring xinetd for the wu-ftp Server
Starting the Very Secure FTP Server (vsftpd) Package
Configuring the Very Secure FTP Server
Controlling Anonymous Access
Other vsftpd Server Configuration Files
Configuring the Wu-FTPd Server
Using Commands in the ftpaccess File to Configure wu-ftpd
Configure Access Control
Configure User Information
Configure System Logging
Configure Permission Control
Configure Commands Directed Toward the cdpath
Structure of the shutdown File
Configure FTP Server File-Conversion Actions
Strip Prefix
Strip Postfix
Add-On Prefix
Add-On Postfix
External Command
Types
Options
Description
An Example of Conversions in Action
Using Commands in the ftphosts File to Allow or Deny FTP Server Connection
Server Administration
Display Information About Connected Users
Count the Number of Connections
Use /usr/sbin/ftpshut to Schedule FTP Server Downtime
Use /var/log/xferlog to View a Log of Server Transactions
Reference
19. Handling Electronic Mail.
How Email Is Sent and Received
The Mail Transport Agent
Choosing an MTA
The Mail Delivery Agent
The Mail User Agent
Choosing a Mail Client (MUA)
The mail Application
Mutt
Evolution
Balsa
KMail
Mozilla Mail
Other Mail Clients
Attachments-Sending Binary Files As Text
BinHex
yenc
uuencode and uudecode
Basic Sendmail Configuration and Operation
Configuring Masquerading
Using Smart Hosts
Setting Message Delivery Intervals
Building the sendmail.cf File
Mail Relaying
Forwarding Email with Aliases
Rejecting Email from Specified Sites
Using Fetchmail to Retrieve Mail
Installing Fetchmail
Configuring Fetchmail
Choosing a Mail Delivery Agent (MDA)
Procmail
Spamassassin
Squirrelmail
Virus Scanners
Special Mail Delivery Agents
Mail Daemons
Alternatives to Microsoft Exchange Server
Microsoft Exchange Server/Outlook Client
CommuniGate Pro
Samsung Contact (Formerly Known As HP OpenMail)
Bynari
SuSE OpenExchange
Kroupware
OpenGroupware (Formerly SKYRiX 4.1)
phpgroupware
PHProjekt
IMP/Horde
Conclusion
Reference
Web Resources
Books
20. News and Other Collaborative Communication.
An Overview of Network News
Newsgroups
Selecting a Newsreader
The slrn News Client
The Pan News Client
The KNode News Client
The Mozilla News Client
Collaborating with TWiki
Internet Relay Chat
Internet Messaging with GAIM
Video Conferencing with GnomeMeeting
Mail List Configuration and Management with Mailman
Configuring a Local News Server
Types of News Servers
The INN Package and Configuration Files
Installing the INN Package
Configuring the innd Package
Reference
21. C/C++ Programming Tools for Fedora.
Programming in C with Linux
Programming in C++
Getting Started with Linux C/C++ Programming
The Process of Programming
Elements of the C/C++ Language
Using the C Programming Project Management Tools Provided with Fedora Core Linux
Building Programs with make
Using the autoconf Utility to Configure Code
Managing Software Projects with RCS and CVS
Making Libraries with ar
Debugging Tools
Using the GNU C Compiler
A Simple C Program
Graphical Development Tools
Using the KDevelop Client
Trolltech's QT Designer
The Glade Client for Developing in GNOME
Additional Resources
Reference
22. Shell Scripting.
The Shells Included with This Book
The Shell Command Line
Shell Pattern-Matching Support
Redirecting Input and Output
Piping Data
Background Processing
The Basics of Writing, Creating, and Executing a Shell Script
Creating and Executing a Simple Shell Program with bash
Running the New Shell Program
Storing Shell Scripts for Systemwide Access
Interpreting Shell Scripts Through Specific Shells
Using Variables in Shell Scripts
Assigning a Value to a Variable
Accessing Variable Values
Positional Parameters
A Simple Example of a Positional Parameter
Using Positional Parameters to Access and Retrieve Variables
from the Command Line
Using a Simple Script to Automate Tasks
Built-in Variables
Special Characters
Use Double Quotes to Resolve Variables in Strings with Embedded Spaces
Using Single Quotes to Maintain Unexpanded Variables
Using the Backslash As an Escape Character
Using the Backtick to Replace a String with Output
Comparison of Expressions
Comparison of Expressions in pdksh and bash
Comparing Expressions with tcsh
Iteration Statements
The for Statement
The while Statement
The until Statement
The repeat Statement (tcsh)
The select Statement (pdksh)
The shift Statement
Conditional Statements
The if Statement
The case Statement
The break and exit Statements
Using Functions in Shell Scripts
Reference
23. Using Perl.
Using Perl with Linux
Perl Versions
A Simple Perl Program
Perl Variables and Data Structures
Perl Variable Types
Special Variables
Operators
Comparison Operators
Compound Operators
Arithmetic Operators
Other Operators
Special String Constants
Conditional Statements: if/else and unless
if
unless
Looping
for
foreach
while
until
last and next
do ... while and do ... until
Regular Expressions
Access to the Shell
Switches
Modules and CPAN
Code Examples
Sending Mail
Purging Logs
Posting to Usenet
One-Liners
Command-line Processing
Reference
Books
Usenet
WWW
Other
24. Kernel and Module Management.
The Linux Kernel
The Linux Source Tree
Types of Kernels
Managing Modules
When to Recompile
Kernel Versions
Obtaining the Kernel Sources
Patching the Kernel
Compiling the Kernel
Choosing a Configuration Interface
Using xconfig to Configure the Kernel
Creating an Initial RAM Disk Image
When Something Goes Wrong
Errors During Compile
Runtime Errors, Boot Loader Problems, and Kernel Oops
Kernel Tuning with sysctl
Reference
25. Productivity Applications.
Office Suites for Fedora Core Linux
Working with OpenOffice.org
Working with GNOME Office
Working with KOffice
PDA Connectivity
Command-Line PDA Software for Fedora Core Linux
GUI PDA Client Software
Scanner Applications for Fedora Core Linux
Web Design Tools
Fax Client Software
Other Office and Productivity Tools Included with Fedora Core Linux
Productivity Applications Written for Microsoft Windows
Reference
26. Multimedia Applications.
Burning CDs and DVDs in Fedora Core Linux
Creating CDs from the Command Line
Creating DVDs from the Command Line
Creating CDs with Fedora Core Linux Graphical Clients
Sound and Music
Sound Cards
Recording Sound
Sound Formats
Music Players
Streaming Audio
Viewing TV and Video
TV and Video Hardware
Video Formats
Viewing Video in Linux
Viewing Television with Linux
Personal Video Recorders
DVD and Video Players
Using Still Cameras with Fedora Core Linux
Webcams
Handheld Digital Cameras
Using Scanners in Fedora Core Linux
Graphics Manipulation
The GNU Image Manipulation Program
Working with Graphics Formats
Capturing Screen Images
Linux Gaming
Installing nVidia Video Drivers
Installing Unreal Tournament 2003
Installing Wolfenstein-Enemy Territory
Reference
IV. APPENDIX.
Appendix A. Fedora Internet Resources.
Web Sites and Search Engines
Web Search Tips
Google Is Your Friend
Red Hat Package Listings
Certification
Commercial Support
Documentation
Linux Guides
The Fedora Project
Red Hat Linux
Mini-CD Linux Distributions
Floppy-Based Linux Distributions
Various Intel-Based Linux Distributions
PowerPC-Based Linux Distributions
Linux on Laptops and PDAs
The X Window System
Usenet Newsgroups
Mailing Lists
Fedora Project Mailing Lists
Red Hat Mailing Lists
Internet Relay Chat
Index.