|2020ok Directory of FREE Online Books and FREE eBooks|
Managing Linux Systems with Webmin: System Administration and Module Development
by Jamie Cameron
(Respecting the intellectual property of others is utmost important to us, we make every effort to make sure we only link to legitimate sites, such as those sites owned by authors and publishers. If you have any questions about these links, please contact us.)
Written by the creator of Webmin, this book explains how to use the most popular Webmin modules to perform common administration tasks on a Linux system such as adding users, configuring Apache, setting up NFS file sharing and managing the Sendmail mail server.Each chapter covers a single server or service, and is broken down into sections that list the steps required to carry out certain tasks using Webmin. The chapters also provide some background on the service being configured and the basic concepts behind it.Cameron also explains how to develop your own Webmin modules and themes, and includes a complete reference for the API that is available to module writers. He dissects each of the standard modules and themes so that programmers thinking of writing their own can see how they work, and what kind of coding style is used.Webmin is a browser-based user interface for performing system administration tasks on Linux and Unix servers.Part of the Bruce Perens' Open Source Series
From the Back Cover
I am more than satisfied (actually impressed) with how much system administration is possible from Webmin. Comprehensive and convenient, just about any administration I've done is covered here, along with several areas that I've hesitated to explore.
Easy, browser-based Linux/UNIX administration with Webmin--step by step
Webmin gives you an easy, browser-based solution for virtually any day-to-day Linux/UNIX administration task. Now, there's a definitive Webmin guide for every beginning-to-intermediate sysadmin. Written by Webmin's primary developer, Managing Linux Systems with Webmin delivers authoritative, step-by-step coverage of the latest version of Webmin, from basic installation to centrally managing multiple servers. Coverage includes:
Jamie Cameron walks you through more than 50 essential Webmin tasks--offering all the background you need, step-by-step instructions, extensive screen captures, and listings of the underlying configuration files that are being modified. Whether you're new to Linux/UNIX system administration or you simply want an alternative to the command line, Managing Linux Systems with Webmin will be an indispensable resource.
About the Author
JAMIE CAMERON, Webmin's primary developer, has unsurpassed knowledge of Webmin's functions, user interface, and internal design. He has been working with and managing UNIX and Linux systems for over seven years. He was previously employed by Caldera and MSC Software, where he worked full time on Webmin.
Excerpt. © Reprinted by permission. All rights reserved.
This chapter explains what Webmin is, why it was written, and what you can expect from this book.
What is Webmin?
Webmin is a program that simplifies the process of managing a Linux or UNIX system. Traditionally, you have needed to manually edit configuration files and run commands to create accounts, set up web servers, or manage email forwarding. Webmin now lets you perform these tasks through an easy-to-use web interface, and automatically updates all of the required configuration files for you. This makes the job of administering your system much easier.
Some of the things that you can do with Webmin include:
Creating, editing, and deleting UNIX login accounts on your system
Sharing files with Windows systems by configuring Samba
These are just a few of the available functions. Webmin lets you configure almost all of the common services and popular servers on UNIX systems using a simple web interface. It protects you from the syntax errors and other mistakes that are often made when editing configuration files directly, and warns you before potentially dangerous actions.
Because Webmin is accessed though a web browser, you can log in to it from any system that is connected to yours through a network. There is absolutely no difference between running it locally and running it remotely, and it is much easier to use over the network than other graphical configuration programs.
Webmin has what is known as a modular design. This means that each of its functions is contained in a module that can generally be installed or removed independently from the rest of the program. Each module is responsible for managing some service or server, such as UNIX users, the Apache Web server, or software packages.
If you have been manually configuring your system up till now, any existing settings will be recognized by Webmin. It always reads the standard configuration files on your system and updates them directly, instead of using its own separate database. This means that you can freely mix Webmin, manual configuration, and other programs or scripts that work in the same way.
Even though this book is written for Linux users, Webmin can be used on many other flavors of UNIX as well, such as Solaris, FreeBSD, and HP/UX. One of its biggest strengths is its understanding of the differences between all these operating systems and the way it adjusts its user interface and behavior to fit your OS. This means that it can often hide the underlying differences between each UNIX variant and present a similar or identical interface no matter which one you are using.
Webmin on its own is not particularly useful though—it is only a configuration tool, so you must have programs installed for it to configure. For example, the Apache module requires that the actual Apache Web server be installed. Fortunately, all of the services and servers that Webmin manages are either included with most Linux distributions as standard, or can be freely downloaded and installed.
Who Should Use Webmin?
Webmin was written for use by people who have some Linux experience but are not familiar with the intricacies of system administration. Even though it makes the process of creating UNIX users or managing the Squid proxy server easy, you must first have some idea of what a UNIX account is and what Squid does. The average Webmin user is probably someone running it on their Linux system at home or on a company network.
The program assumes that you are familiar with basic TCP/IP networking concepts, such as IP addresses, DNS servers, and hostnames. It also assumes that the user understands the layout of the UNIX filesystem, what users and groups are, and where user files are located. If you use Webmin to manage a server like Apache or Sendmail, you should first have an idea of what they can do and what kind of configuration you want completed.
Webmin itself runs with full UNIX root privileges, which means that it can edit any file and run any command on your system. This means that it is quite possible to delete all of the files on your system or make it un-bootable if you make a mistake when using the program, especially if you are configuring something that you don't understand. Even though Webmin will usually warn you before performing some potentially dangerous action, there is still plenty of scope for causing damage.
Even though it can be used on a system with no connection to the Internet, Webmin does benefit if your Linux system is on a network. It can download new software packages, Perl modules, or even new versions of Webmin for you, if connected. A permanent high-speed connection is best, but even a dial-up connection is good enough for most purposes.
Because Webmin runs with root privileges, you must be able to log in to your system as root to install and start it. This means that it cannot be used on a system on which you have only a normal UNIX account, such as a virtual web server that is shared with other people. You might, however, be able to get your system administrator to install and configure it for you.
If you are already an experienced UNIX system administrator, Webmin may not feel like the tool for you because using it is generally slower than directly editing configuration files and running commands. However, even the experts can benefit from its automatic syntax checking and the actions that it can perform automatically.
It is also possible to give different people different levels of access to Webmin, so that an experienced administrator can use it to safely delegate responsibility to less-skilled subordinates. For example, you might want someone to be only able to manage the BIND DNS server and nothing else, while giving yourself full access to the system and all of Webmin's functions.
How and Why Was it Developed?
Webmin, the program, was designed and created by me, Jamie Cameron—the author of this book. I started it back in 1997 and released the first version (0.1) in October of that year. Since that time, its user interface, features, and appearance have changed dramatically, and almost all of the code has been re-written. The basic concept of a web-based administration tool, however, has been the same since that very first release.
I started writing it when I was the administrator for a system running a DNS server and was spending a lot of time updating the server's configuration files to add new host records requested by users. Giving them the root password was not an option—they did not have the experience to properly edit the zone files and re-start the server. The solution was a simple web interface that would display existing DNS records and allow them to be edited, created, and deleted. Users could then safely be given access to this interface to make the changes that they needed.
DNS management was just the start though. Once I saw the possibilities for simplifying the configuration of a UNIX system though a web interface, I started adding other features to the program and putting them into modules. Next came modules for UNIX users, Samba, mounting filesystems, NFS, and Cron jobs. I thought up the name Webmin, made it available for anyone to download, and announced it on a few mailing lists. The initial feedback was good, so I kept on writing.
Over the years, the program has gone through three different user interfaces, grown to 83 modules, added support for non-English languages, provided advanced access control, included lots more operating systems, and offered many other features. The Linux distribution companies Caldera and MSC.Linux have supported the project financially, and many users have made contributions of code patches, modules, translations, and suggestions. In addition to the standard modules, over 100 have been written by other people and are available to be added to Webmin on your system once you have installed the program.
What is this Book About?
This book explains how to install Webmin, how to use almost all of its modules, and how to write your own. The book focuses on the standard modules that come with the Webmin package, not those written by other people. Not all of the 83 standard modules are covered, however, as some are not very useful to the average administrator.
Although this book is written primarily for Linux users, the program behaves almost identically on other operating systems. Each chapter also lists any differences between Linux and other UNIX variants in their "Other Operating Systems" sections. This means that it is still very useful if you are running Webmin on FreeBSD, Solaris, MacOS X, or some other variety of UNIX.
Each chapter in the book covers the use of Webmin for managing a particular service or server, such as NFS exports, Sendmail, or the ProFTPD FTP server. Most chapters only discuss a single module, but some cover two or three that have similar or related purposes. Each chapter is pretty much self-contained, so there is no need to read through the entire book in sequence if you just want to find out how to configure one server. Chapters, and possibly, however, should be read first as they explain how to install Webmin, how to secure it, and how to limit what other users can do with a module, respectively.
Each chapter is broken up into sections, and most sections explain how to perform a specific task. A section will generally contain an...
Related Free eBooks