You are previewing Essential System Administration, 3rd Edition.
O'Reilly logo
Essential System Administration, 3rd Edition

Book Description

Essential System Administration,3rd Edition is the definitive guide for Unix system administration, covering all the fundamental and essential tasks required to run such divergent Unix systems as AIX, FreeBSD, HP-UX, Linux, Solaris, Tru64 and more. Essential System Administration provides a clear, concise, practical guide to the real-world issues that anyone responsible for a Unix system faces daily. The new edition of this indispensable reference has been fully updated for all the latest operating systems. Even more importantly, it has been extensively revised and expanded to consider the current system administrative topics that administrators need most. Essential System Administration,3rd Edition covers: DHCP, USB devices, the latest automation tools, SNMP and network management, LDAP, PAM, and recent security tools and techniques. Essential System Administration is comprehensive. But what has made this book the guide system administrators turn to over and over again is not just the sheer volume of valuable information it provides, but the clear, useful way the information is presented. It discusses the underlying higher-level concepts, but it also provides the details of the procedures needed to carry them out. It is not organized around the features of the Unix operating system, but around the various facets of a system administrator's job. It describes all the usual administrative tools that Unix provides, but it also shows how to use them intelligently and efficiently. Whether you use a standalone Unix system, routinely provide administrative support for a larger shared system, or just want an understanding of basic administrative functions, Essential System Administration is for you. This comprehensive and invaluable book combines the author's years of practical experience with technical expertise to help you manage Unix systems as productively and painlessly as possible.

Table of Contents

  1. Essential System Administration, 3rd Edition
  2. Dedication
  3. Preface
    1. The Unix Universe
      1. Unix Versions Discussed in This Book
    2. Audience
    3. Organization
      1. Chapter Descriptions
    4. Conventions Used in This Book
    5. Comments and Questions
    6. Acknowledgments
  4. 1. Introduction to System Administration
    1. 1.1. Thinking About System Administration
    2. 1.2. Becoming Superuser
      1. 1.2.1. Controlling Access to the Superuser Account
      2. 1.2.2. Running a Single Command as root
      3. 1.2.3. sudo: Selective Access to Superuser Commands
    3. 1.3. Communicating with Users
      1. 1.3.1. Sending a Message
      2. 1.3.2. Sending a Message to All Users
      3. 1.3.3. The Message of the Day
      4. 1.3.4. Specifying the Pre-Login Message
    4. 1.4. About Menus and GUIs
      1. 1.4.1. Ups and Downs
      2. 1.4.2. AIX: SMIT and WSM
      3. 1.4.3. HP-UX: SAM
      4. 1.4.4. Solaris: admintool and Sun Management Console
      5. 1.4.5. Linux: Linuxconf
      6. 1.4.6. Red Hat Linux: redhat-config-*
      7. 1.4.7. SuSE Linux: YaST2
      8. 1.4.8. FreeBSD: sysinstall
      9. 1.4.9. Tru64: SysMan
      10. 1.4.10. Other Freely Available Administration Tools
        1. 1.4.10.1. The Ximian Setup Tools
      11. 1.4.11. VNC
    5. 1.5. Where Does the Time Go?
  5. 2. The Unix Way
    1. 2.1. Files
      1. 2.1.1. File Ownership
        1. 2.1.1.1. Displaying file ownership
        2. 2.1.1.2. Who owns new files?
        3. 2.1.1.3. Changing file ownership
      2. 2.1.2. File Protection
        1. 2.1.2.1. Types of file and directory access
        2. 2.1.2.2. Access classes
        3. 2.1.2.3. Setting file protection
        4. 2.1.2.4. Beyond the basics
        5. 2.1.2.5. Specifying numeric file modes
        6. 2.1.2.6. Specifying the default file mode
        7. 2.1.2.7. Special-purpose access modes
        8. 2.1.2.8. Save-text access on directories
        9. 2.1.2.9. Setgid access on directories
        10. 2.1.2.10. Numerical equivalents for special access modes
      3. 2.1.3. How to Recognize a File Access Problem
      4. 2.1.4. Mapping Files to Disks
        1. 2.1.4.1. Regular files
        2. 2.1.4.2. Directories
        3. 2.1.4.3. Special files: character and block device files
        4. 2.1.4.4. Links
          1. 2.1.4.4.1. Tru64 Context-Dependent Symbolic Links
        5. 2.1.4.5. Sockets
        6. 2.1.4.6. Named pipes
        7. 2.1.4.7. Using ls to identify file types
    2. 2.2. Processes
      1. 2.2.1. Interactive Processes
      2. 2.2.2. Batch Processes
      3. 2.2.3. Daemons
      4. 2.2.4. Process Attributes
        1. 2.2.4.1. The life cycle of a process
        2. 2.2.4.2. Setuid and setgid file access and process execution
        3. 2.2.4.3. The relationship between commands and files
    3. 2.3. Devices
      1. 2.3.1. An In-Depth Device Example: Disks
        1. 2.3.1.1. Fixed-disk special files
      2. 2.3.2. Special Files for Other Devices
        1. 2.3.2.1. Commands for listing the devices on a system
        2. 2.3.2.2. The AIX Object Data Manager
      3. 2.3.3. The Unix Filesystem Layout
      4. 2.3.4. The Root Directory
      5. 2.3.5. The /usr Directory
      6. 2.3.6. The /var Directory
  6. 3. Essential AdministrativeTools and Techniques
    1. 3.1. Getting the Most from Common Commands
      1. 3.1.1. Getting Help
        1. 3.1.1.1. Changing the search order
        2. 3.1.1.2. Setting up man -k
      2. 3.1.2. Piping into grep and awk
      3. 3.1.3. Finding Files
      4. 3.1.4. Repeating Commands
      5. 3.1.5. Creating Several Directory Levels at Once
      6. 3.1.6. Duplicating an Entire Directory Tree
      7. 3.1.7. Comparing Directories
      8. 3.1.8. Deleting Pesky Files
      9. 3.1.9. Putting a Command in a Cage
      10. 3.1.10. Starting at the End
      11. 3.1.11. Be Creative
    2. 3.2. Essential Administrative Techniques
      1. 3.2.1. Periodic Program Execution: The cron Facility
        1. 3.2.1.1. crontab files
          1. 3.2.1.1.1. FreeBSD and Linux crontab entry format enhancements
        2. 3.2.1.2. Adding crontab entries
        3. 3.2.1.3. cron log files
        4. 3.2.1.4. Using cron to automate system administration
          1. 3.2.1.4.1. FreeBSD: The periodic command
          2. 3.2.1.4.2. Linux: The /etc/cron.* directories
        5. 3.2.1.5. cron security issues
      2. 3.2.2. System Messages
        1. 3.2.2.1. The syslog facility
        2. 3.2.2.2. Configuring syslog
        3. 3.2.2.3. Enhancements to syslog.conf
          1. 3.2.2.3.1. AIX
          2. 3.2.2.3.2. FreeBSD and Linux
          3. 3.2.2.3.3. Solaris
          4. 3.2.2.3.4. The Tru64 syslog log file hierarchy
        4. 3.2.2.4. The logger utility
      3. 3.2.3. Hardware Error Messages
        1. 3.2.3.1. The AIX error log
          1. 3.2.3.1.1. Viewing errors under HP-UX
          2. 3.2.3.1.2. The Tru64 binary error logger
      4. 3.2.4. Administering Log Files
        1. 3.2.4.1. Managing log file disk requirements
        2. 3.2.4.2. Monitoring log file contents
      5. 3.2.5. Managing Software Packages
        1. 3.2.5.1. HP-UX: Bundles, products, and subproducts
        2. 3.2.5.2. AIX: Apply versus commit
        3. 3.2.5.3. FreeBSD ports
      6. 3.2.6. Building Software Packages from Source Code
        1. 3.2.6.1. mtools: Using configure and accepting imperfections
        2. 3.2.6.2. bzip2: Converting Linux-based make procedures
        3. 3.2.6.3. jove: Configuration via make file settings
        4. 3.2.6.4. Internet software archives
  7. 4. Startup and Shutdown
    1. 4.1. About the Unix Boot Process
      1. 4.1.1. From Power On to Loading the Kernel
      2. 4.1.2. Booting to Multiuser Mode
      3. 4.1.3. Booting to Single-User Mode
        1. 4.1.3.1. Password protection for single-user mode
        2. 4.1.3.2. Firmware passwords
      4. 4.1.4. Starting a Manual Boot
        1. 4.1.4.1. AIX
        2. 4.1.4.2. FreeBSD
        3. 4.1.4.3. HP-UX
        4. 4.1.4.4. Linux
        5. 4.1.4.5. Tru64
        6. 4.1.4.6. Solaris
        7. 4.1.4.7. Booting from alternate media
      5. 4.1.5. Boot Activities in Detail
        1. 4.1.5.1. Boot messages
        2. 4.1.5.2. Saved boot log files
        3. 4.1.5.3. General considerations
        4. 4.1.5.4. Preliminaries
        5. 4.1.5.5. Preparing filesystems
        6. 4.1.5.6. Checking and mounting the root filesystem
        7. 4.1.5.7. Preparing other local filesystems
        8. 4.1.5.8. Saving a crash dump
        9. 4.1.5.9. Starting paging
        10. 4.1.5.10. Security-related activities
        11. 4.1.5.11. Checking disk quotas
        12. 4.1.5.12. Starting servers and initializing local subsystems
          1. 4.1.5.12.1. The AIX System Resource Controller
        13. 4.1.5.13. Connecting to the network
        14. 4.1.5.14. Housekeeping activities
        15. 4.1.5.15. Allowing users onto the system
    2. 4.2. Initialization Files and Boot Scripts
      1. 4.2.1. Initialization Files Under FreeBSD
      2. 4.2.2. Initialization Files on System V Systems
        1. 4.2.2.1. System V run levels
        2. 4.2.2.2. Using the telinit command to change run levels
        3. 4.2.2.3. Initialization files overview
        4. 4.2.2.4. The init configuration file
        5. 4.2.2.5. The rcn initialization scripts
        6. 4.2.2.6. Boot script configuration files
        7. 4.2.2.7. File location summary
        8. 4.2.2.8. Solaris initialization scripts
        9. 4.2.2.9. Tru64 initialization scripts
        10. 4.2.2.10. Linux initialization scripts
        11. 4.2.2.11. AIX: Making System V work like BSD
      3. 4.2.3. Customizing the Boot Process
        1. 4.2.3.1. Adding to the boot scripts
        2. 4.2.3.2. Eliminating certain boot-time activities
        3. 4.2.3.3. Modifying standard scripts
        4. 4.2.3.4. Guidelines for writing initialization scripts
    3. 4.3. Shutting Down a Unix System
      1. 4.3.1. The System V shutdown Command
        1. 4.3.1.1. HP-UX shutdown security
      2. 4.3.2. The BSD-Style shutdown Command
      3. 4.3.3. The Linux shutdown Command
      4. 4.3.4. Ensuring Disk Accuracy with the sync Command
      5. 4.3.5. Aborting a Shutdown
    4. 4.4. Troubleshooting: Handling Crashes and Boot Failures
      1. 4.4.1. Power-Failure Scripts
      2. 4.4.2. When the System Won't Boot
        1. 4.4.2.1. Bad or flaky hardware
        2. 4.4.2.2. Unreadable filesystems on working disks
        3. 4.4.2.3. Damage to non-filesystem areas of a disk
        4. 4.4.2.4. Incompatible hardware
        5. 4.4.2.5. System configuration errors
  8. 5. TCP/IP Networking
    1. 5.1. Understanding TCP/IP Networking
      1. 5.1.1. Media and Topologies
        1. 5.1.1.1. Identifying network adapters
      2. 5.1.2. Protocols and Layers
      3. 5.1.3. Ports, Services, and Daemons
      4. 5.1.4. Administrative Commands
      5. 5.1.5. A Sample TCP/IP Conversation
      6. 5.1.6. Names and Addresses
      7. 5.1.7. Subnets and Supernets
        1. 5.1.7.1. Introducing IPv6 host addresses
      8. 5.1.8. Connecting Network Segments
    2. 5.2. Adding a New Network Host
      1. 5.2.1. Configuring the Network Interface with ifconfig
        1. 5.2.1.1. Ethernet interface names
        2. 5.2.1.2. Other uses of ifconfig
        3. 5.2.1.3. ifconfig on Solaris systems
        4. 5.2.1.4. Interface configuration at boot time
      2. 5.2.2. Dynamic IP Address Assignment with DHCP
        1. 5.2.2.1. AIX
        2. 5.2.2.2. FreeBSD
        3. 5.2.2.3. HP-UX
        4. 5.2.2.4. Linux
        5. 5.2.2.5. Solaris
        6. 5.2.2.6. Tru64
      3. 5.2.3. Name Resolution Options
        1. 5.2.3.1. The /etc/hosts file
        2. 5.2.3.2. Configuring a DNS client
        3. 5.2.3.3. The name service switch file
      4. 5.2.4. Routing Options
        1. 5.2.4.1. AIX
        2. 5.2.4.2. FreeBSD
        3. 5.2.4.3. HP-UX
        4. 5.2.4.4. Linux
        5. 5.2.4.5. Solaris
        6. 5.2.4.6. Tru64
    3. 5.3. Network Testing and Troubleshooting
  9. 6. Managing Users and Groups
    1. 6.1. Unix Users and Groups
      1. 6.1.1. The Password File, /etc/passwd
      2. 6.1.2. The Shadow Password File, /etc/shadow
        1. 6.1.2.1. The FreeBSD /etc/ master.passwd file
        2. 6.1.2.2. The protected password database under HP-UX and Tru64
      3. 6.1.3. The Group File, /etc/group
        1. 6.1.3.1. User-private groups
      4. 6.1.4. Dynamic Group Memberships
        1. 6.1.4.1. The Linux group shadow file, /etc/gshadow
        2. 6.1.4.2. The HP-UX /etc/logingroup file
        3. 6.1.4.3. AIX group sets
      5. 6.1.5. User Account Database File Protections
      6. 6.1.6. Standard Unix Users and Groups
      7. 6.1.7. Using Groups Effectively
    2. 6.2. Managing User Accounts
      1. 6.2.1. Adding a New User Account
      2. 6.2.2. Defining a New User Account
      3. 6.2.3. Assigning a Shell
        1. 6.2.3.1. Captive accounts
      4. 6.2.4. Assigning a Password
      5. 6.2.5. Creating a Home Directory
      6. 6.2.6. User Environment Initialization Files
        1. 6.2.6.1. Sample login initialization files
        2. 6.2.6.2. Sample shell initialization files
        3. 6.2.6.3. The AIX /etc/security/environ file
        4. 6.2.6.4. Desktop environment initialization files
        5. 6.2.6.5. Systemwide initialization files
      7. 6.2.7. Setting File Ownership
      8. 6.2.8. Adding the User to Other System Facilities
      9. 6.2.9. Specifying Other User Account Controls
        1. 6.2.9.1. AIX user account controls
        2. 6.2.9.2. FreeBSD user account controls
        3. 6.2.9.3. Linux user account controls
        4. 6.2.9.4. Solaris login process settings
        5. 6.2.9.5. Specifying login time restrictions under HP-UX and Tru64
      10. 6.2.10. Testing the New Account
        1. 6.2.10.1. Using su to re-create a user's environment
      11. 6.2.11. Disabling and Removing User Accounts
        1. 6.2.11.1. Removing a user account
    3. 6.3. Administrative Tools for Managing User Accounts
      1. 6.3.1. Command-Line Utilities
        1. 6.3.1.1. The useradd command: HP-UX, Linux, Solaris, and Tru64
          1. 6.3.1.1.1. Setting useradd's defaults
          2. 6.3.1.1.2. Modifying accounts with usermod
          3. 6.3.1.1.3. Removing accounts with userdel
        2. 6.3.1.2. Commands for managing groups
        3. 6.3.1.3. The Linux gpasswd command
        4. 6.3.1.4. The FreeBSD user account utilities
        5. 6.3.1.5. The AIX user account utilities
          1. 6.3.1.5.1. Removing user accounts
          2. 6.3.1.5.2. Utilities for managing groups
      2. 6.3.2. Graphical User Account Managers
        1. 6.3.2.1. Managing users with SMIT under AIX
        2. 6.3.2.2. Managing users with SAM under HP-UX
          1. 6.3.2.2.1. HP-UX account and file exclusion
        3. 6.3.2.3. Linux graphical user managers
          1. 6.3.2.3.1. Managing users with Linuxconf
          2. 6.3.2.3.2. The KDE User Manager
          3. 6.3.2.3.3. The Red Hat User Manager
        4. 6.3.2.4. Solaris GUI tools for managing user accounts
        5. 6.3.2.5. Managing user accounts with dxaccounts under Tru64
      3. 6.3.3. Automation You Have to Do Yourself
    4. 6.4. Administering User Passwords
      1. 6.4.1. Selecting Effective Passwords
        1. 6.4.1.1. Forcing a password change
        2. 6.4.1.2. Managing dozens of passwords
      2. 6.4.2. Educating Users About Selecting Effective Passwords
        1. 6.4.2.1. Password advice in the age of the Internet
      3. 6.4.3. Setting Password Restrictions
        1. 6.4.3.1. Password aging
        2. 6.4.3.2. Password triviality checks
          1. 6.4.3.2.1. Tru64
          2. 6.4.3.2.2. AIX
          3. 6.4.3.2.3. Linux
          4. 6.4.3.2.4. FreeBSD
        3. 6.4.3.3. The freely available npasswd command
        4. 6.4.3.4. Password history lists
        5. 6.4.3.5. Password settings default values
      4. 6.4.4. Testing User Passwords for Weaknesses
        1. 6.4.4.1. John the Ripper
        2. 6.4.4.2. Using Crack to find poorly chosen passwords
        3. 6.4.4.3. How well do they do?
    5. 6.5. User Authentication with PAM
      1. 6.5.1. PAM Defaults
      2. 6.5.2. PAM Modules Under Linux
        1. 6.5.2.1. Checking passwords at selection time
        2. 6.5.2.2. Specifying allowed times and locations for system access
        3. 6.5.2.3. MD5 passwords
      3. 6.5.3. PAM Modules Provided by Other Unix Systems
      4. 6.5.4. More Complex PAM Configuration
    6. 6.6. LDAP: Using a Directory Service for User Authentication
      1. 6.6.1. About LDAP
      2. 6.6.2. LDAP Directories
        1. 6.6.2.1. About schemas
      3. 6.6.3. Installing and Configuring OpenLDAP: An Overview
        1. 6.6.3.1. More about LDAP searching
      4. 6.6.4. Using OpenLDAP for User Authentication
        1. 6.6.4.1. Select an appropriate schema
        2. 6.6.4.2. Convert existing user account data
        3. 6.6.4.3. Specify the name service search order
          1. 6.6.4.3.1. Configure PAM to use OpenLDAP
        4. 6.6.4.4. Configure directory access control
        5. 6.6.4.5. OpenLDAP access control
      5. 6.6.5. Securing OpenLDAP Authentication
      6. 6.6.6. Wither NIS?
  10. 7. Security
    1. 7.1. Prelude: What's Wrong with This Picture?
    2. 7.2. Thinking About Security
      1. 7.2.1. Security Policies and Plans
        1. 7.2.1.1. Security policies
        2. 7.2.1.2. Security plans
      2. 7.2.2. Unix Lines of Defense
        1. 7.2.2.1. Physical security
        2. 7.2.2.2. Firewalls and network filters
        3. 7.2.2.3. Passwords
        4. 7.2.2.4. Encrypting data
        5. 7.2.2.5. Backups
      3. 7.2.3. Version-Specific Security Facilities
    3. 7.3. User Authentication Revisited
      1. 7.3.1. Smart Cards
      2. 7.3.2. One-Time Passwords
      3. 7.3.3. Solaris and HP-UX Dialup Passwords
      4. 7.3.4. AIX Secondary Authentication Programs
      5. 7.3.5. Better Network Authentication: Kerberos
    4. 7.4. Protecting Files and the Filesystem
      1. 7.4.1. Search Path Issues
      2. 7.4.2. Small Mistakes Compound into Large Holes
      3. 7.4.3. The setuid and setgid Access Modes
        1. 7.4.3.1. Writing setuid/setgid programs
      4. 7.4.4. Access Control Lists
        1. 7.4.4.1. Introducing access control lists
        2. 7.4.4.2. Manipulating AIX ACLs
        3. 7.4.4.3. HP-UX ACLs
        4. 7.4.4.4. POSIX access control lists: Linux, Solaris, and Tru64
      5. 7.4.5. Encryption
        1. 7.4.5.1. The crypt command
        2. 7.4.5.2. Public key encryption: PGP and GnuPG
        3. 7.4.5.3. Selecting passphrases
    5. 7.5. Role-Based Access Control
      1. 7.5.1. AIX Roles
      2. 7.5.2. Solaris Role-Based Access Control
    6. 7.6. Network Security
      1. 7.6.1. Establishing Trust
        1. 7.6.1.1. The implications of trust
      2. 7.6.2. The Secure Shell
      3. 7.6.3. Securing Network Daemons
        1. 7.6.3.1. TCP Wrappers: Better inetd access control and logging
        2. 7.6.3.2. xinetd
        3. 7.6.3.3. Disable what you don't need
      4. 7.6.4. Port Scanning
      5. 7.6.5. Defending the Border: Firewalls and Packet Filtering
    7. 7.7. Hardening Unix Systems
      1. 7.7.1. Plan Before Acting
      2. 7.7.2. Secure the Physical System
      3. 7.7.3. Install the Operating System
      4. 7.7.4. Secure Local Filesystems
      5. 7.7.5. Securing Services
      6. 7.7.6. Restrict root Access
      7. 7.7.7. Configure User Authentication and Account Defaults
      8. 7.7.8. Set up Remote Authentication
      9. 7.7.9. Install and Configure Ongoing Monitoring
      10. 7.7.10. Backup
      11. 7.7.11. Other Activities
    8. 7.8. Detecting Problems
      1. 7.8.1. Password File Issues
      2. 7.8.2. Monitoring the Filesystem
        1. 7.8.2.1. Checking file ownership and protection
        2. 7.8.2.2. Looking for setuid and setgid files
        3. 7.8.2.3. Checking modification dates and inode numbers
        4. 7.8.2.4. Computing checksums
        5. 7.8.2.5. Run fsck occasionally
      3. 7.8.3. Automating Security Monitoring
        1. 7.8.3.1. Trusted computing base checking
        2. 7.8.3.2. System integrity checking with Tripwire
        3. 7.8.3.3. Vulnerability scanning
          1. 7.8.3.3.1. General system security monitoring via COPS
        4. 7.8.3.4. Scanning for network vulnerabilities
      4. 7.8.4. What to Do if You Find a Problem
      5. 7.8.5. Investigating System Activity
        1. 7.8.5.1. Monitoring unsuccessful login attempts
        2. 7.8.5.2. su log files
        3. 7.8.5.3. History on the root account
        4. 7.8.5.4. Tracking user activities
        5. 7.8.5.5. Event-auditing systems
      6. 7.8.6. Intruders Can Read
  11. 8. Managing Network Services
    1. 8.1. Managing DNS Servers
      1. 8.1.1. Zones
      2. 8.1.2. Name Server Types
      3. 8.1.3. About BIND
      4. 8.1.4. Configuring named
        1. 8.1.4.1. The master configuration file: named.conf
        2. 8.1.4.2. The root hints file
        3. 8.1.4.3. Zone files
          1. 8.1.4.3.1. Reverse zone files and PTR records
          2. 8.1.4.3.2. IPv6 zone file resource records
        4. 8.1.4.4. Common mistakes to avoid
        5. 8.1.4.5. Using subdomains
          1. 8.1.4.5.1. Reverse zone files with arbitrary subnetting
        6. 8.1.4.6. Forwarders
        7. 8.1.4.7. Slave name server notifications
        8. 8.1.4.8. Dynamic updates
        9. 8.1.4.9. Incremental zone transfers
        10. 8.1.4.10. Access control
        11. 8.1.4.11. Securing DNS communications
          1. 8.1.4.11.1. BIND 9 security futures
        12. 8.1.4.12. BIND 9 views
        13. 8.1.4.13. Securing the named process
        14. 8.1.4.14. Configuring logging
      5. 8.1.5. Name Server Maintenance and Troubleshooting
        1. 8.1.5.1. Controlling the named server process
        2. 8.1.5.2. Using the nslookup and dig utilities
    2. 8.2. Routing Daemons
      1. 8.2.1. Routing Concepts and Protocols
        1. 8.2.1.1. Configuring routed
        2. 8.2.1.2. Configuring gated
          1. 8.2.1.2.1. Vendor specifics
    3. 8.3. Configuring a DHCP Server
      1. 8.3.1. AIX
      2. 8.3.2. ISC DHCP: FreeBSD and Linux
      3. 8.3.3. HP-UX
      4. 8.3.4. Solaris
      5. 8.3.5. Tru64
    4. 8.4. Time Synchronization with NTP
      1. 8.4.1. How NTP Works
      2. 8.4.2. Setting Up NTP
        1. 8.4.2.1. Enabling ntpd under FreeBSD
      3. 8.4.3. A Simple Authentic Time Option
    5. 8.5. Managing Network Daemons under AIX
    6. 8.6. Monitoring the Network
      1. 8.6.1. Standard Networking Utilities
      2. 8.6.2. Packet Sniffers
        1. 8.6.2.1. The Solaris snoop command
        2. 8.6.2.2. Packet collecting under AIX and HP-UX
      3. 8.6.3. The Simple Network Management Protocol
        1. 8.6.3.1. SNMP concepts and constructs
        2. 8.6.3.2. SNMP implementations
        3. 8.6.3.3. Net-SNMP client utilities
          1. 8.6.3.3.1. Generating traps
          2. 8.6.3.3.2. AIX and Tru64 clients
        4. 8.6.3.4. Configuring SNMP agents
          1. 8.6.3.4.1. Net-SNMP snmpd daemon (FreeBSD and Linux)
          2. 8.6.3.4.2. Net-SNMP access control
          3. 8.6.3.4.3. The Net-SNMP trap daemon
          4. 8.6.3.4.4. Configuring SNMP nder HP-UX
          5. 8.6.3.4.5. Configuring SNMP under Solaris
          6. 8.6.3.4.6. The AIX snmpd daemon
          7. 8.6.3.4.7. The Tru64 snmpd daemon
        5. 8.6.3.5. SNMP and security
      4. 8.6.4. Network Management Packages
        1. 8.6.4.1. Proactive network monitoring
          1. 8.6.4.1.1. NetSaint
        2. 8.6.4.2. Identifying trends over time
          1. 8.6.4.2.1. MRTG and RRDtool
          2. 8.6.4.2.2. Using Cricket to feed RRDtool
  12. 9. Electronic Mail
    1. 9.1. About Electronic Mail
      1. 9.1.1. Mail Addressing and Delivery
        1. 9.1.1.1. DNS MX records
        2. 9.1.1.2. Mail aliases
        3. 9.1.1.3. Mail forwarding
        4. 9.1.1.4. Putting it all together
      2. 9.1.2. Electronic Mail Policies
    2. 9.2. Configuring User Mail Programs
      1. 9.2.1. Automated Email Message Encryption
    3. 9.3. Configuring Access Agents
      1. 9.3.1. Setting Up User Agents to Use POP and IMAP
    4. 9.4. Configuring the Transport Agent
      1. 9.4.1. sendmail
        1. 9.4.1.1. Configuring sendmail
        2. 9.4.1.2. Getting started: A sample mail client configuration
        3. 9.4.1.3. Building sendmail.cf
        4. 9.4.1.4. Configuring the mail hub
        5. 9.4.1.5. Selecting mailers
          1. 9.4.1.5.1. More about pipes to files and programs
        6. 9.4.1.6. Some client and mail hub variations
          1. 9.4.1.6.1. An isolated internal network
          2. 9.4.1.6.2. A null client
          3. 9.4.1.6.3. Mailer-specific and other local relays
        7. 9.4.1.7. More addressing options
          1. 9.4.1.7.1. Sender aliasing
          2. 9.4.1.7.2. Using LDAP for incoming mail addresses
          3. 9.4.1.7.3. The redirect feature
        8. 9.4.1.8. Virtual hosting
        9. 9.4.1.9. The services switch file
        10. 9.4.1.10. Spam suppression
          1. 9.4.1.10.1. Message relaying
        11. 9.4.1.11. Public blacklists and the access database
        12. 9.4.1.12. sendmail security
          1. 9.4.1.12.1. The sendmail default user
          2. 9.4.1.12.2. Privacy options
          3. 9.4.1.12.3. SASL authentication
          4. 9.4.1.12.4. Reducing the sendmail daemon's privileges
        13. 9.4.1.13. Monitoring ongoing operation
        14. 9.4.1.14. Performance
        15. 9.4.1.15. Debugging techniques
        16. 9.4.1.16. Macro summary
      2. 9.4.2. Postfix
        1. 9.4.2.1. Installing Postfix
        2. 9.4.2.2. Configuring Postfix
          1. 9.4.2.2.1. Notifying the daemon
          2. 9.4.2.2.2. Client systems
          3. 9.4.2.2.3. The mail hub
          4. 9.4.2.2.4. The local delivery agent
          5. 9.4.2.2.5. Systems with intermittent Internet connections
          6. 9.4.2.2.6. Address transformations
          7. 9.4.2.2.7. Virtual domains
          8. 9.4.2.2.8. LDAP lookups
        3. 9.4.2.3. Access control and spam suppression
        4. 9.4.2.4. Postfix security
        5. 9.4.2.5. Monitoring and performance
        6. 9.4.2.6. Debugging
    5. 9.5. Retrieving Mail Messages
    6. 9.6. Mail Filtering with procmail
      1. 9.6.1. Configuring procmail
        1. 9.6.1.1. Other procmail disposition options
        2. 9.6.1.2. Using procmail to discard spam
        3. 9.6.1.3. Using procmail for security scanning
        4. 9.6.1.4. Debugging procmail
        5. 9.6.1.5. Additional information
    7. 9.7. A Few Final Tools
  13. 10. Filesystems and Disks
    1. 10.1. Filesystem Types
      1. 10.1.1. About Unix Filesystems: Moments from History
        1. 10.1.1.1. Journaled filesystems
        2. 10.1.1.2. BSD soft updates
      2. 10.1.2. Default Local Filesystems
    2. 10.2. Managing Filesystems
      1. 10.2.1. Mounting and Dismounting Filesystems
      2. 10.2.2. Disk Special File Naming Conventions
      3. 10.2.3. The mount and umount Commands
      4. 10.2.4. Figuring Out Who's Using a File
      5. 10.2.5. The Filesystem Configuration File
        1. 10.2.5.1. Solaris: /etc/vfstab
        2. 10.2.5.2. AIX: /etc/filesystems and /etc/swapspaces
      6. 10.2.6. Automatic Filesystem Mounting
      7. 10.2.7. Using fsck to Validate a Filesystem
        1. 10.2.7.1. After fsck
    3. 10.3. From Disks to Filesystems
      1. 10.3.1. Defining Disk Partitions
      2. 10.3.2. Adding Disks
        1. 10.3.2.1. Preparing and connecting the disk
        2. 10.3.2.2. Making special files
        3. 10.3.2.3. FreeBSD
        4. 10.3.2.4. Linux
          1. 10.3.2.4.1. The Reiser filesystem
        5. 10.3.2.5. Solaris
        6. 10.3.2.6. AIX, HP-UX, and Tru64
        7. 10.3.2.7. Remaking an existing filesystem
      3. 10.3.3. Logical Volume Managers
        1. 10.3.3.1. Disks, volume groups, and logical volumes
        2. 10.3.3.2. Disk striping
        3. 10.3.3.3. Disk mirroring and RAID
        4. 10.3.3.4. AIX
          1. 10.3.3.4.1. Replacing a failed disk
          2. 10.3.3.4.2. Getting information from the LVM
          3. 10.3.3.4.3. Disk striping and disk mirroring
        5. 10.3.3.5. HP-UX
          1. 10.3.3.5.1. Displaying LVM information
          2. 10.3.3.5.2. Disk striping and mirroring
        6. 10.3.3.6. Tru64
          1. 10.3.3.6.1. AdvFS
          2. 10.3.3.6.2. LSM
        7. 10.3.3.7. Solaris
        8. 10.3.3.8. Linux
        9. 10.3.3.9. FreeBSD
      4. 10.3.4. Floppy Disks
        1. 10.3.4.1. Floppy disk special files
        2. 10.3.4.2. Using DOS disks on Unix systems
        3. 10.3.4.3. The Mtools utilities
        4. 10.3.4.4. Stupid DOS partition tricks
      5. 10.3.5. CD-ROM Devices
        1. 10.3.5.1. CD-ROM drives under AIX
        2. 10.3.5.2. The Solaris media-handling daemon
    4. 10.4. Sharing Filesystems
      1. 10.4.1. NFS
        1. 10.4.1.1. Mounting remote directories
        2. 10.4.1.2. Exporting local filesystems
          1. 10.4.1.2.1. Exporting directories under Linux
          2. 10.4.1.2.2. Exporting filesystems under Solaris
      2. 10.4.2. The NFS Automounter
      3. 10.4.3. Samba
        1. 10.4.3.1. Samba authentication
          1. 10.4.3.1.1. Mounting Windows filesystems under Linux and FreeBSD
  14. 11. Backup and Restore
    1. 11.1. Planning for Disasters and Everyday Needs
      1. 11.1.1. Backup Capacity Planning
      2. 11.1.2. Backup Strategies
        1. 11.1.2.1. Unattended backups
        2. 11.1.2.2. Data verification
        3. 11.1.2.3. Storing backup media
        4. 11.1.2.4. Off-site and long-term storage
    2. 11.2. Backup Media
      1. 11.2.1. Magnetic tape
      2. 11.2.2. Magneto-optical disks
      3. 11.2.3. CDs and DVDs
      4. 11.2.4. Removable disks: Zip and Jaz
      5. 11.2.5. Floppy disks
      6. 11.2.6. Hard disks
      7. 11.2.7. Stackers, jukeboxes, and similar devices
      8. 11.2.8. Media Lifetime
      9. 11.2.9. Comparing Backup Media
      10. 11.2.10. Tape Special Files
        1. 11.2.10.1. AIX tape device attributes
    3. 11.3. Backing Up Files and Filesystems
      1. 11.3.1. When tar or cpio Is Enough
        1. 11.3.1.1. The tar command
          1. 11.3.1.1.1. Solaris enhancements to the tar command
          2. 11.3.1.1.2. The GNU tar utility: Linux and FreeBSD
        2. 11.3.1.2. The cpio command
        3. 11.3.1.3. Incremental backups with tar and cpio
        4. 11.3.1.4. pax: Detente between tar and cpio
      2. 11.3.2. Backing Up Individual Filesystems with dump
        1. 11.3.2.1. The HP-UX fbackup utility
      3. 11.3.3. Related Tape Utilities
        1. 11.3.3.1. Data copying and conversion with dd
        2. 11.3.3.2. Tape manipulation with mt
    4. 11.4. Restoring Files from Backups
      1. 11.4.1. Restores from tar and cpio Archives
      2. 11.4.2. Restoring from dump Archives
        1. 11.4.2.1. The restore utility's interactive mode
        2. 11.4.2.2. The HP-UX frecover utility
      3. 11.4.3. Moving Data Between Systems
    5. 11.5. Making Table of Contents Files
    6. 11.6. Network Backup Systems
      1. 11.6.1. Remote Backups and Restores
      2. 11.6.2. The Amanda Facility
        1. 11.6.2.1. About Amanda
        2. 11.6.2.2. How Amanda works
        3. 11.6.2.3. Doing the math
        4. 11.6.2.4. Configuring Amanda
          1. 11.6.2.4.1. Setting up an Amanda client
          2. 11.6.2.4.2. Selecting an Amanda server
          3. 11.6.2.4.3. Setting up the Amanda server
        5. 11.6.2.5. Amanda reports and logs
        6. 11.6.2.6. Restoring files from an Amanda backup
      3. 11.6.3. Commercial Backup Packages
    7. 11.7. Backing Up and Restoring the System Filesystems
      1. 11.7.1. AIX: mksysb and savevg
        1. 11.7.1.1. Restoring individual files from a mksysb tape
        2. 11.7.1.2. Saving and restoring AIX user volume groups
      2. 11.7.2. FreeBSD
      3. 11.7.3. HP-UX: make_recovery
      4. 11.7.4. Linux
      5. 11.7.5. Solaris
      6. 11.7.6. Tru64: btcreate
  15. 12. Serial Lines and Devices
    1. 12.1. About Serial Lines
      1. 12.1.1. Device Files for Serial Lines
      2. 12.1.2. The tty Command
    2. 12.2. Specifying Terminal Characteristics
      1. 12.2.1. termcap and terminfo
        1. 12.2.1.1. termcap entries
        2. 12.2.1.2. terminfo entries
        3. 12.2.1.3. Modifying entries
      2. 12.2.2. The tset Command
      3. 12.2.3. The stty Command
    3. 12.3. Adding a New Serial Device
      1. 12.3.1. Making the Physical Connection
        1. 12.3.1.1. Hardware handshaking and flow control
      2. 12.3.2. Terminal Line Configuration
        1. 12.3.2.1. FreeBSD configuration files
          1. 12.3.2.1.1. Secure terminal lines
          2. 12.3.2.1.2. The /etc/gettytab file
        2. 12.3.2.2. System V configuration files
          1. 12.3.2.2.1. The /etc/gettydefs file
          2. 12.3.2.2.2. Setting terminal line types under HP-UX
          3. 12.3.2.2.3. The Linux mgetty configuration files
          4. 12.3.2.2.4. Configuring terminal lines under AIX
      3. 12.3.3. Starting the Terminal Line
      4. 12.3.4. Terminal Handling Under Solaris
        1. 12.3.4.1. Structure of the Service Access Facility
        2. 12.3.4.2. Port monitors
        3. 12.3.4.3. Creating port monitors with pmadm
        4. 12.3.4.4. The ttydefs file
        5. 12.3.4.5. Using admintool to configure serial lines
    4. 12.4. Troubleshooting Terminal Problems
    5. 12.5. Controlling Access to Serial Lines
    6. 12.6. HP-UX and Tru64 Terminal Line Attributes
    7. 12.7. The HylaFAX Fax Service
      1. 12.7.1. Sending Faxes
      2. 12.7.2. Managing Faxes
      3. 12.7.3. HylaFAX Configuration Files
      4. 12.7.4. Controlling Access to HylaFAX
    8. 12.8. USB Devices
      1. 12.8.1. FreeBSD USB Support
      2. 12.8.2. Linux USB Support
      3. 12.8.3. Solaris USB Support
  16. 13. Printers and the Spooling Subsystem
    1. 13.1. The BSD Spooling Facility
      1. 13.1.1. User Commands
      2. 13.1.2. Manipulating Print Jobs
      3. 13.1.3. Managing Queues
      4. 13.1.4. The Spooling Daemon
      5. 13.1.5. Configuring Queues: The printcap File
        1. 13.1.5.1. Spooling directories
        2. 13.1.5.2. Restricting printer access
        3. 13.1.5.3. A filter program
      6. 13.1.6. Remote Printing
      7. 13.1.7. Adding a New Printer
      8. 13.1.8. LPD Variations
        1. 13.1.8.1. FreeBSD
        2. 13.1.8.2. Tru64
        3. 13.1.8.3. Linux
    2. 13.2. System V Printing
      1. 13.2.1. User Commands
        1. 13.2.1.1. The system default printer
        2. 13.2.1.2. Device classes
        3. 13.2.1.3. Getting status information
      2. 13.2.2. Manipulating Individual Print Requests
      3. 13.2.3. Managing Queues
      4. 13.2.4. Starting and Stopping the Print Service
      5. 13.2.5. Managing Printers and Destination Classes
        1. 13.2.5.1. Defining or modifying a printer
        2. 13.2.5.2. Deleting printers
        3. 13.2.5.3. Managing device classes
        4. 13.2.5.4. In-queue priorities
          1. 13.2.5.4.1. Priorities under HP-UX
          2. 13.2.5.4.2. Priorities under Solaris
        5. 13.2.5.5. Printer interface programs
      6. 13.2.6. Remote Printing
        1. 13.2.6.1. HP-UX remote printing
        2. 13.2.6.2. Solaris remote printing
      7. 13.2.7. Adding a New Printer
      8. 13.2.8. System V Spooling System Variations
        1. 13.2.8.1. Solaris: Additional configuration files
        2. 13.2.8.2. Solaris: Controlling printer access
        3. 13.2.8.3. Solaris: Forms and filters
        4. 13.2.8.4. HP-UX: Altering pending print jobs
        5. 13.2.8.5. HP-UX: Analyzing printer usage
        6. 13.2.8.6. Graphical administration tools
    3. 13.3. The AIX Spooling Facility
      1. 13.3.1. Manipulating Print Jobs
        1. 13.3.1.1. Job numbers
        2. 13.3.1.2. The default print queue under AIX
        3. 13.3.1.3. Displaying job and queue status information
        4. 13.3.1.4. Deleting print jobs
        5. 13.3.1.5. Moving jobs between queues
        6. 13.3.1.6. Suspending print jobs
        7. 13.3.1.7. Print job priorities
      2. 13.3.2. Managing Queues and Devices
      3. 13.3.3. The qdaemon Server Process
      4. 13.3.4. Configuring Queues: The /etc/qconfig File
        1. 13.3.4.1. Creating and modifying print queues
      5. 13.3.5. Remote Printing
      6. 13.3.6. Adding a New Printer
      7. 13.3.7. Using the Queueing System as a Batch Service
    4. 13.4. Troubleshooting Printers
    5. 13.5. Sharing Printers with Windows Systems
      1. 13.5.1. Printing to a Windows Printer from a Unix System
      2. 13.5.2. Accepting Incoming Windows Print Jobs via Samba
        1. 13.5.2.1. Creating queues for the Samba printers under Windows
    6. 13.6. LPRng
      1. 13.6.1. Enhancements to the lpc Command
        1. 13.6.1.1. Print classes and job priorities
      2. 13.6.2. Configuring LPRng
        1. 13.6.2.1. Separate client and server entries
        2. 13.6.2.2. Using a common printcap file for many hosts
        3. 13.6.2.3. Special-purpose queues
          1. 13.6.2.3.1. Bounce queues
          2. 13.6.2.3.2. Printer pools
        4. 13.6.2.4. Filters
        5. 13.6.2.5. Other printcap entry options
      3. 13.6.3. Global Print Spooler Settings
      4. 13.6.4. Printer Access Control
        1. 13.6.4.1. Other LPRng capabilities
    7. 13.7. CUPS
      1. 13.7.1. Printer Administration
        1. 13.7.1.1. CUPS configuration files
        2. 13.7.1.2. Access control and authentication
    8. 13.8. Font Management Under X
      1. 13.8.1. Font Basics
      2. 13.8.2. Managing Fonts under X
      3. 13.8.3. Adding Fonts to X
        1. 13.8.3.1. Printing support
      4. 13.8.4. Handling TrueType Fonts
  17. 14. Automating Administrative Tasks
    1. 14.1. Creating Effective Shell Scripts
      1. 14.1.1. Password File Security
      2. 14.1.2. Monitoring Disk Usage
      3. 14.1.3. Root Filesystem Backups and System Snapshots
      4. 14.1.4. A Few More Tricks
      5. 14.1.5. Testing and Debugging Scripts
    2. 14.2. Perl: An Alternate Administrative Language
      1. 14.2.1. A Quick Introduction
      2. 14.2.2. A Walking Tour of Perl
      3. 14.2.3. Perl Reports
      4. 14.2.4. Graphical Interfaces with Perl
    3. 14.3. Expect: Automating Interactive Programs
      1. 14.3.1. A First Example: Testing User Environments
      2. 14.3.2. A Timed Prompt
      3. 14.3.3. Repeating a Command Over and Over
      4. 14.3.4. Automating Configuration File Distribution
      5. 14.3.5. Keep Trying Until It Works
    4. 14.4. When Only C Will Do
    5. 14.5. Automating Complex Configuration Tasks with Cfengine
      1. 14.5.1. About Cfengine
      2. 14.5.2. Actions
      3. 14.5.3. Classes
      4. 14.5.4. Configuring cfservd
      5. 14.5.5. Running Cfengine
    6. 14.6. Stem: Simplified Creation of Client-Server Applications
    7. 14.7. Adding Local man Pages
  18. 15. Managing System Resources
    1. 15.1. Thinking About System Performance
      1. 15.1.1. The Tuning Process
        1. 15.1.1.1. Define the problem in as much detail as you can.
        2. 15.1.1.2. Determine what's causing the problem.
        3. 15.1.1.3. Formulate explicit performance improvement goals.
        4. 15.1.1.4. Design and implement modifications to the system and applications to achieve those goals.
        5. 15.1.1.5. Monitor the system to determine how well the changes worked.
        6. 15.1.1.6. Return to the first step and begin again.
      2. 15.1.2. Some Tuning Caveats
    2. 15.2. Monitoring and Controlling Processes
      1. 15.2.1. The ps Command
      2. 15.2.2. Other Process Listing Utilities
      3. 15.2.3. The /proc Filesystem
      4. 15.2.4. Kernel Idle Processes
      5. 15.2.5. Process Resource Limits
      6. 15.2.6. Process Resource Limits Under AIX
      7. 15.2.7. Signaling and Killing Processes
        1. 15.2.7.1. Killing multiple processes with killall
        2. 15.2.7.2. Processes that won't die
        3. 15.2.7.3. Pausing and restarting processes
    3. 15.3. Managing CPU Resources
      1. 15.3.1. Nice Numbers and Process Priorities
      2. 15.3.2. Monitoring CPU Usage
        1. 15.3.2.1. Recognizing a CPU shortage
      3. 15.3.3. Changing a Process's Nice Number
        1. 15.3.3.1. renice under AIX, HP-UX, and Tru64
        2. 15.3.3.2. Changing process priorities under Solaris
        3. 15.3.3.3. Setting a user's default nice numbers under Tru64
      4. 15.3.4. Configuring the System Scheduler
        1. 15.3.4.1. The AIX scheduler
        2. 15.3.4.2. The Solaris scheduler
        3. 15.3.4.3. Tru64
      5. 15.3.5. Unix Batch-Processing Facilities
    4. 15.4. Managing Memory
      1. 15.4.1. Monitoring Memory Use and Paging Activity
        1. 15.4.1.1. Determining the amount of physical memory
        2. 15.4.1.2. Monitoring memory use
        3. 15.4.1.3. Recognizing memory problems
        4. 15.4.1.4. The filesystem cache
      2. 15.4.2. Configuring the Virtual Memory Manager
        1. 15.4.2.1. AIX
        2. 15.4.2.2. FreeBSD
        3. 15.4.2.3. HP-UX
        4. 15.4.2.4. Linux
        5. 15.4.2.5. Solaris
        6. 15.4.2.6. Tru64
      3. 15.4.3. Managing Paging Space
        1. 15.4.3.1. How much paging space?
        2. 15.4.3.2. Listing paging areas
        3. 15.4.3.3. Activating paging areas
        4. 15.4.3.4. Creating new paging areas
        5. 15.4.3.5. Filesystem paging
        6. 15.4.3.6. Linux and HP-UX paging space priorities
        7. 15.4.3.7. Removing paging areas
    5. 15.5. Disk I/O Performance Issues
      1. 15.5.1. Monitoring Disk I/O Performance
      2. 15.5.2. Getting the Most From the Disk Subsystem
        1. 15.5.2.1. Disk hardware
        2. 15.5.2.2. Distributing the data among the available disks
        3. 15.5.2.3. Data placement on disk
      3. 15.5.3. Tuning Disk I/O Performance
        1. 15.5.3.1. Sequential read-ahead
          1. 15.5.3.1.1. AIX
          2. 15.5.3.1.2. Linux
        2. 15.5.3.2. Disk I/O pacing
    6. 15.6. Monitoring and Managing Disk Space Usage
      1. 15.6.1. Where Did It All Go?
      2. 15.6.2. Handling Disk Shortage Problems
        1. 15.6.2.1. Using find to locate or remove wasted space
        2. 15.6.2.2. Limiting the growth of log files
      3. 15.6.3. Controlling Disk Usage with Disk Quotas
        1. 15.6.3.1. Preparing filesystems for quotas
        2. 15.6.3.2. Setting users' quota limits
        3. 15.6.3.3. Setting the soft limit expiration period
        4. 15.6.3.4. Enabling quota checking
        5. 15.6.3.5. Quota consistency checking
        6. 15.6.3.6. Disk quota reports
        7. 15.6.3.7. Group-based quotas (AIX, FreeBSD, Tru64 and Linux)
    7. 15.7. Network Performance
      1. 15.7.1. Basic Network Performance Monitoring
      2. 15.7.2. General TCP/IP Network Performance Principles
        1. 15.7.2.1. Two TCP parameters
      3. 15.7.3. DNS Performance
      4. 15.7.4. NFS Performance
        1. 15.7.4.1. NFS Version 3 performance improvements
        2. 15.7.4.2. NFS performance principles
  19. 16. Configuring and Building Kernels
    1. 16.1. FreeBSD and Tru64
      1. 16.1.1. Changing FreeBSD Kernel Parameters
      2. 16.1.2. FreeBSD Kernel Modules
      3. 16.1.3. Installing the FreeBSD Boot Loader
      4. 16.1.4. Tru64 Dynamic Kernel Configuration
    2. 16.2. HP-UX
    3. 16.3. Linux
      1. 16.3.1. Using lilo
        1. 16.3.1.1. Using a graphical message screen
        2. 16.3.1.2. lilo and Windows
        3. 16.3.1.3. More complex booting scenarios
        4. 16.3.1.4. lilo's -r option
        5. 16.3.1.5. The boot.message file
      2. 16.3.2. The Grub Boot Loader
      3. 16.3.3. Booting a Linux System with syslinux
      4. 16.3.4. Restoring the DOS Master Boot Program
      5. 16.3.5. Booting Alpha Linux Systems
      6. 16.3.6. Linux Loadable Modules
    4. 16.4. Solaris
    5. 16.5. AIX System Parameters
  20. 17. Accounting
    1. 17.1. Standard Accounting Files
    2. 17.2. BSD-Style Accounting: FreeBSD, Linux, and AIX
      1. 17.2.1. Enabling and Disabling Accounting
      2. 17.2.2. Merging Accounting Records into the Summary Files
      3. 17.2.3. After a Crash
      4. 17.2.4. Image-Based Resource Use Reporting: sa
      5. 17.2.5. Connect Time Reporting: ac
    3. 17.3. System V-Style Accounting: AIX, HP-UX, and Solaris
      1. 17.3.1. Setting Up Accounting
      2. 17.3.2. Accounting Reports
      3. 17.3.3. Solaris Project-Based Extended Accounting
      4. 17.3.4. The upacct Package
    4. 17.4. Printing Accounting
      1. 17.4.1. Printer Accounting Under LPRng
  21. 18. The Profession of System Administration
    1. SAGE: The System Administrators Guild
    2. Administrative Virtues
  22. A. Administrative Shell Programming
    1. A.1. Basic Syntax
      1. A.1.1. I/O Redirection
      2. A.1.2. The dot Command
      3. A.1.3. Return Codes and the exit Command
      4. A.1.4. Compound Commands
      5. A.1.5. Command Substitution
      6. A.1.6. Argument Symbols and Other $ Abbreviations
      7. A.1.7. Variable Substitution
        1. A.1.7.1. bash variable substitution extensions
      8. A.1.8. Variable Double Dereferencing
    2. A.2. The if Statement
      1. A.2.1. The test Command (a.k.a. [ )
    3. A.3. Other Control Structures
      1. A.3.1. The while and until Commands
      2. A.3.2. The case Command
      3. A.3.3. The for Command
        1. A.3.3.1. The bash arithmetic for loop
      4. A.3.4. The Null Command
    4. A.4. Getting Input: The read Command
      1. A.4.1. The bash select command
    5. A.5. Other Useful Commands
      1. A.5.1. set
      2. A.5.2. eval
      3. A.5.3. printf
      4. A.5.4. expr
        1. A.5.4.1. bash integer arithmetic
        2. A.5.4.2. bash arrays
    6. A.6. Shell Functions
      1. A.6.1. bash Local Variables
  23. About the Author
  24. Colophon
  25. Copyright