Linux in a Windows World/Preface
Hardly a day goes by when Linux doesn't make the news. Judging by the buzz, you might think that Linux is poised for world domination—the stated goal for Linux in a now-famous quip by its creator, Linus Torvalds. In truth, Linux still faces numerous challenges before it can dominate the computing world, much less the world at large. One of these challenges is the huge installed base of Microsoft Windows systems. As a practical matter, Linux must coexist with these systems. Indeed, the challenge of coexisting with Windows can be viewed as an opportunity: Linux can be integrated into a Windows network, providing a reliable and low-cost platform on which to run vital services for Windows systems, or even serving as a workstation on an otherwise Windows-dominated network.
This book is dedicated to describing this opportunity for Linux. If you're reading this Preface, chances are you work with a Windows-dominated network but know something about Linux and wonder how you can best use Linux to improve your Windows network. In broad strokes, you can replace Windows servers, supplement Windows servers with Linux servers, use Linux to implement new services you don't currently run, deploy Linux-based thin clients, or migrate some or all of your Windows desktop systems to Linux. This book provides guidance about how to accomplish these tasks, with an emphasis on Linux in the role of network server operating system (OS).
This book will help you reduce costs and improve reliability by describing how several common Linux programs and protocols—Samba, OpenLDAP, VNC, BIND, and so on—can be integrated into a Windows network. This book provides enough information to get any of these programs up and running, provided you've already got a working Linux system. Of course, a book of this size can't cover every detail; if you need to do very complex things, you'll need to consult other books or documentation. The relevant chapters provide pointers.
I've written this book with an administrator of a Windows network in mind, but with the assumption that you know the basics of Linux system administration. You might be uncertain of the details as to where Linux might fit into your network or how to get started configuring particular Linux server programs. That's where this book can help: it introduces the most cost-effective ways to add Linux to your network and describes the basics of how to get started configuring specific servers.
If you're not already familiar with basic Linux system administration, you should consult a book on the topic, such as Running Linux (O'Reilly) or Linux System Administration (Sybex). Such books will help you with tasks ranging from installing Linux to recompiling your kernel.
You should be familiar with networking basics. Although I sometimes provide brief overviews of important prerequisite knowledge, this book doesn't dwell on the details of the TCP/IP stack or how best to lay out a network. Likewise, knowledge of your own network is vital; you shouldn't start adding servers to a network you don't understand. Perhaps you have little idea of how you want to deploy Linux, or perhaps you've got specific plans. If the former, reading the first couple of chapters of this book will give you a better idea of how Linux can be used. If you have well-formed plans, you can skip ahead to more relevant chapters, although reading the first couple of chapters may help you verify (or not verify) that your plans are reasonable.
Contents of This Book
This book is organized in five parts, plus two appendixes. If you want a good general grounding in how Linux can be deployed on a network, you can read this book cover to cover; however, most chapters are self-contained enough to be useful on their own. There are a few exceptions to this rule, though. As already noted, if you're not sure how to deploy Linux, you should read Part I for some basic tips. Chapter 4 (on Samba share definitions) depends on Chapter 3, so you should probably read those two sequentially. Likewise, the remaining chapters in Part II depend on Chapter 3. If you intend to use a remote authentication database from Linux rather than deploy Linux solely as the repository for such a database, you should read Appendix A with any of the chapters of Part III. Kerberos depends on all the systems having matching clocks, so you should read the NTP section of Chapter 15 in conjunction with Chapter 9. Some backup strategies described in Chapter 14 depend on Samba information, particularly as described in Chapter 3 and Chapter 4. These interdependencies are pointed out in the chapters themselves.
- Part I
- This part of the book provides an overview of how Linux can be used to improve an otherwise Windows-dominated network. It consists of two chapters that describe Linux's features and provide an overview of strategies for deploying Linux. This material is targeted at readers who have the least experience with Linux or who aren't sure precisely how Linux can help them.
- Part II
- This part of the book describes Samba, a file- and printer-sharing server package that is arguably the most important Windows integration tool available for Linux. Samba implements the Server Message Block/Common Internet File System protocol, which has long been the backbone of file and printer sharing in the Windows world. A Linux system running the Samba suite can fit right in, delivering files or making printers accessible to Windows systems. This part's four chapters describe basic Samba configuration, creating file and printer shares, using Samba as a domain controller, and using Linux's SMB/CIFS client features.
- Part III
- Many networks employ centralized authentication tools that enable you to maintain a single account database for all the clients and servers on your network. If you wish to use Linux on a network that already runs such a system, you should know how to get Linux working with it. You can also use Linux to manage accounts for Windows systems. This part of the book describes three such systems: Windows NT domains, the Lightweight Directory Access Protocol, and Kerberos.
- Part IV
- One of Linux's strengths has always been its support for remote login protocols—the ability to use Linux from remote locations. This support is handy both for system administration (simplifying your life should a server need support while you're not physically present) and for regular users who remotely access Linux or wish to use Linux to remotely access other systems. This part of the book includes three chapters that describe text-mode remote access protocols, GUI remote-access protocols, and use of Linux in a thin-client configuration (that is, using a minimal OS on a simple computer to run programs on a more powerful central login computer).
- Part V
- This part of the book describes several miscellaneous server programs. Chapter 13 describes mail server programs that enable Linux to function as a network's primary mail server or as a supplementary system to filter mail or retrieve mail from outside sites and forward it to another computer. Chapter 14 describes network backups. Linux can be a good platform for this task because its backup software packages are inexpensive (most are free), and some of Linux's other tools (such as Samba) provide several opportunities for backing up Windows systems. Chapter 15 describes three other protocols and their servers: the Dynamic Host Configuration Protocol for remotely configuring client computer's network stacks, the Domain Name System for managing hostname-to-IP-address mappings, and the Network Time Protocol for keeping clocks synchronized.
- Part VI
- Two appendixes describe some additional miscellaneous topics. Appendix A covers the Pluggable Authentication Module approach to Linux authentication. Knowing how to modify a PAM configuration is vital if Linux is to coexist with a network's centralized authentication tools, as covered in Part III of the book. Appendix B covers the basics of deploying Linux on the desktop. If you decide to replace Windows desktop systems with Linux systems, Appendix B provides help to get this job done.
Conventions Used in This Book
The following typographical conventions are used in this book:
- Plain text
- Indicates menu titles, menu options, menu buttons, and keyboard accelerators (such as Alt and Ctrl).
- Indicates new terms, URLs, email addresses, filenames, file extensions, pathnames, directories, and Unix utilities.
- Constant width
- Indicates commands, options, switches, variables, attributes, keys, functions, types, classes, namespaces, methods, modules, properties, parameters, values, objects, macros, the contents of files, or the output from commands.
- Constant width bold
- Indicates commands or other text that should be typed literally by the user.
- Constant width italic
- Indicates text that should be replaced with user-supplied values.
This icon signifies a tip, suggestion, or general note.
This icon indicates a warning or caution.
Using Code Examples
This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You don't need to contact us for permission unless you're reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O'Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product's documentation does require permission.
We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: "Linux in a Windows World by Roderick W. Smith. Copyright 2005 O'Reilly Media, Inc., 0-596-00758-2."
If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at firstname.lastname@example.org.
Comments and Questions
Please address comments and questions concerning this book to the publisher:
O'Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
(800) 998-9938 (in the United States or Canada)
(707) 829-0515 (international or local)
(707) 829-0104 (fax)
There's a web page for this book that lists errata, examples, and any additional information. You can access this page at:
To comment or ask technical questions about this book, send email to:
For more information about books, conferences, Resource Centers, and the O'Reilly Network, see the O'Reilly web site at:
Safari offers a solution that's better than e-books. It's a virtual library that lets you easily search thousands of top tech books, cut and paste code samples, download chapters, and find quick answers when you need the most accurate, current information. Try it for free at http://safari.oreilly.com.
Published books aren't the creation of just one person; they're collaborative efforts, although the person identified as the author is the most visible of this team. For this book, I'd like to thank O'Reilly editors Andy Oram, who got the ball rolling, and David Brickner, who saw the project through to the end. Technical reviewers for this book were Gerald Carter, Steve Suehring, Alan Schwartz, and Curtis Preston; these people kept me from making technical blunders—but if any remain, they're my own. Mary Anne Weeks Mayo provided copy editing, to keep my prose not just technically accurate, but readable. The book's proofreader, Marlowe Shaeffer, guarded against typos and similar problems. Finally, I'd like to thank Neil Salkind and others at Studio-B, who helped get things started and provided the occasional necessary prod to keep them moving.