Windows-to-Linux roadmap: Part 3. Introduction to Webmin

A browser-based administration tool

IBM e-business architect Chris Walden is your guide through a nine-part developerWorks series on moving your operational skills from a Windows® to a Linux® environment. He covers everything from logging to networking, and from the command-line to help systems -- even compiling packages from available source code. In this part, he shows you how to install and use Webmin, a browser-based administration tool for Linux and other platforms that provides a graphical interface to many administrative and operational tasks.


Chris Walden (, e-business Architect, IBM

Chris Walden is an e-business Architect for IBM Developer Relations Technical Consulting in Austin, Texas, providing education, enablement, and consulting to IBM Business Partners. He is the official Linux fanatic on his hallway and does his best to spread the good news to all who will hear it. In addition to his architect duties, he manages the area's all-Linux infrastructure servers, which include file, print, and other application services in a mixed-platform user environment. Chris has ten years of experience in the computer industry ranging from field support to Web application development and consulting.

11 November 2003

Also available in Russian Japanese

One of the challenges when moving from administering a Windows environment to administering Linux is learning the new tools at your disposal. As an administrator, you want to learn the details of the operating system so that you can get the most out of it. But while you are learning, you need to get real work done now.

To accelerate your productivity in Linux, we are going to install a program called Webmin. According to the (see Resources for a link): "Webmin is a Web-based interface for system administration for Unix. Using any browser that supports tables and forms (and Java for the File Manager module), you can set up user accounts, Apache, DNS, file sharing, and so on. Webmin consists of a simple Web server, and a number of CGI programs which directly update system files like /etc/inetd.conf and /etc/passwd. The Web server and all CGI programs are written in Perl version 5, and use no non-standard Perl modules."

Webmin runs on virtually all Unix-like platforms including Linux, AIX, HPUX, Solaris, OS X, and others. It provides a Web front end to many administrative tasks in Linux. It can be run from any graphical browser either locally or remotely. Webmin can be secured with SSL, to prevent snooping. As you are learning Linux administration, Webmin is a great time saver. Webmin is also handy to help with the tedious tasks that you have not automated.

Webmin is extensible. The author provides a development guide, and there are several third-party modules available. You can also design your own modules, so Webmin can always be adapted to fit your needs.

Installing Webmin

The first step to working with Webmin is to install it. Webmin is included with a few distributions, but it will be just as easy to download it from the Webmin site (see Resources for a link).

At the time of this writing, the current version is 1.90. The correct method for installation will vary depending in your distribution. If you are using Red Hat Linux or one of the UnitedLinux distributions (SuSE, Turbo, Connectiva, or Caldera), then the RPM will be the simplest method of installation. If you are using a different distribution, you will need to check the documentation for your distribution and the Webmin installation instructions to determine the best method for you. RPM installation will be assumed.

First check to see if Webmin is installed on your system. From a text terminal, enter the following:

rpm -q webmin

If Webmin is installed on your system, you will receive a version number:


or an indication that Webmin is not installed:

package webmin is not installed

Installing software packages

Most packages on Linux install just as easily as the Webmin example in this article. For more on installing and deleting packages -- and even on compiling programs from source code -- see Part 9 of this series.

Even if Webmin is already installed, it will probably be a version lower than the current one available for download. In this case, you can do an upgrade or a fresh install with the following command:

rpm -Uvh webmin-1.090-1.noarch.rpm

A verbose upgrade is done with a progress bar printed with # marks.

RPM noarch

You will notice that Webmin is listed as a "noarch" package. Since RPMs are binary files, they are typically compiled for a particular architecture such as i386 or ppc. Installing the package on the wrong architecture can have bad results. Since Webmin is written in Perl, which is architecture independent, the "noarch" designation is used.

When Webmin is installed, it activates by default. But Webmin does not install with SSL activated. SSL requires the installation of a Perl module called Net::SSLeay. Until this is installed, Webmin will only be secure to run from the local console. Securing Webmin will be briefly covered at the end of this article.

Practical Extraction and Reporting Language (Perl)

Perl is a multi-platform interpreted programming language that has been around since 1987. It is available on a wide variety of platforms, including Windows, and provides sophisticated scripting capabilities. Perl excels at text-processing and became very popular for Web CGI programming. Perl is extensible by adding modules, which are function libraries, also written in Perl. Most modules, and indeed Perl itself, are available under a generous free license called The Artistic License (see Resources for a link).

Using Webmin

Access Webmin through your favorite Web browser. Two of the tools, a file explorer and a telnet/ssh client, are applet-based and will require a Java Runtime Environment to be installed on your browser. These tools are handy, but not critical. All of the other modules have no special requirements.

To begin using Webmin, point your browser to port 10000 on the system. With a browser on the local system, you would use http://localhost.localdomain:10000/. Webmin will first bring you to a login screen.

Webmin users are separate from operating system users. This allows you to set up users for administration through Webmin that are not in the normal Unix authentication scheme. However, if you have users that you want to be able to use Webmin, you can enter them into the Webmin user list and have Webmin authenticate them through Unix facilities rather than through its internal mechanisms. Access to Webmin modules can be controlled for each user. Helpdesk staff could have access to just password functions, while other staff could have access to all modules, for example.

A root user is automatically created with the system's root password upon installation. Webmin logs activity by login, so in a multi-admin environment, it would probably be better to create an admin group with the rights of the root user, and create users for each individual who works on the system. Your first login must be as root.

root user

In Linux, the primary administrative user is called root. The root user has full control over all aspects of the system. The name of root should never be taken in vain.

Webmin sections

The first screen you will see is the Webmin Configuration Section. This is where you configure Webmin users, configure modules, and view activity logs. The icons at the top switch between the different module sections in Webmin. All of the modules are configurable, and you can regroup things to suit your preferences.

Figure 1. Webmin configuration screen
Webmin configuration

Webmin is for users, too

There is an icon to configure the optional Usermin package, which provides a Web-based tool for users to perform functions, such as password changes, system mail management, and other functions. Usermin does not provide access to system configuration functions. Usermin and Webmin are intended to be complimentary products.

The System section deals with general operating system configuration. Here, you configure file systems, users, and groups and the general boot behavior of the system. You can control the services that are running on the system and whether they start automatically from the Bootup and Shutdown icon. Configuration of those services, however, is in the Servers section. The "Software Packages" tool is of particular interest. It allows easy viewing of packages installed on your system and interfaces to distribution update repositories and, a common RPM repository on the Internet (see Resources for a link).

The Servers section has configuration for various services that you may be running on the system. The BIND and DHCP tools are very convenient. Also the Samba tool is simple to use for configuring file and print shares for Windows and other clients. Sendmail, the SMTP server, is notorious for having a complex configuration file. The Webmin Sendmail tool keeps you out of trouble there as well.

Figure 2. Webmin servers screen
Webmin servers screen

The Networking section provides tools for configuring the network hardware and some of the complex network controls, such as firewalling. All the tools communicate with the standard configuration files, so anything you do in Webmin is reflected in the console tools.

The Hardware section is for configuration of physical devices, mostly printers and storage devices. The Logical Volume Management (LVM) tool is particularly interesting as it helps you visually manage dynamic volumes on your Linux system.

The Cluster section contains tools you would use if you were clustering systems. A cluster, in this context, is a set of related systems that need to have their configurations synchronized. Systems can synchronize users, groups, packages, and other things with system failure detection. These tools will help you set up hot failover systems and other systems where synchronization is important. Clustering is an advanced topic and will probably require installation of packages not included with your Linux distribution.

The Others section contains miscellaneous utilities that you may find useful. The "SSH/Telnet Login" and "File Manager" tools are applet-driven, and cannot be run unless your browser has an active JRE. The "Perl Modules" tool is very useful for keeping up with Perl modules and will interface directly to CPAN on the Internet. The "File Manager" tool provides an Explorer-like view of the server's file system, allowing you to move and copy files around without passing them through your workstation's memory, if you are working remotely. The "SSH/Telnet Login" tool is a remote shell console that will allow you console access through your browser.


Webmin is a browser-based administration application written in Perl. Webmin is extensible and available for other Unix-like operating systems besides Linux. Once installed, Webmin is accessed through a special port, typically 10000, either locally or from a remote browser. It provides point-and-click interfaces to a variety of Linux administration tasks, including user management, network firewalling, and network device configuration.

Webmin is free to install and use, and is a good way to manage a working Linux environment while you are making a transition from the graphical tools of Windows. Webmin tools are a front end to the console-based tools, so configuration is consistent, and administration can be done from either set of tools safely.



Get products and technologies



developerWorks: Sign in

Required fields are indicated with an asterisk (*).

Need an IBM ID?
Forgot your IBM ID?

Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.


All information submitted is secure.

Dig deeper into Linux on developerWorks

ArticleTitle=Windows-to-Linux roadmap: Part 3. Introduction to Webmin