Usermin, Webmin and Virtualmin - What are the Differences?
Webmin is a Perl-based (not Apache-based) administration interface which, unlike cPanel, allows you to control every aspect of your server, either visually or manually, through the use of web forms. It also features a cool java file manager which allows you to get a visual idea of what's on your HDDs and it can perform basic file operations on them. In terms of security, you can restrict access to its interface by specifying a list of IPs or classes of IPs.
If you intend to handle multiple domains then Virtualmin (it's a module for Webmin) is the best choice as it allows you to manage a domain in a centralized way, that is, it automatically takes care of DNS zones, email aliases and Apache vhosts. Of course, you can fine tune BIND, Apache and the mail server by using the visual configuration of/or the manual configuration.
If you intend to give others access to the server then Usermin is a good choice as it allows normal users to access the SQL server, email server plus more but be careful what modules you activate, that is, don't enable modules unless you intend to use them.
Support: Webmin offers good support for Ubuntu and it can give you good information about outdated packages plus the possibility to update them. It also has a couple of modules which were specially designed for Ubuntu administration tasks.
Between Usermin, Webmin and Virtualmin which one does the job and is less resource hungry?
classicmanpro did a great job covering most of the differences, but I'll try to clear up the confusion here about resource usage.
Virtualmin is a module of Webmin. You can't have Virtualmin without Webmin.
Resource usage of Virtualmin, by default, is a bit higher than Webmin by itself, but it does not have to be. Virtualmin enables caching and pre-loading of a number of libraries, making the default memory usage somewhere around 110MB, while a normal Webmin install on a 32 bit system will be only about 10-12MB. You can easily disable the caching and such that Virtualmin does to make it use exactly the same amount of memory as Webmin alone. There is documentation about this here: http://www.virtualmin.com/documentation/system/low-memory
Usermin is a webmail client, with some extras. If you need to manage your server, then you need Webmin, or Webmin+Virtualmin. Usermin may or may not be a useful addition. I like having it on servers that have mail, because I can check mail with my phone (there is a mobile theme that provides a pretty nice UI on WebKit enabled phones like iPhone and Android phones). Resource usage of Usermin is similar to, but separate from Webmin (Usermin is not a module of Webmin; it is a separate server, and it drops privileges and performs actions as the logged in user, making it safer for some use cases). i.e. Usermin on a 32 bit system takes about 10-12MB of memory.
- I generally install Webmin on every UNIX/Linux/Mac OS X server I manage, regardless of its purpose, and have done so for a decade or more. It is a general purpose administration tool, similar in purpose to your shell and text editor; it just happens to make it a little easier to get the configuration syntax right the first time and without having to consult the documentation as much.
- Virtualmin is for web hosting servers. If you are hosting websites, then you probably want Virtualmin, as it provides a single point of management for all of the configuration files that go into having a "website" (Apache vhosts, DNS, mail, databases, log analysis, users, etc.).
- Usermin is webmail, plus some other nifty features.
Disclosure: I am a developer on Webmin, Usermin, Virtualmin and Cloudmin, and work for Virtualmin, Inc.