original in en Egon Willighagen
Got a masters degree in chemistry at the University of Nijmegen, and is doing his PhD research on molecular representation at the same University. Plays basketball and programs Java applications.
This is a review of the book titled "Linux System Administration - A User's Guide" by Marcel Gagné. The book has 532 pages and 26 chapters that cover installation, daemons, run levels, file systems, password policy, kernel building, printing, devices, backups, network administration, secure computing, and more.
To start with the end: it is a good book. About three years ago, I got a book on Linux for my birthday. It was an awful book, but it was in Dutch and it had a Red Hat distribution on compact disc. No more than one month later a bought Chip's (German Magazine) Debian 2.1 Christmas/New Year special, and never looked into that book again. The reason why I tell this is that there are many badly written books on Linux. It seems hard to write in introduction to Linux or Linux administration, that is both easy to read and covers most important subjects. Marcel Gagné has succeeded in writing such a book.
An important aspects of this book is that the author tries to give a general overview. He always mentions different possible alternatives for most administrative tasks: command line tools, and also graphical tools, mostly KDE and Gnome tools. Most subjects are complemented with screenshots, examples and notes. These notes give additional information: either more detailed information, a short summary or definitions of some terminology. For example, the second note (page 4) is an interesting one:
Marcel's Assumption #312: You are not all running Red Hat Linux (or Caldera, or Slackware, and so on).
This citation points out the fact that the book is not build around one specific distribution, which is a very good thing and makes the book suitable for any starting Linux administrator who has not yet made a final decision on the distribution to use.
However, I qualified this book as good (maybe even very good), but not perfect. Some parts are a bit outdated, or a bit incomplete. The book was published last September, but seems written over a year ago (kernel 2.4 was not yet released). I do not think this is the authors fault, but caused by the nature of the Open Source/Linux community: development is going very fast. Probably too fast for publishing cutting-edge paper books. The author also mentions this himself on page seven
Another good point is that even with a three year experience, the book contains very useful tools and tips, that I have not seen before. It shows that the author indeed is a very experienced system administrator. He also writes several columns in journals, like Linux Journal and Sys Admin Magazine. From the former is the Sysadmin's Corner series online.
The first two chapters describe shortly what Linux is and what distributions are. It also compares seven of the larger distributions. The book is hardly 19 pages old, when in Chapter 3 the author already starts giving hands-on material. The chapter deals with getting help and information, and the first page gives you your first assignment: type "man ls". And he continues to write in this style: many examples and ready-to-use command line commands. Much like the way the LinuxFocus articles are written. Information sources that are discussed are manual pages, info pages, HOWTO's, LinuxDoc, user groups, and UseNet. What seems to be missing here, is a short list of (electronic) journals on Linux.
Now that the book has explained what Linux is and how to get (more) information, the next chapter deals with installing Linux. After discussing some hardware considerations, it gives a general overview on how the installation of Linux distribution is done. It ends with describing how to make an emergency disk and how to boot and shutdown the Linux machine. Important tasks for a system administrator.
Chapters 5-8 deal with basic system administration. Topics that are covered include: the command line, piping data from one program to another, file permissions, users and groups, processes finding information with grep, vi and emacs, daemons, run levels, secure passwords, hard disks, file systems and quotas. Basically, all you need to know to get your Linux system administrated. For most topics, graphical variations on the command line utility are discussed. That the author is an experienced administrator, is shown by the really beautiful tricks he now and then mentions. One I really like is this on how to create a email-only account (page 99):
useradd -g popusers -s /bin/false aeinstein
Chapter 9 discusses the graphical login manager (like xdm and gdm), some window managers and desktop managers (KDE, Gnome) and some technical stuff like X-windows configuration, key mapping and tuning video modes.
Chapter 11 is about finding software, building and installing. Because finding new software involves the internet nowadays, Chapter 10 deals with setting up a PPP connection. Web sites for finding software discussed are Freshmeat, Tucows, SourceForge, Rpmfind and Ibiblio. The most common way for building software is described (./configure && make). Also discussed is installing Perl modules from CPAN but lacks the build-in method in the CPAN module. The chapter continues with discussing the package managers for deb, tgz and rpm packages. Again, graphical front ends are mentioned.
Chapter 12 is about downloading and compiling a custom kernel. Nothing special there. Chapter 13 deals with printing, print filters, spoolers, jobs control, PostScript, LPR, PDQ and CUPS. A bit short this chapter, but everything you need to know to get started.
Chapter 14-15 covers shell scripting and other automation methods to make the administrative duties easier and more maintainable. All your basic loops are covered (if, for, until do). Also mentioned is Perl as scripting language. Crontab is explained and some secondary tools as well, like expect.
The sixteenth chapter discusses Devices, Devices and More Devices. SCSI/IDE. cd-roms/cd-rws (and thus cdrecord) are discussed. Scanning is discussed, though very little about getting your hardware to work. The chapter finishes with some lines about tape drives and other devices.
The next chapter discusses several ways of making backups. Very important to system administrators! The tools cpio, dump and tar are discussed. It continues with discussion keeping file permission, and identity backups. Backup up to cd-rw is discussed and the books included a automation script, but unfortunately, it does not cover backup to more than one cd-rw. Some graphical front ends and commercial products are discussed, like Arkeia.
Chapter 18 covers network administration with topics like: services/ports, domains, ip addresses, subnet/netmasks, routing, domain name services (DNS), network file system (NFS), network information service (NIS), and NTP.
Chapter 19 is a wrap-up of useful utilities to do configuration, like linuxconf and webmin (both possibly used via a webbrowser). It also discusses some one-floppy-disk-sized distributions for a quick look at specific systems that do not run Linux, or one that fails to boot. In those cases these one-disk distributions are handy. The book mentions: Go-Anywhere Linux, Tomsrtbt, and Trinux. Remote control with virtual network computing (VNC) is covered. Shown is how to control a remote windows machine with VNC, which is very handy in multi-platform networks.
The next two chapters are named "Proof of Concept" and give two real life examples. The first one discusses an (intranet) web server with a PostgreSQL backend. The second example is about setting up network services on an intranet.
Chapter 22 explains how to integrate your Windows systems in a Linux network. Samba is discussed, to share files and printers. And three programs are discussed to run windows programs on Linux systems: Wine, VMware and Win4Lin.
Another important administrative task is keeping logs of activities, and getting summaries on those logs. This is covered in Chapter 23. The files in /var/log are discussed, as well as log rotation to keep the directory reasonably sized. Some pages are written about checking log files, and Analog and Webalizer are discussed to summarize log files content. Unfortunately, no tools are discussed to analyze other log files than those for www services, like Lire, which is discussed in previous LinuxFocus issues.
Chapter 24-25 discuss secure computing and securing your systems. Topics that are covered: secure shell (SSH), the open source version OpenSSH, SSL for encrypted internet traffic (e.g. HTTPS), PGP and GnuPG. Again, all the tools you need to get started. The second part is about detection and prevention of system breaches. Discussed topics are: port scanners, sniffers, PortSentry, and firewalls.
Once the system is up and running, and it is neatly integrated with your local network, you might want to spent some time on performance monitoring and tuning. Monitoring is good to see trouble coming, and performance tuning is interesting on high loaded systems. Monitoring tools that are discussed are: uptime, top (and gtop, kpm), free, vmstat and ps. Basic tools, but with some automation useful for keeping track of specific processes. In this chapter also lacks any mention of integrated tools for real-time inspection of network services, like the Telemetry Box. A few pages are spend on tuning network and hard disk performance.
To end with the end: it is a good book. It is very useful for starting and part-time administrators: it covers most of the administrative duties. The book includes a 24 page thick index, which makes it a suitable reference manual. Some topics are covered more extensively than others, which reflects that some tasks take a bit more work to get things done. The book is a rather extensive overview of the Linux operating system and, basically, summarizes all you need to know to start working with Linux.
My grade (on a scale from 1 to 10): 8.5.