< Day Day Up >
•
Table of Contents
•
Index
•
Reviews
•
Reader Reviews
•
Errata
•
Academic
•
Cooking with Linux, Part 2
•
Cooking with Linux, Part 1
Linux Cookbook
By
Carla Schroder
Publisher
: O'Reilly
Pub Date
: November 2004
ISBN
: 0-596-00640-3
Pages
: 580
Copyright
Dedication
Preface
Recipe Audience
Recipe What Is Included/Omitted
Recipe Platforms
Recipe Conventions
Recipe Downloads and Feedback
Recipe Comments and Questions
Recipe Acknowledgments
Chapter 1. Finding Documentation
Section 1.1. Introduction
Recipe 1.2. Understanding man Pages
Recipe 1.3. Finding Appropriate man Pages
Recipe 1.4. Finding Lost man Pages
Recipe 1.5. Reading man Pages Without a man Viewer
Recipe 1.6. Configuring Your manpath
Recipe 1.7. Using info Pages
Recipe 1.8. Printing man Pages
Recipe 1.9. Printing info Pages
Recipe 1.10. Printing Selected man or info Pages
Recipe 1.11. Finding All of the Documentation for a Program
Chapter 2. Installing and Managing Software on RPM-Based Systems
Section 2.1. Introduction
Recipe 2.2. Installing RPMs
Recipe 2.3. Upgrading RPMs
Recipe 2.4. Removing RPMs
Recipe 2.5. Collecting Information on Installed RPMs
Recipe 2.6. Collecting Information from RPMs That Are Not Installed
Recipe 2.7. Finding Recently Installed RPMs
Recipe 2.8. Rebuilding the RPM Database
Recipe 2.9. Tracking Source-Built Libraries on an RPM-Based System
Recipe 2.10. Fixing RPM Installation Problems
Recipe 2.11. Installing Source RPMs
Recipe 2.12. Customizing Build Options in a Source RPM
Recipe 2.13. Installing Yum
Recipe 2.14. Configuring Yum
Recipe 2.15. Installing and Upgrading Packages with Yum
Recipe 2.16. Removing Packages with Yum
Recipe 2.17. Getting Information on Installed Packages with Yum
Recipe 2.18. Maintaining Yum
Chapter 3. Installing and Managing Software on Debian-Based Systems
Section 3.1. Introduction
Recipe 3.2. Getting Software for a Debian System
Recipe 3.3. Installing Debian Packages from CD-ROM
Recipe 3.4. Installing Packages on Debian-Based Systems
Recipe 3.5. Removing Packages from a Debian System
Recipe 3.6. Installing from Sources on a Debian System
Recipe 3.7. Upgrading Packages on Debian
Recipe 3.8. Upgrading a Debian System
Recipe 3.9. Upgrading to a Newer Debian Release
Recipe 3.10. Running a Mixed Debian System
Recipe 3.11. Finding Out What Is Installed on a Debian System
Recipe 3.12. Maintaining the Debian Package Cache
Recipe 3.13. Resolving Debian Dependency Conflicts
Recipe 3.14. Building a Local Debian Repository
Recipe 3.15. Selecting Package Mirrors for apt-proxy.conf
Recipe 3.16. Adding Your Existing Package Cache to apt-proxy.conf
Chapter 4. Installing Programs from Source Code
Section 4.1. Introduction
Recipe 4.2. Preparing Your System for Compiling Programs from Sources
Recipe 4.3. Generating a List of Files from a Source Install for Easy Uninstalls
Recipe 4.4. Installing Programs from Source Code
Recipe 4.5. Using CheckInstall to Create Packages from Sources
Chapter 5. Discovering Hardware from Outside the Box
Section 5.1. Introduction
Recipe 5.2. Detecting Hardware with lspci
Recipe 5.3. Using dmesg to Collect Hardware Information
Recipe 5.4. Getting Live Hardware Snapshots with /proc
Recipe 5.5. Viewing Drive Partitions with fdisk
Recipe 5.6. Calculating Hard Drive Capacity
Chapter 6. Editing Text Files with JOE and Vim
Section 6.1. Introduction
Recipe 6.2. Finding JOE Commands
Recipe 6.3. Customizing JOE
Recipe 6.4. Organizing JOE's Preferences in a Separate File
Recipe 6.5. Copying Between Two Files in JOE
Recipe 6.6. Searching and Replacing in JOE
Recipe 6.7. Selecting Text Vertically in JOE
Recipe 6.8. Finding and Opening Files in JOE
Recipe 6.9. Learning Vim Quickly
Recipe 6.10. Creating Autotext with Vim's Abbreviations
Recipe 6.11. Mapping Commands to Keystrokes
Recipe 6.12. Customizing Vim
Recipe 6.13. Navigating Quickly in Vim with Marks
Recipe 6.14. Picking Up Where You Left Off: Using Vim's Sessions
Recipe 6.15. Setting Your Default Editor
Recipe 6.16. Discovering Vim's Compile-Time Options
Chapter 7. Starting and Stopping Linux
Section 7.1. Introduction
Recipe 7.2. Changing Runlevels After Bootup
Recipe 7.3. Changing the Default Runlevel
Recipe 7.4. Starting and Stopping X
Recipe 7.5. Managing Debian's Runlevels
Recipe 7.6. Creating Both Text and Graphical Login Runlevels on Debian
Recipe 7.7. Managing Red Hat's Runlevels
Recipe 7.8. Manually Configuring Startup Services
Recipe 7.9. Manually Starting and Stopping Services
Recipe 7.10. Shutting Down or Rebooting Linux
Recipe 7.11. Disabling or Limiting Access to Ctrl-Alt-Delete
Recipe 7.12. Shutting Down Automatically
Chapter 8. Managing Users and Groups
Section 8.1. Introduction
Recipe 8.2. Sorting Human Users from System Users
Recipe 8.3. Finding a User's UID and GID
Recipe 8.4. Adding Users with useradd
Recipe 8.5. Adding Users with adduser
Recipe 8.6. Modifying User Accounts
Recipe 8.7. Deleting a User
Recipe 8.8. Killing User Processes the Easy, Fun Way
Recipe 8.9. Disabling Accounts
Recipe 8.10. Managing Passwords
Recipe 8.11. Adding Groups with groupadd
Recipe 8.12. Deleting Groups with groupdel
Recipe 8.13. Creating a System User
Recipe 8.14. Creating System Groups with addgroup
Recipe 8.15. Adding and Deleting Group Members
Recipe 8.16. Checking Password File Integrity
Recipe 8.17. Adding New Users in Batches
Recipe 8.18. Changing Masses of Passwords
Recipe 8.19. Adding Batches of Users to Groups
Recipe 8.20. Using su to Be Root Temporarily
Recipe 8.21. Granting Limited Rootly Powers with sudo
Recipe 8.22. Using Disk Quotas
Chapter 9. Managing Files and Partitions
Section 9.1. Introduction
Recipe 9.2. Setting File and Directory Permissions with chmod's Numeric Notation
Recipe 9.3. Doing Batch Operations with chmod
Recipe 9.4. Setting File and Directory Permissions with chmod's Symbolic Notation
Recipe 9.5. Setting File Ownership with chown
Recipe 9.6. Doing Batch Operations with chown
Recipe 9.7. Setting Up a Shared Directory with setgid and the Sticky Bit
Recipe 9.8. Setting Permissions Defaults with umask
Recipe 9.9. Mounting and Unmounting Removable Disks
Recipe 9.10. Configuring Filesystem Mounts with /etc/fstab
Recipe 9.11. Mounting and Unmounting Filesystems on Hard Drives
Recipe 9.12. Finding Device Names for mount and fstab
Recipe 9.13. Creating Files and Directories
Recipe 9.14. Deleting Files and Directories
Recipe 9.15. Copying, Moving, and Renaming Files and Directories
Recipe 9.16. Creating Linux Disk Partitions with fdisk
Recipe 9.17. Creating a Filesystem on a New Partition
Chapter 10. Patching, Customizing, and Upgrading Kernels
Section 10.1. Introduction
Recipe 10.2. Adding New Features to the 2.4 Kernel
Recipe 10.3. Slimming a Stock 2.4 Kernel
Recipe 10.4. Upgrading to the Latest Stable Version of the 2.4 Kernel
Recipe 10.5. Building the 2.6 Kernel
Recipe 10.6. Adding New Features to the 2.6 Kernel
Recipe 10.7. Adding a New Loadable Kernel Module
Recipe 10.8. Patching a Kernel
Recipe 10.9. Removing a Kernel Patch
Recipe 10.10. Creating an initrd Image
Recipe 10.11. Creating a Boot Disk on Debian
Recipe 10.12. Creating a Boot Disk on Red Hat
Chapter 11. CD and DVD Recording
Section 11.1. Introduction
Recipe 11.2. Finding the SCSI Address for CD and DVD Writers
Recipe 11.3. Enabling SCSI Emulation for IDE/Atapi CD and DVD Writers
Recipe 11.4. Making a Data CD for General Distribution
Recipe 11.5. Building File Trees on a Data CD
Recipe 11.6. Copying a CD or DVD
Recipe 11.7. Erasing a CD-RW
Recipe 11.8. Recording a Multisession Data CD
Recipe 11.9. Creating a Bootable CD
Recipe 11.10. Spanning a Large File over Several CDs
Recipe 11.11. Recording Data DVDs
Recipe 11.12. Recording an Audio CD for Standard CD Players
Chapter 12. Managing the Bootloader and Multi-Booting
Section 12.1. Introduction
Recipe 12.2. Migrating from LILO to GRUB
Recipe 12.3. Installing GRUB Without a Floppy Disk
Recipe 12.4. Installing GRUB with grub-install
Recipe 12.5. Preparing a System for Multibooting Linux
Recipe 12.6. Adding More Linuxes to a Multiboot System
Recipe 12.7. Discovering Boot Parameters from the GRUB Command Shell
Recipe 12.8. Configuring the Boot Partition
Recipe 12.9. Creating the GRUB Boot Menu
Recipe 12.10. Customizing menu.lst
Recipe 12.11. Adding Windows 95/98/ME to a Linux System
Recipe 12.12. Adding Windows NT/2000/XP to a Multiboot System
Recipe 12.13. Restoring GRUB to the MBR with a Knoppix CD
Recipe 12.14. Protecting System Files with a GRUB Password
Recipe 12.15. Locking Out Users from Individual GRUB Menu Entries
Recipe 12.16. Creating a GRUB Splash Image
Recipe 12.17. Booting Linux with LILO
Recipe 12.18. Multibooting Linuxes with LILO
Recipe 12.19. Multibooting Windows and Linux with LILO
Recipe 12.20. Creating a LILO Boot Diskette
Recipe 12.21. Password-Protecting LILO
Recipe 12.22. Backing Up the MBR
Chapter 13. System Rescue and Recovery with Knoppix
Section 13.1. Introduction
Recipe 13.2. Booting Knoppix
Recipe 13.3. Creating a Knoppix Boot Diskette
Recipe 13.4. Saving Your Knoppix Configuration on a USB Memory Stick
Recipe 13.5. Creating a Persistent, Encrypted Knoppix Home Directory
Recipe 13.6. Copying Files to Another Linux PC
Recipe 13.7. Copying Files to a Samba Share
Recipe 13.8. Copying Files to a CD-R/RW
Recipe 13.9. Editing Configuration Files from Knoppix
Recipe 13.10. Installing Software from Knoppix
Recipe 13.11. Repairing a Lost Root Password
Recipe 13.12. Installing Knoppix to a Hard Disk
Recipe 13.13. Virus-Scanning Windows PCs with Knoppix
Chapter 14. Printing with CUPS
Section 14.1. Introduction
Recipe 14.2. Installing a Printer on a Standalone Linux PC
Recipe 14.3. Serving Linux Clients
Recipe 14.4. Sharing a Printer Without Using Name Resolution
Recipe 14.5. Serving Windows Clients Without Samba
Recipe 14.6. Sharing Printers on a Mixed LAN with Samba
Recipe 14.7. Building a Dedicated CUPS Printer Server
Recipe 14.8. Distributed Printing with Classes
Recipe 14.9. Restricting Users from Printers and Classes
Recipe 14.10. Troubleshooting
Chapter 15. Configuring Video and Managing X Windows
Section 15.1. Introduction
Recipe 15.2. Using Both X Windows and Consoles
Recipe 15.3. Installing a New Video Adapter
Recipe 15.4. Editing XF86Config
Recipe 15.5. Enabling 3D Hardware Acceleration with XFree86/DRI
Recipe 15.6. Troubleshooting 3D Acceleration Problems
Recipe 15.7. Configuring a Multihead Display
Recipe 15.8. Choosing Different ServerLayouts at Startup
Recipe 15.9. Setting a Default ServerLayout
Recipe 15.10. Configuring startx
Recipe 15.11. Changing Your Login Display Manager
Recipe 15.12. Running Different Window Managers Simultaneously with Xnest
Chapter 16. Backup and Recovery
Section 16.1. Introduction
Recipe 16.2. Using rsync for Local File Transfers and Synchronization
Recipe 16.3. Making Secure Transfers with rsync and ssh
Recipe 16.4. Building an rsync Backup Server
Recipe 16.5. Securing rsync Modules
Recipe 16.6. Building an Anonymous Public rsync Server
Recipe 16.7. Launching the rsync Daemon at Startup
Recipe 16.8. Fine-Tuning File Selection
Recipe 16.9. Automating rsync over ssh Backups
Recipe 16.10. Limiting rsync's Bandwidth Requirements
Recipe 16.11. Customizing Filepaths in rsync
Recipe 16.12. Installing rsync on Windows Clients
Recipe 16.13. Creating a Message of the Day for rsync
Recipe 16.14. Creating a Bootable System Restore CD with Mondo Rescue
Recipe 16.15. Verifying the Mondo Backup
Recipe 16.16. Creating a Bootable System Restore DVD with Mondo Rescue
Recipe 16.17. Using Mondo Rescue to Clone Linux Systems
Recipe 16.18. Using the mindi-kernel for a "Sane" Backup
Recipe 16.19. Restoring a System from a Mondo Rescue Disk
Recipe 16.20. Restoring Selected Files from a Mondo Disk
Chapter 17. Remote Access
Section 17.1. Introduction
Recipe 17.2. Setting Up OpenSSH the First Time
Recipe 17.3. Generating New Host Keys
Recipe 17.4. Authenticating Via Public Keys
Recipe 17.5. Using Multiple Key Pairs
Recipe 17.6. Passwordless Logins with ssh-agent
Recipe 17.7. Better Passwordless Logins with keychain
Recipe 17.8. Passwordless Logins for cron Jobs
Recipe 17.9. Shutting Down ssh-agent Automatically at Logout
Recipe 17.10. Customizing the Bash Prompt for ssh
Recipe 17.11. Tunneling X over SSH
Recipe 17.12. Connecting from a Windows PC
Recipe 17.13. Setting File Permissions on ssh Files
Chapter 18. Version Control
Section 18.1. Introduction
Recipe 18.2. Building a Simple Local RCS Repository
Recipe 18.3. Retrieving Older File Revisions from RCS
Recipe 18.4. Comparing File Versions in RCS
Recipe 18.5. Managing System Configuration Files with RCS
Recipe 18.6. Using CVS for a Single-User Local Repository
Recipe 18.7. Adding New Files to a CVS Repository
Recipe 18.8. Deleting Files from a CVS Repository
Recipe 18.9. Creating a Shared CVS Repository
Recipe 18.10. Sharing a Single Repository Between Several Groups
Recipe 18.11. Accessing a Remote CVS Repository
Recipe 18.12. Updating Your Working Files in CVS
Recipe 18.13. Retrieving Specific Older Revisions from CVS
Recipe 18.14. Building an Anonymous Read-Only CVS Repository with Pserver
Recipe 18.15. Mirroring a CVS Repository
Recipe 18.16. Storing Binary Files in CVS
Recipe 18.17. Creating Release Snapshots with Tags
Recipe 18.18. Creating Stable and Development Branches for a Project
Recipe 18.19. Customizing Your CVS Environment
Recipe 18.20. Calculating Storage Size for a CVS Repository
Chapter 19. Keeping Time with NTP
Section 19.1. Introduction
Recipe 19.2. Building a Local Time Server
Recipe 19.3. Connecting to a Local Time Server
Recipe 19.4. Adding Access Controls
Recipe 19.5. Deciding Which NTP Pools to Use
Recipe 19.6. Connecting to a Time Server from an Intermittent Connection
Recipe 19.7. Setting Up Multiple Local Time Servers
Recipe 19.8. Using NTP Keys for Authentication
Chapter 20. Building a Postfix Mail Server
Section 20.1. Introduction
Recipe 20.2. Building a POP3 Mail Server
Recipe 20.3. Building a POP3 Mail Server on Debian
Recipe 20.4. Testing the SMTP/POP3 Mail Server
Recipe 20.5. Sending Internet Mail
Recipe 20.6. Receiving Internet Mail
Recipe 20.7. Installing Cyrus-SASL for SMTP Authorization
Recipe 20.8. Installing Cyrus-SASL on Debian
Recipe 20.9. Setting Up smtp-auth to Authenticate Users
Recipe 20.10. Using smtp-auth to Authenticate Postfix to Another Server
Recipe 20.11. Configuring a Fully Qualified Domain Name
Recipe 20.12. Building an IMAP Mail Server
Recipe 20.13. Connecting Your Users
Recipe 20.14. Sharing IMAP Folders
Recipe 20.15. Using Postfix's Virtual Mailbox Domains
Recipe 20.16. Creating a Mail List with couriermlm
Recipe 20.17. Administering a couriermlm List
Recipe 20.18. Squirreling Around with Webmail
Recipe 20.19. Table of SMTP Response Codes and SMTP Commands
Chapter 21. Managing Spam and Malware
Section 21.1. Introduction
Recipe 21.2. Basic Checklist: Preparing to Build Spam Malware Defenses
Recipe 21.3. Safely Testing New UBE Controls in Postfix
Recipe 21.4. Basic UBE Configurations for Postfix
Recipe 21.5. Creating Whitelists
Recipe 21.6. Using DNS Blackhole Lists
Recipe 21.7. Rejecting Messages with Attachments
Recipe 21.8. Setting Up Clam Anti-Virus on a Postfix Server
Recipe 21.9. Setting Up SpamAssassin on Postfix with Amavisd-new
Recipe 21.10. Setting Up SpamAssassin Without Amavisd-new
Chapter 22. Running an Apache Web Server
Section 22.1. Introduction
Recipe 22.2. Installing Apache 2.0 from Sources
Recipe 22.3. Adding New Modules After Installation
Recipe 22.4. Setting Apache File Permissions and Ownership
Recipe 22.5. Accessing the Apache User's Manual Locally
Recipe 22.6. Setting Up a Simple Public Web Server
Recipe 22.7. Redirecting URLs to a New Directory
Recipe 22.8. Giving Users Individual Web Directories
Recipe 22.9. Starting Apache at Boot
Recipe 22.10. Hosting Multiple Domains with Apache
Recipe 22.11. Using Individual Log Files for Virtual Hosts
Recipe 22.12. Keeping LAN Web Sites Off the Internet
Recipe 22.13. Password-Protecting Individual Directories
Recipe 22.14. Using robots.txt to Control Web Crawlers
Recipe 22.15. Blocking Obnoxious Visitors
Recipe 22.16. Making Custom Error Pages
Recipe 22.17. Customizing Apache's Default Error Pages
Recipe 22.18. Making Full-Length Directory Indexes
Recipe 22.19. Using Content Negotiation to Deliver Pages in Different Languages
Recipe 22.20. Using Favicons
Recipe 22.21. Viewing Apache Access Logs with Webalizer
Chapter 23. File and Printer Sharing, and Domain Authentication with Samba
Section 23.1. Introduction
Recipe 23.2. Building a Simple Anonymous Samba File Server for Windows
Recipe 23.3. Building a Windows/Linux Peer Network
Recipe 23.4. Enabling File Sharing on Windows PCs
Recipe 23.5. Adding Authentication to a Samba Server
Recipe 23.6. Batch-Converting System Users to Samba Users
Recipe 23.7. Managing Samba Logins from Windows 95/98/ME
Recipe 23.8. Dealing with Windows Encrypted Password Confusion
Recipe 23.9. Controlling Share Access with Access Control Lists
Recipe 23.10. Creating Public Shares for Users
Recipe 23.11. Accessing Users' Home Directories in Samba
Recipe 23.12. Building a Primary Domain Controller with Samba
Recipe 23.13. Connecting Windows 95/98/ME to a Samba Domain
Recipe 23.14. Connecting Windows NT/2000 Clients to a Samba Domain
Recipe 23.15. Connecting Windows XP Clients to a Samba Domain
Recipe 23.16. Enabling Roaming Profiles
Recipe 23.17. Connecting Linux Clients to a Samba File Server or Peer Network
Recipe 23.18. Connecting Linux Clients to Samba Workgroups with Command-Line Tools
Recipe 23.19. Connecting Linux Clients to a Samba Domain with GUI LAN Browsers
Recipe 23.20. Connecting Linux Clients to a Samba Domain with Command-Line Tools
Recipe 23.21. Keeping Samba and Linux Passwords in Sync
Recipe 23.22. Sharing Linux Printers with Windows
Recipe 23.23. Sharing Windows Printers with Linux
Recipe 23.24. Running Windows Applications on Linux with CrossOver Office
Chapter 24. Managing Name Resolution
Section 24.1. Introduction
Recipe 24.2. Enabling Local Name Resolution with hosts Files
Recipe 24.3. Setting Up a DHCP Server
Recipe 24.4. Configuring dhcp Clients
Recipe 24.5. Adding Static Hosts to dhcp
Recipe 24.6. Running a Public DNS Server
Recipe 24.7. Installing djbdns
Recipe 24.8. Moving tinydns's and dnscache's Logfiles
Recipe 24.9. Running a Local Caching Name Server with djbdns
Recipe 24.10. Configuring Linux and Windows Clients to Use Your Caching DNS Server
Recipe 24.11. Building a Public DNS Server with tinydns
Recipe 24.12. Building a Private tinydns Server
Recipe 24.13. Enabling Simple Load Balancing with tinydns
Recipe 24.14. Synchronizing with a Second tinydns Server
Recipe 24.15. Running a Local Caching Name Server with BIND
Recipe 24.16. Running a Private BIND DNS Server
Recipe 24.17. Checking Syntax
Recipe 24.18. Configuring a Public BIND DNS Server
Recipe 24.19. Building a BIND Secondary Server
Recipe 24.20. Simple Load Balancing with BIND
Recipe 24.21. Testing Your tinydns Server
Recipe 24.22. Testing and Querying DNS Servers with dig and dnstrace
Appendix A. Finding Linux Documentation
Recipe A.1. Linux Documentation on the Web
Recipe A.2. Books and Magazines
Appendix B. Online References
Recipe B.1. Hardware Web Sites
Recipe B.2. Usenet
Appendix C. Microsoft File Types
Appendix D. Init Script for CVSD
Colophon
Index
< Day Day Up >