PASSWDD version 1.0 - passwdd.tgz

HTTPS SERVER FOR USER PASSWORD CHANGE

This server provides a safe and friendly way for users to change their password from a web browser. The server is simply a front end to commands or scripts that will perform the real passwords change. This can be used with commands like passwd, yppasswd, smbpasswd, ldappasswd, vncpasswd, ...

Why is this useful

This server was designed for environments were is not easy to persuade users to enter a Linux server and run a command for changing their passwords.

One case where this is useful is when ms-windows users have home directories in samba servers, but don't login to the domain. In this situation some clients don't provide a way for users to change their passwords on the samba server.

This service also makes it possible for users to change their passwords from anywhere on the internet.

The server acts as follows:

Setting up

Requirements: OPENSSL, PAM, others(?)

  1. Untar passwdd.tgz and go to directory passwdd just created.
  2. Run "make" (sorry: no configure available for now)
  3. Run "make install", this will generate a RSA 512 bits key and the certificate, you will be prompted for some local data. Then several files will be installed:
    - /usr/local/sbin/passwdd (the server binary)
    - /usr/local/etc/passwdd.conf (the server configuration file)
    - /usr/local/etc/passwdd.prikey (RSA private key)
    - /usr/local/etc/passwdd.cert (RSA public key certificate)
    - /usr/local/etc/passwdd_form.html (the form to be presented to the user)
    - /usr/local/etc/passwdd_ok.html (html page saying the password was changed)
    - /usr/local/etc/passwdd_ko.html (html page saying the operation failed)
    - /usr/local/etc/passwd.gif (sample icon)
  4. Configure /usr/local/etc/passwdd.conf (see below)
  5. Make the server available, either in standalone mode or using inetd/xinetd:
    - STANDALONE: run "/usr/local/sbin/passwdd -D", later you will place this on a startup script like "rc.local".
    - INETD/XINETD: configure inetd/xinetd/services to run the command "/usr/local/sbin/passwdd"
  6. Now you can use a web browser to test the service. The server sends messages to the system logger so you can see what is going on.

Command line options

passwdd [-D] [-C filename]

-D - run in standalone mode (in background), default is to run in inetd/xinetd mode.

-C filename - use configuration file "filename", default is /usr/local/etc/passwdd.conf

Configuration file

The sample configuration file has some comments about the available options, all options must start on the first column and are up case:

Changing multiple passwords

You can use multiple command sequences, in that case they will be performed in the order specified. With multiple command sequences the operation is considered a success only if there is success on all command sequences.

This may take to some inconsistency, if the first command is successful and the second fails, then the user will be told the operation failed but the password related with the first command has changed.

For now, if you require this use you should place first the commands that fail more often.

Changing the HTML files to meet your preferences

All 3 html files can be changed at your will, be careful with the form file, it must have a form with the post method containing 4 fields named "username", "password", "newpass1" and "newpass2".

The html files can have images and references to other documents that may be provided by this server if the SRC option is used.

To-do list