This book, unlike our popular Linux Unleashed, was conceived as a solo effort and as such meant an awful lot of my time was taken away from others. This book took a while to write because it contains a lot of technical information. To my parents and close friends, thanks for understanding why I couldn't visit. In particular, thanks to Yvonne who understood why I had to spend evenings and weekends at the computer, muttering veiled curses about deadlines, Linux, and applications that crashed at the most inopportune times. Of course, I never said anything bad about my editors!
At Sams, those editors were Rosemarie Graham, who drove deadlines, tolerated changes, and generally tried to bear with me as I struggled to submit this material on time. Thanks also to Todd Bumbalough, who rode shotgun over the technical completeness of the material. To the production editors and technical reviewers, thanks are also due. Also at Sams, Grace Buechlein gracefully bore changes to her own schedules in order to fit this book in.
Finally, thanks to Rick McMullin, who graciously allowed me to steal some of his material for the shell programming chapter and some details of the gcc C compiler.
Tim Parker is a well-known author with over 800 feature articles and reviews published in many different magazines. In addition, Dr. Parker has written or contributed to two dozen books. He is currently Technical Editor of SCO World Magazine, Contributing Editor of Canadian Computer Reseller, and a frequent contributor to UNIX Review Magazine. Dr. Parker is president of TPCI, based in Kanata, Ontario. TPCI provides technical writing, training, investigative, and consulting services to many large corporations, military installations, and law enforcement organizations.
When not busy writing books or articles, Dr. Parker can be found outdoors. He is a semi-professional photographer, white-water kayaker, and hiker. He is also a scuba diving instructor and licensed pilot.
UNIX system administration used to be a skill learned by watching others, trying many things on spec, and scouring obscure magazine articles, obtuse man pages, and e-mail from others. In short, system administration was a skill that was learned over the years with no single reference to the role and functions a system administrator plays. UNIX, especially, was a tough system to administer properly because there were many versions of the software, a disparate support base, and few solid working applications. Luckily, time has changed these conditions.
With the popularity of computers in general, system administrators started writing down the details of their tasks. Publishers realized that there was a distinct and eager, albeit small, market for system administration books. The market grew as the number of systems and LANs expanded. The stabilization of the UNIX operating system in two, and now one, major version helped enormously as well.
Linux became a dominant UNIX product about two years ago when it started receiving worldwide acclaim as a reasonably stable PC version of UNIX. As more and more programmers got involved and started producing software for Linux, the attraction of the operating system continued to grow. Soon, PC users who didn't know anything about UNIX at all were running Linux and starting to deal with shells, filesystems, and devices.
After helping to write Linux Unleashed (a great book, definitely worth buying if you haven't already got a copy!), I realized that many users used that book and CD-ROM to get started with Linux, but they needed more advanced material on managing their systems and setting up network systems. That's when the Linux System Administrator's Survival Guide was born. This book expands on the Linux Unleashed material, providing more detail on many aspects of the operating system. Although some overlap exists between Linux Unleashed and this book, it has been minimized as much as possible. Relative newcomers to Linux will still find that that book is very readable, however.
Many Linux books are available, but to date there are no complete books on administering a Linux system. A few books do cover specific aspects of the task, such as networking or device drivers, but none cover the entire gamut. That's the task I set for myself when this book was born: give readers enough information to help them get their Linux systems running smoothly. The next problem was how to condense 20 years of UNIX system administration experience into a single book. It took a while, but I hope I've managed to include enough information on every aspect of system administration to keep you going.
Bear in mind that this book was written for the system administrator, although the material will certainly be applicable (and hopefully interesting) to any user who has mastered the basics of Linux. I cover practically every aspect of system administration in this book. When dealing with subjects, like security, that have entire books written on them, I cover only the basics. Also, I don't include all the details about the more obscure topics that aren't relevant to most readers.
This book should provide you with everything you need, from setting up filesystems to installing servers for popular Internet utilities. The book was not written for the advanced user; it was written for those just starting in system administration. I hope you find a lot of useful information in this book.
A note about the CD-ROM accompanying this book. You probably already have a Linux system up and running. Just in case you don't or you want the latest versions of some of the Linux software, this book comes with the latest Slackware Linux CD-ROM distribution. You don't have to use this version of Linux to use the material covered in these pages. I've tried to make the material in each chapter relevant to as many versions as possible, and I usually give several possible pathnames and (in some cases) filenames when they may differ across versions or distributions. If your Linux system doesn't have a file or package in the location mentioned in this book, search your directory structure for the filenames given and substitute the pathname as necessary.