qmail-hashdir
On this page: • Introduction • Status/Warranty • Download • Text files • Installation • Security • Archives
Introduction
This package extends qmail's functionality by adding a system to manage users directories (and the Maildirs there) in a scalable manner. In particular, it allows for hundreds of thousands or even millions of users on a system, across multiple domains, and implemented on multiple machines sharing storage for mailboxes.
The package provides a set of tools enabling you to hash users' [mail] directories, avoiding the problems associated with placing them all in the same directory (esp. manageability for the sysadmin, and in certain cases filesystem limitations). The core of the package is a modification (patch) to qmail-local for how it searches for a user's 'Home' directory.
qmail-hashdir uses the fairly ubiquitous P. J. Weinberger hash function, and avoids using system libraries where possible, using instead library functions from a neighbouring qmail installation (i.e. this software relies on the same functions written by Dan Bernstein that qmail itself does). Note that there are security issues with this package. That doesn't mean the package is broken, but that it makes certain assumptions that you should understand fully before using qmail-hashdir - see the text file SECURITY provided as part of the distribution.
This version in the public domain is not the most up-to-date - that version has a considerably richer functionality, but needs some work on the documentation to make it suitable for public release. This will either happen when I find some spare time, or when a client sponsors further development of qmail-hashdir, watch this space.
Status / Warranty
No warranty, express or implied is given - USE THIS SOFTWARE ENTIRELY AT YOUR OWN RISK. You will need to satisfy yourself as to the suitability of this software before deploying it in a production environment.
Download
The current release, version 0.21, is available as a gzipped tar or compressed tar archive (I'll put up other formats on request).
Text files
In case you're just browsing, here are the text files provided with the current release online: COMMANDS • INSTALL • LIMITATIONS • NOTES • PITFALLS • SECURITY • TODO • USAGE.ADMIN • USAGE.DELIVERY • USAGE.NOTES • USAGE.POP3 • USERNAMES • VERSIONS
Installation
Installation details for the program are included in the distribution - see the INSTALL and other text files. If you're wondering what platforms the package runs on, here's the list (if you get this program working on other systems, please let me know - reach me at qmh-compat@acrconsulting.co.uk so that I can update this page - also let me know if any modifications were necessary).
- Version 0.21:
- Debian 3.0 Linux (2.4.18-SMP kernel)
- SuSE 6.3 Linux (2.2.13 kernel)
- Solaris 2.6
- Version 0.20:
- Debian 3.0 Linux (2.4.18-SMP kernel)
- SuSE 6.3 Linux (2.2.13 kernel)
- Solaris 2.6
- Versions 0.12 to 0.19: These version numbers were skipped to reflect a substantial change in logic/approach between 0.11 and 0.20.
- Version 0.11:
- SuSE 6.3 Linux (2.2.13 kernel)
- Solaris 2.6
- Solaris 8
- Version 0.1:
- SuSE 6.3 Linux (2.2.13 kernel)
Security
Please ensure that you read the text file SECURITY, provided as part of the distribution.
Archives
The previous versions of qmail-hashdir:
- Version 0.21 (current version):
- gzipped tar, 26846 bytes
- compressed tar, 37944 bytes
- Version 0.20:
- gzipped tar, 27004 bytes
- compressed tar, 38327 bytes
- Version 0.11:
- gzipped tar, 24300 bytes
- compressed tar, 34963 bytes
- Version 0.1:
- gzipped tar, 22197 bytes
- compressed tar, 32458 bytes
- qmail-hashing21Aug00:
- Withdrawn: The source code for this is identical to version 0.1; the only differences being the text files and Makefile, which made use of the SetUID bit on some executables (to SetUID to the hash user). Given that this has security implications, this earlier release has been withdrawn - you can achieve the same SetUID setup with version 0.1, but you'll need to do so explicitly, meaning that you should understand the implications of what you are doing. There are safer alternatives to this, which are explained in the text files.
This page last updated: AR, 6th February 2008.