Introduction to Webmin
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. Normally you need to manually edit configuration
files and run commands to create accounts, set up a web server
or manage email forwarding. Webmin 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 are :
Create, edit and delete Unix login accounts on your system.
Export files and directories to other systems with the NFS protocol.
Set up disk quotas to control how much space users can use up with
their files.
Install, view and remove software packages in RPM and other formats.
Change your system's IP address, DNS settings and routing configuration.
Set up a firewall to protect your computer, or to give hosts on
an internal LAN access to the Internet.
Create and configure virtual web servers for the Apache webserver.
Manage databases, tables and fields in a MySQL? or PostgreSQL?
database server.
Share 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, all 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 login
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 webserver 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 that it can adjust 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, and so you must have programs installed
for it to configure. For example, the Apache module requires
that the actual Apache webserver be installed. Fortunately,
all of the services and servers that it 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 some server like Apache or
Sendmail, you should first have some idea of what they can do and
what kind of configuration you want done.
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
connections is best, but even dial-up is good enough for most
purposes.
Because Webmin runs with root privileges, you must be able to
login 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 be able to get your system administrator
to install and configure it for you though.
If you are already an experienced Unix system administrator,
Webmin may not seem to be 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 was written by me, Jamie Cameron, the author of this book.
I started it back in 1997, and released the first version (number
0.1) in October of that year. Since then its user interface, features
and appearance have changed dramatically, and almost all of
the code has been re-written. However, the basic concept of a
web-based administration tool 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 having to spend 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 be safely 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, reached 76 modules, added support for non-English
languages, advanced access control, lots more operating systems
and 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. As well as the standard modules, over 100 have
been written by other people and can be added to Webmin on your
system.
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. Not all of the 76 standard
modules are covered, as some are not very useful to the average
administrator. The book focuses on the standard modules that
come with the Webmin package, not those written by other people.
Although this book is written primarily for Linux users, the
program behaves almost identically on other operating systems.
As well, each chapter 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.
The book is broken up into 6 parts, each of which contains several
related chapters. They are :
Introduction The chapters in this part provide basic information
about what Webmin does, how to install it and how to make it more
secure.
System Modules These chapters cover modules the configure Unix
system services, such a filesystems, users and groups and printing.
Server Modules The chapters within this part cover the configuration
of servers that run on a Unix system, such as Apache, Sendmail
and Squid.
Cluster Modules This part's chapters are all about the Webmin
modules that can be used to configure multiple systems from a
single master server.
Webmin Modules These chapters cover the modules that Webmin
uses to configure itself.
Developer's Guide The chapters in this final part explain how
to write your own modules and themes.
Each chapter in the book covers the use of Webmin for managing
some 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
though the entire book in sequence if you just want to find out
how to configure one server. However, chapters 2, 3 and possibly
52 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 some specific task. A section will generally contain
an introduction to the task explaining why you might want to do
it, followed by a list of steps to follow in the Webmin user interface
to carry it out. At the start of each chapter are sections that
introduce the server being configured and the concepts behind
it, and list the underlying configuration files that get modified
when you use the module covered in that chapter.
Chapters 55 to 60 cover the development of your own Webmin modules
and themes, and so have a different style. The average user does
not need to read them, but if you have an idea for a module that is
not currently available, they provide all the information that
you need to implement it.
Who should read it?
This book should be read by anyone wanting to user Webmin to manage
their Linux or Unix system. It was written for readers with a basic
knowledge of Unix commands and concepts, people who have installed
Linux and have used it for a while.
Each chapter starts with an introduction to the service being
configured, so that readers have some idea of what the DNS protocol
is for or how a firewall works for example. Even so, a complete
novice should not try to set up some server until he understands
how it works and what he wants it to do. The best way to learn is to
use the service on some other system as a user. For example, if
you have used a proxy server before on some other network, then
you will have the background knowledge needed to use this book
to set up the Squid proxy on your own system.
The development chapters on the other hand are written for someone
who already understands how to write Perl scripts and CGI programs
on a Unix system. This means that they are more complex than the
rest of the book, and assume a knowledge of programming and manual
system administration. However, they can be skipped if you just
want to learn how to use Webmin, rather than how to extend it.
Conventions used in this book
The following special text styles are used in this book :
Bold Used for text that appears in Webmin itself, such as error
messages, icon names, buttons and field labels.
Fixed width This style is used for the names of shell commands,
Unix users, directories and files. Also used for text in configuration
files, program code and API functions.
Italics Used to indicate example input entered by the user
into Webmin, or example commands or directories. Also used in
the
API chapter for the names of parameters to functions.
Thanks to
This book could not have been written without the support of Jill
Harry and the others at Prentice Hall, Bob Kern for suggesting
the idea, my wife Foong Ching for her constant support, and all
the members of the Webmin mailing list for their ideas and suggestions
over the years.

Copyright © by the contributing authors. All material on Doxfer is the property of the contributing authors.
Ideas, requests, problems regarding Doxfer?
Send feedback