This is a personal mirror from https://github.com/vchrizz/ldap-chpw-cgi
Find a file
2015-10-21 16:05:48 +02:00
tpl Initial commit 2015-10-19 18:35:52 +02:00
.htaccess Initial commit 2015-10-19 18:35:52 +02:00
index.py Port to Python 3, get rid of cdb 2015-10-21 16:05:48 +02:00
LICENSE Initial commit 2015-10-19 18:35:52 +02:00
README.md Initial commit 2015-10-19 18:35:52 +02:00

VMailMgr chpw CGI

This is a Python CGI script that lets virtual VMailMgr/qmail users change their own mail passwords via a web interface.

This script is specifically tailored to work on hosts at uberspace.de. But it may also work on other qmail-based systems as long as virtual mail users are managed via VMailMgr.

Installation

In order to make this script executable, you need to install python-cdb as it is a required dependency:

easy_install-2.7 python-cdb

After that, simply extract all the repository contents into a folder under your document root. No paths need to be configured. Only make sure that the location is reachable via HTTPS.

Acknowledgements

This is a majorly refined version of a script originally developed by Dirk Boye. See dirkboye/mailpw_change at GitHub for the original source code.

FAQ

  • Q: Why still Python 2.7?
    A: We need python-cdb to parse the weird binary password database. Unfortunately, python-cdb seems to be only available for Python 2.

  • Q: Can I use the script via unencrypted HTTP?
    A: No, HTTPS is hard-coded. So unless you change that in the code, you can't. And honestly, you really shouldn't.

  • Q: Do I need to put the script in /cgi-bin/?
    A: In most cases, no. The script comes with an .htaccess that enables CGI execution for the current directory. Generally, that should work. If not, your administrator may have disabled option overriding in which case you actually need to put it in /cgi-bin/. But in most cases (and especially on Uberspaces) it should work just fine.

  • Q: I only get an error 500 and the log file says something about suEXEC policy violation. How do I fix that?
    A: Make sure both the index.py as well as the containing directory have the permissions 0755. Any higher permissions will usually result in that error.