You are previewing Fedora™ 7 Unleashed.
O'Reilly logo
Fedora™ 7 Unleashed

Book Description

Continuing with the tradition of offering the most comprehensive coverage of Red Hat Linux on the market, Fedora 7 Unleashed includes new and additional material based on the latest release of Red Hat's Fedora Core Linux distribution. Fedora 7 Unleashed thoroughly covers all of Fedora's software packages, including up-to-date material on new applications, Web development, peripherals, and programming languages. It also includes updated discussion of the architecture of the Linux kernel, USB, KDE, GNOME, broadband access issues, routing, gateways, firewalls, disk tuning, GCC, Perl, Python, printing services (CUPS), wireless support, international support, Java programs support (Eclipse), and security.

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Part I Installation and Configuration

1 Installing Fedora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2 Fedora Quick Start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3 Working with GNOME. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4 Command Line Quickstart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Part II Desktop Fedora

5 On the Internet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

6 Productivity Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

7 Multimedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

8 Printing with Fedora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

9 Games. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

Part III System Administration

10 Managing Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

11 Automating Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

12 System-Monitoring Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

13 Backing Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

14 Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

15 Remote Access with SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

16 Xen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

Part IV Fedora As a Server

17 Apache Web Server Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

18 Administering Database Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

19 File and Print. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

20 Remote File Serving with FTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

21 Handling Electronic Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

22 Setting Up a Proxy Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

23 Managing DNS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511

24 LDAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551

00_0672329425_FM.qxd 7/24/07 9:32 AM Page iii

Part V Programming Linux

25 Using Perl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563

26 Working with Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

27 Writing PHP Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599

28 C/C++ Programming Tools for Fedora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629

29 Mono. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table of Contents

  1. Copyright
    1. Dedication
  2. About the Authors
  3. Acknowledgments
    1. Andrew Hudson
    2. Paul Hudson
  4. We Want to Hear from You!
    1. Reader Services
  5. Introduction
    1. Changes from Previous Editions
    2. Licensing
    3. Who This Book Is For
    4. What This Book Contains
    5. Conventions Used in This Book
  6. I. Installation and Configuration
    1. 1. Installing Fedora
      1. Before You Begin the Installation
        1. Planning Partition Strategies
      2. Choosing How to Install Fedora
        1. Installing from CD or DVD
        2. Installing Using a Network
      3. Step-by-Step Installation
        1. Starting the Install
        2. Partitioning Your Hard Drive
        3. Choosing, Configuring, and Installing the Boot Loader
        4. Network Configuration
        5. Setting the Time Zone
        6. Creating a Root Password and User Accounts
        7. Software Selection and Installation
        8. Finishing the Install
        9. Firstboot Configuration
      4. Logging In and Shutting Down
      5. Reference
    2. 2. Fedora Quick Start
      1. The Fedora Desktop
      2. Getting Around Fedora
        1. The Menu Options
        2. Window Selector
        3. The Computer Icon
        4. The Home Icon
        5. Accessing the Command Line
      3. Available Applications
        1. Office Suite
        2. Internet Workstation
        3. Multimedia
        4. Games
      4. Keeping Your Software Up To Date
      5. Configuring Wireless Networks
    3. 3. Working with GNOME
      1. The GNOME Desktop Environment
      2. AIGLX—Eye Candy for the Masses
      3. Basic X Concepts
      4. Using X
        1. Elements of the xorg.conf File
          1. The ServerLayout Section
          2. The Files Section
          3. The Module Section
          4. The InputDevice Section
          5. The Monitor Section
          6. The Device Section
          7. The Screen Section
        2. Configuring X
          1. Configuring X with the system-config-display Client
          2. Using Xorg to Configure X
      5. Starting X
        1. Using a Display Manager
          1. Configuring gdm
          2. Configuring kdm
          3. Using the xdm Display Manager
        2. Starting X from the Console by Using startx
        3. Using Fedora’s switchdesk Client
      6. KDE—The Other Environment
      7. XFce
      8. Reference
    4. 4. Command Line Quickstart
      1. Understanding the Command Line
        1. Navigating Through the File System
        2. Managing Files with the Shell
        3. Working with Compressed Files
        4. Use Essential Commands from the /bin and /sbin Directories
        5. Use and Edit Files in the /etc Directory
        6. Protect the Contents of User Directories—/home
        7. Use the Contents of the /proc Directory to Interact with the Kernel
        8. Work with Shared Data in the /usr Directory
        9. Temporary File Storage in the /tmp Directory
        10. Access Variable Data Files in the /var Directory
      2. Logging In to and Working with Linux
        1. Text-based Console Login
        2. Logging Out
        3. Logging In and Out from a Remote Computer
        4. Using Environment Variables
      3. Using the Text Editors
        1. Working with vi
        2. Working with emacs
      4. Working with Permissions
        1. Assigning Permissions
        2. Directory Permissions
        3. Understanding Set User ID and Set Group ID Permissions
      5. Working as Root
        1. Creating Users
        2. Deleting Users
        3. Shutting Down the System
        4. Rebooting the System
      6. Reading Documentation
        1. Using Man Pages
      7. Reference
  7. II. Desktop Fedora
    1. 5. On the Internet
      1. Browsing the Internet
        1. Mozilla Firefox
        2. Konqueror
      2. Choosing an Email Client
        1. Evolution
        2. Mozilla Thunderbird
        3. KMail
        4. Other Mail Clients
      3. RSS Readers
        1. Firefox
        2. Liferea
      4. Instant Messaging with Pidgin
      5. Internet Relay Chat
      6. Usenet Network Newsgroups
      7. The Pan News Client Newsreader
      8. Videoconferencing with Ekiga
      9. Reference
    2. 6. Productivity Applications
      1. What Is in OpenOffice.org?
        1. Installing and Configuring OpenOffice.org
        2. Working with OpenOffice.org Writer
          1. Getting Started
          2. Working with Styles and Formatting
        3. Working with OpenOffice.org Calc
          1. Getting Started
          2. Formatting Your Spreadsheets
          3. Summarizing Data with Calc
      2. Office Suites for Fedora
        1. Working with Gnome Office
        2. Working with KOffice
      3. Productivity Applications Written for Microsoft Windows
      4. Reference
    3. 7. Multimedia
      1. Listening to Music
        1. Streaming Audio
      2. Graphics Manipulation
        1. The GNU Image Manipulation Program
        2. Using Scanners in Fedora
        3. Working with Graphics Formats
        4. Capturing Screen Images
      3. Using Digital Cameras with Fedora
        1. Handheld Digital Cameras
        2. Using F-Spot
      4. Burning CDs and DVDs in Fedora
        1. Creating CDs and DVDs with Fedora’s Graphical Clients
          1. Nautilus
          2. GnomeBaker
        2. Creating CDs from the Command Line
        3. Creating DVDs from the Command Line
          1. Session Writing
          2. Packet Writing
      5. Sound and Music
        1. Sound Cards
        2. Adjusting Volume
        3. Sound Formats
      6. Viewing Video
        1. TV and Video Hardware
        2. Video Formats
        3. Viewing Video in Linux
        4. Personal Video Recorders
        5. DVD and Video Players
      7. Reference
    4. 8. Printing with Fedora
      1. Overview of Fedora Printing
      2. Configuring and Managing Print Services
        1. GUI-Based Printer Configuration Quickstart
        2. Managing Printing Services
      3. Creating and Configuring Local Printers
        1. Creating the Print Queue
        2. Editing Printer Settings
      4. Reference
    5. 9. Games
      1. Linux Gaming
        1. Installing Proprietary Video Drivers
      2. Installing Popular Games in Fedora
        1. DOOM 3
        2. Unreal Tournament 2004
        3. Quake 4
        4. Wolfenstein: Enemy Territory
        5. Battle for Wesnoth
      3. KDEedu
      4. Playing Windows Games with Cedega
      5. Reference
  8. III. System Administration
    1. 10. Managing Users
      1. User Accounts
        1. Adding New Users
        2. User IDs and Group IDs
      2. Managing Groups
        1. Group Management Tools
      3. Managing Users
        1. User Management Tools
        2. Monitoring User Activity on the System
      4. Managing Permissions
        1. Assigning Permissions
        2. Directory Permissions
        3. Understanding Set User ID and Set Group ID Permissions
      5. Managing Passwords
        1. The Password File
        2. Shadow Passwords
        3. Managing Password Security for Users
        4. Changing Passwords in a Batch
      6. Granting System Administrator Privileges to Regular Users
        1. Temporarily Changing User Identity with the su Command
        2. Granting Root Privileges on Occasion—The sudo Command
      7. Disk Quotas
        1. Implementing Quotas
        2. Manually Configuring Quotas
      8. Reference
    2. 11. Automating Tasks
      1. Running Services at Bootup
        1. Beginning the Boot Loading Process
        2. Loading the Linux Kernel
        3. System Services and Runlevels
        4. Runlevel Definitions
        5. Booting into the Default Runlevel
        6. Booting to a Nondefault Runlevel with GRUB
        7. Understanding init Scripts and the Final Stage of Initialization
        8. Controlling Services at Boot with Administrative Tools
          1. Using the chkconfig Text-Based Command-Line Tool
          2. Using the GUI-Based Service Configuration Tool
        9. Running Services Through xinetd
        10. Changing Runlevels
      2. Troubleshooting Runlevel Problems
      3. Starting and Stopping Services Manually
      4. Scheduling Tasks
        1. Using at and batch to Schedule Tasks for Later
        2. Using cron to Run Jobs Repeatedly
      5. Basic Shell Control
        1. The Shell Command Line
        2. Shell Pattern-Matching Support
        3. Piping Data
        4. Background Processing
      6. Reference
    3. 12. System-Monitoring Tools
      1. Console-Based Monitoring
      2. Using the kill Command to Control Processes
      3. Using Priority Scheduling and Control
      4. Displaying Free and Used Memory with free
        1. Disk Quotas
      5. Graphical Process and System Management Tools
      6. KDE Process- and System-Monitoring Tools
      7. Reference
    4. 13. Backing Up
      1. Choosing a Backup Strategy
        1. Why Data Loss Occurs
        2. Assessing Your Backup Needs and Resources
        3. Evaluating Backup Strategies
          1. Simple Strategy
          2. Full Backup on a Periodic Basis
          3. Full Backups with Incremental Backups
          4. Mirroring Data or RAID Arrays
        4. Making the Choice
      2. Choosing Backup Hardware and Media
        1. Removable Storage Media
          1. FireWire Drives
          2. CD-RW and DVD+RW/-RW Drives
        2. Network Storage
        3. Tape Drive Backup
      3. Using Backup Software
        1. tar: The Most Basic Backup Tool
          1. Creating Full and Incremental Backups with tar
          2. Restoring Files from an Archive with tar
        2. The GNOME File Roller
        3. The KDE Archiving Tools (KDE ark and kdat)
        4. Using the Amanda Backup Application
        5. Alternative Backup Software
      4. Copying Files
        1. Copying Files Using tar
        2. Compressing, Encrypting, and Sending tar Streams
        3. Copying Files Using cp
        4. Using mc to Copy Files
      5. System Rescue
        1. The Fedora Rescue Disc
        2. Backing Up and Restoring the Master Boot Record
        3. Manually Restoring the Partition Table
        4. Booting the System from the Rescue Disc
        5. Booting the System from a Generic Boot Floppy Disk
        6. Using a GRUB Boot Floppy Disk
        7. Using the Recovery Facility from the Installation Disc
      6. Reference
    5. 14. Networking
      1. Using Network Configuration Tools
        1. Using Graphical Configuration Tools
        2. Command-Line Network Interface Configuration
          1. /sbin/ifconfig
          2. /sbin/route
          3. /bin/netstat
        3. Network Configuration Files
          1. Adding Hosts to /etc/hosts
          2. Service Settings in /etc/services
          3. Using /etc/nsswitch.conf After Changing Naming Services
          4. Setting a Name Server with /etc/resolv.conf
          5. Setting DNS Search Order with /etc/host.conf
          6. Examining Host Network Settings in /etc/sysconfig/network
      2. Laying the Foundation: The localhost Interface
        1. Checking for the Availability of the Loopback Interface
        2. Configuring the Loopback Interface Manually
      3. Networking with TCP/IP
      4. Advanced Wireless Networking
        1. Support for Wireless Networking in Fedora
        2. TCP/IP Addressing
      5. Dynamic Host Configuration Protocol
        1. How DHCP Works
        2. DHCP Software Installation
          1. DHCP dhclient
          2. DHCP Server
        3. Using DHCP to Configure Network Hosts
          1. DHCP Server Configuration
        4. Other Uses for DHCP
        5. Using IP Masquerading in Fedora
        6. Ports
      6. Beyond the Network and Onto the Internet
        1. Common Configuration Information
        2. Configuring DSL Access
        3. Understanding Point-to-Point Protocol over Ethernet
        4. Configuring a PPPoE Connection Manually
      7. Configuring Dial-Up Internet Access
        1. Configuring a Dial-Up Connection Manually
        2. Using the Fedora Internet Configuration Wizard
      8. Troubleshooting Connection Problems
      9. Reference
        1. General
        2. DHCP
        3. Wireless
        4. Books
    6. 15. Remote Access with SSH
      1. Setting Up a Telnet Server
      2. Setting Up an SSH Server
      3. The SSH Tools
        1. Using scp to Copy Individual Files Between Machines
        2. Using sftp to Copy Many Files Between Machines
        3. Using ssh-keygen to Enable Key-Based Logins
      4. Remote X
        1. XDMCP
        2. VNC
      5. References
    7. 16. Xen
      1. Why Virtualization Is a Smart Idea
      2. Virtualization Versus Paravirtualization
      3. How Xen Works
      4. Installing Xen
      5. Setting Up Guest Operating Systems
      6. Runtime Configuration
      7. Reference
  9. IV. Fedora As a Server
    1. 17. Apache Web Server Management
      1. About the Apache Web Server
      2. Installing the Apache Server
        1. Installing Through Pirut
        2. Installing from the RPM
        3. Building the Source Yourself
          1. Using ./configure to Build Apache
          2. Apache File Locations After a Build and Install
      3. Starting and Stopping Apache
        1. Starting the Apache Server Manually
        2. Using /etc/rc.d/init.d/httpd
        3. Controlling Apache with Fedora’s service Command
        4. Controlling Apache with Fedora’s chkconfig Command
      4. Graphic Interface Configuration of Apache
        1. Configuring Virtual Host Properties
        2. Configuring the Server
        3. Configuring Apache for Peak Performance
      5. Runtime Server Configuration Settings
        1. Runtime Configuration Directives
        2. Editing httpd.conf
          1. ServerRoot
          2. Listen
          3. User and Group
          4. ServerAdmin
          5. ServerName
          6. DocumentRoot
          7. UserDir
          8. DirectoryIndex
        3. Apache Multiprocessing Modules
        4. Using .htaccess Configuration Files
          1. Options Directives
          2. AllowOverrides Directives
      6. File System Authentication and Access Control
        1. Restricting Access with allow and deny
        2. Authentication
        3. Final Words on Access Control
      7. Apache Modules
        1. mod_access
        2. mod_alias
        3. mod_asis
        4. mod_auth
        5. mod_auth_anon
        6. mod_auth_dbm
        7. mod_auth_digest
        8. mod_autoindex
        9. mod_cgi
        10. mod_dir and mod_env
        11. mod_expires
        12. mod_headers
        13. mod_include
        14. mod_info and mod_log_config
        15. mod_mime and mod_mime_magic
        16. mod_negotiation
        17. mod_proxy
        18. mod_rewrite
        19. mod_setenvif
        20. mod_speling
        21. mod_status
        22. mod_ssl
        23. mod_unique_id
        24. mod_userdir
        25. mod_vhost_alias
      8. Virtual Hosting
        1. Address-Based Virtual Hosts
        2. Name-Based Virtual Hosts
      9. Logging
      10. Reference
    2. 18. Administering Database Services
      1. A Brief Review of Database Basics
        1. How Relational Databases Work
        2. Understanding SQL Basics
          1. Creating Tables
          2. Inserting Data into Tables
          3. Retrieving Data from a Database
      2. Choosing a Database: MySQL Versus PostgreSQL
        1. Speed
        2. Data Locking
        3. ACID Compliance in Transaction Processing to Protect Data Integrity
        4. SQL Subqueries
        5. Procedural Languages and Triggers
      3. Configuring MySQL
        1. Setting a Password for the MySQL Root User
        2. Creating a Database in MySQL
        3. Granting and Revoking Privileges in MySQL
      4. Configuring PostgreSQL
        1. Initializing the Data Directory in PostgreSQL
        2. Creating a Database in PostgreSQL
        3. Creating Database Users in PostgreSQL
        4. Deleting Database Users in PostgreSQL
        5. Granting and Revoking Privileges in PostgreSQL
      5. Database Clients
        1. SSH Access to a Database
        2. Local GUI Client Access to a Database
        3. Web Access to a Database
        4. The MySQL Command-Line Client
        5. The PostgreSQL Command-Line Client
        6. Graphical Clients
      6. Reference
    3. 19. File and Print
      1. Using the Network File System
        1. NFS Server Configuration
        2. NFS Client Configuration
      2. Putting Samba to Work
        1. Configuring Samba with system-config-samba
        2. Configuring Samba with SWAT
        3. Manually Configuring Samba with /etc/samba/smb.conf
          1. Setting Global Samba Behavior with the [global] Section
          2. Sharing Home Directories Using the [homes] Section
          3. Sharing Printers by Editing the [printers] Section
        4. Testing Samba with the testparm Command
        5. Starting the smbd Daemon
          1. Using the smbstatus Command
          2. Connecting with the smbclient Command
        6. Mounting Samba Shares
      3. Network and Remote Printing with Fedora
        1. Enabling Network Printing on a LAN
        2. Session Message Block Printing
        3. Network-Attached Printer Configuration and Printing
      4. Using the Common Unix Printing System GUI
      5. Console Print Control
        1. Using Basic Print Commands
        2. Managing Print Jobs
      6. Avoiding Printer Support Problems
        1. All-in-One (Print/Fax/Scan) Devices
        2. Using USB and Legacy Printers
      7. Reference
    4. 20. Remote File Serving with FTP
      1. Choosing an FTP Server
        1. Choosing an Authenticated or Anonymous Server
        2. Fedora FTP Server Packages
        3. Other FTP Servers
      2. Installing FTP Software
      3. The FTP User
      4. xinetd Configuration for wu-ftpd
        1. Configuring xinetd for the wu-ftp Server
        2. Starting the Very Secure FTP Server (vsftpd) Package
      5. Configuring the Very Secure FTP Server
        1. Controlling Anonymous Access
        2. Other vsftpd Server Configuration Files
          1. Default vsftpd Behaviors
      6. Configuring the wu-ftpd Server
      7. Using Commands in the ftpaccess File to Configure wu-ftpd
        1. Configure Access Control
          1. Limit Access for Anonymous Users
          2. Define User Classes
          3. Block a Host’s Access to the Server
          4. Restrict Permissions Based on Group IDs
          5. Limit Permissions Based on Individual ID
          6. Restrict the Number of Users in a Class
          7. Limit the Number of Invalid Password Entries
        2. Configure User Information
          1. Display a Prelogin Banner
          2. Display a File
          3. Display Administrator’s Email Address
          4. Notify User of Last Modification Date
        3. Configure System Logging
          1. Redirect Logging Records
          2. Log All User-Issued Commands
          3. Log Security Violations and File Transfers
        4. Configure Permission Control
          1. Allow Users to Change File Permissions
          2. Assign Users File-Delete Permission
          3. Assign Users File-Overwrite Permission
          4. Allow Users to Rename Files
          5. Allow Users to Compress Files
          6. Assign or Deny Permission to Use tar
          7. Determine What Permissions Can Apply to User-Created Upload Files
        5. Configure Commands Directed Toward the cdpath
        6. Structure of the shutdown File
      8. Configuring FTP Server File-Conversion Actions
        1. Strip Prefix
        2. Strip Postfix
        3. Add-On Prefix
        4. Add-On Postfix
        5. External Command
          1. Types
          2. Options
          3. Description
        6. An Example of Conversions in Action
      9. Using ftphosts to Allow or Deny FTP Server Connection
      10. Using Commands for Server Administration
        1. Display Information About Connected Users
        2. Count the Number of Connections
        3. Use /usr/sbin/ftpshut to Schedule FTP Server Downtime
        4. Use /var/log/xferlog to View a Log of Server Transactions
      11. Reference
    5. 21. Handling Electronic Mail
      1. How Email Is Sent and Received
        1. The Mail Transport Agent
          1. Sendmail
          2. Postfix
          3. Qmail and Exim
        2. Choosing an MTA
        3. The Mail Delivery Agent
        4. The Mail User Agent
      2. Basic Sendmail Configuration and Operation
        1. Configuring Masquerading
        2. Using Smart Hosts
        3. Setting Message Delivery Intervals
        4. Building the sendmail.cf File
        5. Mail Relaying
        6. Forwarding Email with Aliases
        7. Rejecting Email from Specified Sites
      3. Introducing Postfix
        1. Making the Switch
      4. Using Fetchmail to Retrieve Mail
        1. Installing Fetchmail
        2. Configuring Fetchmail
          1. Configuring Global Options
          2. Configuring Mail Server Options
          3. Configuring User Accounts
      5. Choosing a Mail Delivery Agent
        1. Procmail
        2. Spamassassin
        3. Squirrelmail
        4. Virus Scanners
        5. Special Mail Delivery Agents
      6. Mail Daemons
      7. Alternatives to Microsoft Exchange Server
        1. Microsoft Exchange Server/Outlook Client
        2. CommuniGate Pro
        3. Oracle Collaboration Suite
        4. Open Xchange
      8. Reference
        1. Web Resources
        2. Books
    6. 22. Setting Up a Proxy Server
      1. What Is a Proxy Server?
      2. Installing Squid
      3. Configuring Clients
      4. Access Control Lists
      5. Specifying Client IP Addresses
      6. Sample Configurations
      7. Reference
    7. 23. Managing DNS
      1. Configuring DNS for Clients
        1. The /etc/host.conf File
        2. The /etc/nsswitch.conf File
        3. The /etc/hosts File
        4. The /etc/resolv.conf File
        5. Understanding the Changes Made by DHCP
      2. Essential DNS Concepts
        1. How Nameservers Store DNS Structure Information
        2. How DNS Provides Name Service Information to Users
        3. Name Resolution in Practice
      3. Using DNS Tools
        1. dig
        2. host
        3. nslookup
        4. whois
      4. Configuring a Local Caching Nameserver
      5. Your Own Domain Name and Third-Party DNS
      6. Providing DNS for a Real Domain with BIND
        1. rndc.conf
        2. named.conf
          1. The Zone File
          2. The Zone File’s SOA Record
          3. The Zone File’s Other Records
        3. Logging
        4. Resolver Configuration
        5. Running the named Nameserver Daemon
      7. Providing DNS for a Real Domain
        1. Forward Zone
        2. Reverse Zone
        3. Registering the Domain
      8. Troubleshooting DNS
        1. Delegation Problems
        2. Reverse Lookup Problems
        3. Maintaining Accurate Serial Numbers
        4. Troubleshooting Problems in Zone Files
        5. Tools for Troubleshooting
        6. Using Fedora’s BIND Configuration Tool
      9. Managing DNS Security
        1. Unix Security Considerations
        2. DNS Security Considerations
          1. Defining Access Control Lists
          2. Controlling Queries
          3. Controlling Zone Transfers
          4. Alert named to Potential Problem Hosts
        3. Using DNS Security Extensions
        4. Using Split DNS
      10. Reference
    8. 24. LDAP
      1. Configuring the Server
        1. Populating Your Directory
      2. Configuring Clients
        1. Evolution
        2. Thunderbird
      3. Administration
      4. Reference
  10. V. Programming Linux
    1. 25. Using Perl
      1. Using Perl with Linux
        1. Perl Versions
        2. A Simple Perl Program
      2. Perl Variables and Data Structures
        1. Perl Variable Types
        2. Special Variables
      3. Operators
        1. Comparison Operators
        2. Compound Operators
        3. Arithmetic Operators
        4. Other Operators
        5. Special String Constants
      4. Conditional Statements
        1. if/else
        2. unless
      5. Looping
        1. for
        2. foreach
        3. while
        4. until
        5. last and next
        6. do ... while and do ... until
      6. Regular Expressions
      7. Access to the Shell
      8. Modules and CPAN
      9. Reference
        1. Books
    2. 26. Working with Python
      1. Python on Linux
        1. Getting Interactive
      2. The Basics of Python
        1. Numbers
        2. More on Strings
        3. Lists
        4. Dictionaries
        5. Conditionals and Looping
      3. Functions
      4. Object Orientation
        1. Class and Object Variables
        2. Constructors and Destructors
        3. Class Inheritance
        4. Multiple Inheritance
      5. The Standard Library and the Vaults of Parnassus
      6. Reference
    3. 27. Writing PHP Scripts
      1. Introduction to PHP
        1. Entering and Exiting PHP Mode
        2. Variables
        3. Arrays
        4. Constants
        5. Comments
        6. Escape Sequences
        7. Variable Substitution
        8. Operators
        9. Conditional Statements
        10. Special Operators
        11. Switching
        12. Loops
        13. Including Other Files
      2. Basic Functions
        1. Strings
        2. Arrays
        3. Files
        4. Miscellaneous
      3. Handling HTML Forms
      4. Reference
    4. 28. C/C++ Programming Tools for Fedora
      1. Programming in C/C++ with Linux
      2. Using the C Programming Project Management Tools Provided with Fedora Linux
        1. Building Programs with make
          1. Using Makefiles
          2. Using Macros and Makefile Targets
        2. Using the autoconf Utility to Configure Code
        3. Managing Software Projects with Subversion
        4. Debugging Tools
          1. Using splint to Check Source Code
          2. Using gprof to Track Function Time
          3. Doing Symbolic Debugging with gdb
      3. Using the GNU C Compiler
      4. Graphical Development Tools
        1. Using the KDevelop Client
        2. The Glade Client for Developing in GNOME
      5. Reference
    5. 29. Mono
      1. Why Use Mono?
      2. Mono on the Command Line
        1. The Structure of a C# Program
        2. Printing Out the Parameters
        3. Creating Your Own Variables
        4. Adding Some Error Checking
      3. Building on Mono’s libraries
        1. Searching with Beagle
        2. Creating a GUI with Gtk#
      4. Reference
  11. VI. Fedora Housekeeping
    1. 30. Securing Your Machines
      1. Understanding Computer Attacks
      2. Assessing Your Vulnerability
      3. Protecting Your Machine
        1. Securing a Wireless Network
        2. Passwords and Physical Security
        3. Configuring and Using Tripwire
        4. Devices
      4. Viruses
      5. Configuring Your Firewall
      6. Forming a Disaster Recovery Plan
      7. Keeping Up-to-Date on Linux Security Issues
      8. Understanding SELinux
      9. Reference
    2. 31. Performance Tuning
      1. Hard Disk
        1. Using the BIOS and Kernel to Tune the Disk Drives
        2. The hdparm Command
        3. File System Tuning
        4. The tune2fs Command
        5. The e2fsck Command
        6. The badblocks Command
        7. Disabling File Access Time
      2. Kernel
      3. Apache
      4. MySQL
        1. Measuring Key Buffer Usage
        2. Using the Query Cache
        3. Miscellaneous Tweaks
        4. Query Optimization
      5. Reference
    3. 32. Command Line Masterclass
      1. Why Use the Shell?
      2. Basic Commands
        1. Printing the Contents of a File with cat
        2. Changing Directories with cd
        3. Changing File Access Permissions with chmod
        4. Copying Files with cp
        5. Printing Disk Usage with du
        6. Finding Files by Searching with find
        7. Searches for a String in Input with grep
        8. Paging Through Output with less
        9. Creating Links Between Files with ln
        10. Finding Files from an Index with locate
        11. Listing Files in the Current Directory with ls
        12. Reading Manual Pages with man
        13. Making Directories with mkdir
        14. Moving Files with mv
        15. Listing Processes with ps
        16. Deleting Files and Directories with rm
        17. Printing the Last Lines of a File with tail
        18. Printing Resource Usage with top
        19. Printing the Location of a Command with which
      3. Combining Commands
      4. Multiple Terminals
      5. Date and Time
        1. Using the date Command
        2. Using the hwclock Command
      6. Capturing Screen Images
      7. Reference
        1. Books
    4. 33. Writing and Executing a Shell Script
      1. Running a Shell Program
      2. Interpreting Shell Scripts Through Specific Shells
      3. Using Variables in Shell Scripts
        1. Assigning a Value to a Variable
        2. Accessing Variable Values
        3. Positional Parameters
          1. A Simple Example of a Positional Parameter
          2. Accessing and Retrieving Variables
      4. Using a Simple Script to Automate Tasks
      5. Built-in Variables
      6. Special Characters
        1. Use Double Quotes to Resolve Variables in Strings with Embedded Spaces
        2. Using Single Quotes to Maintain Unexpanded Variables
        3. Using the Backslash as an Escape Character
        4. Using the Backtick to Replace a String with Output
      7. Comparison of Expressions in pdksh and bash
        1. String Comparison
        2. Number Comparison
        3. File Operators
        4. Logical Operators
      8. Special Statements: for, while, and Others
        1. The for Statement
        2. The while Statement
        3. The until Statement
        4. The shift Statement
        5. The if Statement
        6. The case Statement
        7. The break and exit Statements
      9. Using Functions in Shell Scripts
      10. Reference
    5. 34. Advanced Software Management
      1. Using RPM for Software Management
        1. rpm at the Command Line
        2. Two Handy Options
        3. Using rpm on the Command Line
        4. Extracting a Single File from an RPM File
      2. Getting Started with yum
      3. Running yum Noninteractively
      4. Using yum to Remove Packages
      5. Maintaining yum
      6. Using yum to Manage Package Inventory
      7. Configuring yum
      8. Using pirut for Software Management
      9. Using Yum Extender
      10. Creating a Local yum Repository
      11. Reference
    6. 35. Managing the File System
      1. The Fedora File System Basics
        1. Physical Structure of the File System on the Disk
        2. File System Partitions
        3. Network and Disk File Systems
        4. Viewing Your System’s File Systems
      2. Working with the ext3 File System
        1. Understanding the ext3 File System Structure
        2. Journaling Options in ext3
        3. Verifying File Integrity in ext3 File Systems with the fsck Utility
      3. Other File Systems Available to Fedora
        1. The Reiser File System (reiserfs)
        2. JFS and XFS File Systems
        3. DOS File Systems
        4. CD-ROM File Systems
          1. iso9660
          2. Universal Disk Format
      4. Creating a File System
        1. The Disk as a Storage Device
        2. Creating the Partition Table
          1. The fdisk Command
          2. The parted Command
        3. Creating the File System on the Partitioned Disk
          1. Using mke2fs to Create the File System
          2. Using mkfs.ext3
          3. Using mkreiserfs
        4. Creating a DOS File System with mkdosfs
      5. Mounting File Systems
        1. The mount Command
        2. The umount Command
        3. Mounting Automatically with /etc/fstab
      6. Relocating a File System
        1. Installing the New Drive
        2. Creating the Partition Table and Formatting the Disk
        3. Mounting the New Partition and Populating It with the Relocated Files
      7. Logical Volume Management
      8. File System Manipulation
        1. Creating a File System for Testing
          1. Step 1—Make a Blank Image File
          2. Step 2—Make a File System
          3. Step 3—Mount the Test File System
        2. Mounting a Partition as Read-Only on a Running System
        3. Examine an initrd Image File
      9. Reference
    7. 36. Kernel and Module Management
      1. The Linux Kernel
        1. The Linux Source Tree
        2. Types of Kernels
      2. Managing Modules
      3. When to Recompile
      4. Kernel Versions
      5. Obtaining the Kernel Sources
      6. Patching the Kernel
      7. Compiling the Kernel
        1. Using xconfig to Configure the Kernel
        2. Creating an Initial RAM Disk Image
      8. When Something Goes Wrong
        1. Errors During Compile
        2. Runtime Errors, Boot Loader Problems, and Kernel Oops
      9. Reference
  12. VII. Appendices
    1. A. The History of Red Hat and Fedora
      1. What Is Fedora?
      2. Fedora for Business
      3. Fedora in Your Home
      4. 64-Bit Fedora
      5. Fedora on the PPC Platform
      6. Fedora on Multi-Core Machines
    2. B. Installation Resources
      1. Planning Your Fedora Deployment
        1. Business Considerations
        2. System Considerations
        3. User Considerations
        4. A Predeployment Planning Checklist
        5. Planning the Installation
      2. Hardware Requirements
        1. Meeting the Minimum Fedora Hardware Requirements
        2. Using Legacy Hardware
        3. Planning for Hard Drive Storage for Your Fedora Installation
        4. Checking Hardware Compatibility
        5. Preparing for Potential Hardware Problems
          1. Controllerless Modems
          2. USB Devices
          3. Motherboard-Based Hardware
          4. CPU, Symmetric Multiprocessing, and Memory Problems
        6. Preparing and Using a Hardware Inventory
      3. Preparing for the Install Process
      4. Partitioning Before and During Installation
        1. Choosing a Partitioning Scheme
        2. Hosting Parts of the Linux File System on Separate Partitions
      5. Using Fedora’s kickstart Installation Method
      6. Reference
    3. C. Fedora and Linux Internet Resources
      1. Websites and Search Engines
        1. Web Search Tips
        2. Google Is Your Friend
        3. Fedora Package Listings
        4. Certification
        5. Commercial Support
        6. Documentation
        7. Linux Guides
        8. The Fedora Project
        9. Red Hat Linux
        10. Mini-CD Linux Distributions
        11. Floppy-Based Linux Distributions
        12. Various Intel-Based Linux Distributions
        13. PowerPC-Based Linux Distributions
        14. Linux on Laptops and PDAs
        15. X
      2. Usenet Newsgroups
      3. Mailing Lists
        1. Fedora Project Mailing Lists
        2. Red Hat Mailing Lists
      4. Internet Relay Chat