Introduction to Linux System Administration I. Introduction A. Intended Audience B. Prerequisite Knowledge C. Learning Objectives D. Software Requirements E. Book Organization F. Book Conventions II. Linux and Open Source/Free Software A. What is GNU/Linux? 1. Linux the Kernel 2. The GNU Toolchain 3. Other Software B. A Brief History of GNU/Linux 1. An Intellectual Challenge 2. The Minix Roots 3. Call For Contributers 4. Explosive Growth C. GNU/Linux Distributions 1. Beyond the Kernel 2. Differences in Focus 3. Choosing a Distribution D. Open Source/Free Software vs. Closed Source 1. Defining Open Source and Free Software 2. Free As In Freedom 3. Advantages of Open Source/Free Software 4. Disadvantages of Closed Source III. Getting Started With Linux A. Linux For Windows Users 1. A Different Philosophy 2. Directory Structure 3. Everything is a File 4. Multiuser/Multitasking B. Linux For UNIX Users 1. Linux is not Unix 2. POSIX and Other Standards 3. Similarities to BSD Systems 4. Similarities to SysV Systems C. Installation 1. Information Required For Installation 2. Disk Layout Decisions 3. Linux Only vs. Dual Boot D. Creating Accounts 1. Super User vs. Regular User 2. The Danger of Overusing Root 3. Using sudo For Administrative Tasks E. A Tour of the Installed System 1. Boot Loaders 2. The Boot Process 3. A Word About initrd 4. init and Runlevels 5. The rc Scripts and /etc/init.d F. Connecting to a Network 1. IP Addressing 2. Routing Basics 3. Ethernet Primer 4. PPP and SLIP 5. ifconfig and route Commands 6. ping and traceroute Commands IV. Linux Basics A. The Command Prompt 1. Command Line vs. GUI 2. The Bash Shell 3. Other Shells 4. Shell Startup Files B. The Basic Utility Set 4. File Utilities 5. Text Utilities 6. Other Useful Commands C. Editors 1. vi and Related Editors 2. The emacs Family 3. joe, pico, and Others 4. GUI Editors D. Shell Expansion and Regular Expressions 1. Wildcards at the Shell Prompt 2. Regular Expressions 3. The Danger of Wildcards V. Beyond the Basics A. Power Commands 1. awk 2. sed 3. find B. User Administration 1. Creating User Accounts 2. Effective Use of Groups 3. User Limits 4. User Account Security 5. Managing User Expectations C. Automation 1. Scripting Basics 2. Using cron and at D. Security Concepts 1. Physical Security 2. Unneeded Services 3. syslog and Log Analysis 4. Firewalls, Packet Filters and NAT 5. SSH 6. Packet Sniffers 7. Intrusion Detection VI. File and Print Services A. Print Services 1. Berkeley lpd 2. CUPS 3. Local Print Services 4. Network Printers B. Accessing File Servers 1. NFS Client Configuration 2. autofs and Automount Utilities 3. Accessing CIFS Servers 4. Accessing Netware Servers C. Serving Files to a Network 1. NFS Server Configuration 2. Sharing Files with Samba 3. Sharing Files in a Netware Network VII. Configuring Network Services A. inetd and xinetd 1. inetd.conf and services 2. Turning Services On and Off With inetd 3. inetd vs. xinetd 4. xinetd.conf 5. Service Definition Files in xinetd.d B. Standalone Services 1. Web Services 2. Electronic Mail 3. Name Services with bind 4. Name Services with NIS/NIS+ VIII. Server Management A. Software Administration 1. Change Management Strategies 2. Software Installation 3. Package Building From Source 4. Package Management Software B. Backups and Data Recovery 1. Developing a Backup Strategy 2. Backup Software 3. Recovering From Data Loss C. Adding or Removing Hardware 1. Device Drivers 2. Creating or Modifying initrd 3. Device Files in /dev and devfs IX. The Linux Kernel A. Building Your Own Kernel 1. Kernel Configuration 2. Compilation of Kernel Sources 3. The /boot directory 4. Kernel Modules and Module Utilities 3. Third Party Drivers B. Installing a New Kernel 1. vmlinuz and System.map 2. The Modules Directory 3. Modifying Boot Loader Configuration 4. Testing a New Kernel X. System Tuning A Tuning Basics 1. Leaving Well Enough Alone 2. Diagnostic Tools 3. Tuning Based on System Function B. The /proc Filesystem 1. Examining System Parameters 2. Changing System Parameters 3. Finding Documentation C. The sysctl System 1. The /etc/sysctl.conf File 2. Making Tuning Changes Persistent XI. The X Windows System A. The Bare Minimum 1. Should servers have a GUI interface? 2. Reasons to Include X Libraries 3. The xfvb Server B. Workstations vs. Servers 1. Configuration of X Servers 2. Desktop Environment Options 3. KDE Administration Tools 4. GNOME Administration Tools XII. Appendices A. A Plethora of Links B. The Linux Documentation Project C. Installing From the Included Linux CD D. Using the Live CD Distribution E. Contents of the Supplementary CD