BSD Hacks
Dru writes the BSD Basics column on O'Reilly & Associates' OnLamp. Her clarity and fluid style are perfect for those looking to understand aspects of the BSD operating systems. I have had some email communications with Dru about various New York City *BSD User Group-related activities, and managed to speak with her several times at BSDCan this past May.
Like most computer nerds, Dru has a sense of humor. Unlike most, however, she's actually funny.
BSD Hacks is the first book that is almost solely focused on hacks for sysadmins, without boring you with the details for basic operating system installation and configuration that has been so well documented elsewhere. BSD Hacks is not just for sysadmins, though. Intermediate and advanced BSD users will also find the book an excellent tool. For those who find difficulty in BSD installs and other fundamentals, on the other hand, it's best to start with the FreeBSD Handbook, the NetBSD Guide or the OpenBSD FAQ.
There's lots of good hacks buried in the various BSD books, around the internet in different HOWTOs and tutorials. But BSD hacking is the sole purpose of BSD Hacks; there's no need to browse through install screens and overviews of TCP/IP before getting to the heart of the matter.
With 100 listed hacks, multiplied by an impressive level of detailed angles for each, Dru provides an array that demands the placement of this book right in your server room, not in a pile of "must-read-at-some-distant-point-in-the-future" texts.
The majority of hacks are applicable to all the BSDs, including Darwin and OS X, although some are specific to one BSD or another.
This review obviously can't list every hack, although you would be smart to sit and work through the book yourself over a weekend or two. But it is possible to provide a good flavor of BSD Hacks in brief. O'Reilly and Associates does give a good glimpse on their Sample Hacks page, but let's do a quick work through ourselves.
The first chapter is called "Customizing the User Environment," and is probably best for end-users looking to go beyond their first steps. But it does include some useful hacks, such as "Use an Interactive Shell" that certainly fit well into the arsenal of any sysadmin, not to mention Hack #12 "Use Multiple Screens on One Terminal."
The second chapter, "Dealing with Files and Filesystems" also contains gems for both end-users and sysadmins. The use of mtree, which maps a directory hierarchy, is mentioned as a tool for recovery. Later on in chapter 6, Dru details its use for making a hacked data integrity checker, thus filling the role often played by products such as Tripwire.
Another great tool Dru covers in the second chapter is g4u, a free ghosting program that gives you the ability to perform quick restores over ftp. Ghosting a drive image is an incredibly useful tool, whether it's about replicating servers or doing a quick reinstall and configuration when a server fails in an emergency.
Chapter 3 is entitled "Boot and Login Environments." It gives some hacks that aren't just for basic system administration, but also some useful security ones including changing your /etc/passwd file to Blowfish encryption and utilizing OPIE for one-time passwords, which is built into FreeBSD.
"Backup Up" is the focus of Chapter 4. It includes some very creative methods of dealing with maintaining that necessity, and also includes an excellent primer on Bacula, which is increasingly gaining prominence as a cross-platform backup system.
Chapter 5 covers "Network Hacks," and continues on educating a sysadmin. Included in this chapter is the tcpdump program, a vital tool for watching traffic flowing by your network interfaces.
There's a strong security focus in Chapter 6, entitled "Securing the System." While security hacks are sprinkled generously throughout the book, this chapter works with firewalling with IPF and PF, in addition to covering SSH and Snort. It also includes the earlier mentioned 'intrusion detection-lite' approach with mtree.
Chapter 7, "Going Beyond the Basics" explores scripting, analyzing dreaded buffer overflows and more. Dru also includes a bit on "Creating a Trade Show Demo," not something you'd expect documented in print anywhere, but nevertheless quite useful for anyone working for the BSDs at a conference.
Dru continues with "Keeping Up-to-Date" in Chapter 8, which includes useful details on upgrading and downgrading your installed ports.
The final chapter is "Grokking BSD." "Grok," as Dru comments, refers to the science fiction writer Heinlein's Martian phrase for having a "thorough understanding." Dru covers creating your own manual pages, dealing with custom patches, playing with dictionaries and more.
Certainly there are no walls between each chapter, as many of the hacks could be shifted around. All the more reason to work your way through the book from beginning to end.
One useful addition for this book could have been somehow denoting which of the BSDs (in some cases, it's all of them) to which each listed hack can be applied. Certainly not all are available to Darwin and Apple's OS X. And certainly there's no point in making the OpenBSD /etc/passwd file encrypted in Blowfish, since that is its default.
While many of the hacks are found somewhere in the manual pages, on some useful website, buried in another book or in the minds of some developer somewhere, they're not necessarily in the annals of official documentation. But there's no single book or site that provides the depth and breadth that Dru provides. She managed to tap into the thoughts of dozens of developers and sysadmins around the world, greatly enhancing the variety of hacks in this book.
As a side note, the scope of BSD Hacks isn't limited to just the BSD family. Many of these are likely applicable to Linux and the other UNIX systems. But with recent, impressive increases in the BSD install base, there's a good chance that you can access a BSD box somewhere.
Whether you're a sysadmin managing hundreds of servers, or a power user ready to go beyond the obvious, BSD Hacks belongs next to your CRT.
You can purchase BSD Hacks from bn.com. Slashdot welcomes readers' book reviews. To see your own review here, carefully read the book review guidelines, then visit the submission page.
Is a hacks book a good way to go about learning more about the insides of an OS (BSD) and how it works, or are there other books out there for this purpose? I know elementary UNIX (if you count Terminal OS X as UNIX) but I'm not sure if books like this are a good way to broaden the scope of what I know in the language, or just specific directions and instructions on how to get some things power users have always wanted to work... to work.
-Rob
Marriage doesn't have to suck!
There is no question. This book is useful and one of the best books that I've seen for a long time.
I'm using FreeBSD 4 and 5. That's why I like this book really much. It gives so many examples how to cope with shell settings, file systems, backups and many other typical problems. I have learned a lot from this book.
This here, is not the whole truth:
The majority of hacks are applicable to all the BSDs, including Darwin and OS X, although some are specific to one BSD or another.While reading this book you will find quite a lot passages saying: "For NetBSD, look at: http://...", "For OpenBSD, try: http://...", "Unfortunatelly, NetBSD..." or explaining NetBSD/OpenBSD features in one short paragraph and pointing to man-pages, while FreeBSD is explained with lots of details. I mean, this does not disturb me, but it might be annoying for other users.
GUIs are for wimps. I perfer the Command Line!
This book (which I picked up in a recent book shopping binge) reminds me most of Unix Power Tools. I own the 2nd edition and I've reviewed the 3rd edition. The similarities to the "Hacks" series is striking (not surprising, considering that they're both published by O'Reilly). The "Hacks" books seem to be shorter and with fewer tips receiving more thorough treatment.
A comment I wrote for the Power Tools review applies to BSD Hacks as well:
Among the most hyperlinked book I've seen, this book is filled with hundreds of useful tips and, perhaps most interestingly, Unix culture. It's only marginally successful as a reference manual or as a teaching aid as it focuses on the useful-but-obscure aspects of Unix. Where it truly excels is in steeping the reader in ``How do I''-style Unix lore until it comes out of their pores.
"The purpose of argument is to change the nature of truth." -- Bene Gesserit Precept
Actually, browsing at the civilized levels, I've noticed far more people complaining about BSD being insulted than actual anti-BSD sentiment. Either you guys take the trolls more seriously than I do, or you have a minority complex. :P
====
Crudely Drawn Games
- Hubert
Do any of these new books cover DragonFly BSD? I'm in the process of switching all my computers over from FreeBSD to DragonFly. It would sure be nice to have some DragonFly books.