CHGUSER
=======

ChgUser is 32-bit console applicaton command line tool to create/change the 
user setup in an .ini file (typically the SERV-U.INI file). It has the 
following syntax:

            chguser [-name=<username>] [-passwd=<password>] [-homedir=<path>]
                    [-homeip=<homeip>] [-[access=<path,access>] ...]
                    [-inifile=<path/name>]

Parameters containing spaces should be enclosed in quotation marks ("). Any
number of access rules is allowed, they are stored in the order found on the
command line. The 'access' part of an access rule can have the following
values (one or more):

              R = read access (files)
              W = write access (files)
              M = modify/delete access (files)
              C = create access (dirs)
              D = delete access (dirs)
              L = list access (dirs)
              E = execute access (programs)
              P = child dirs inherit rule

For the .ini file name the default is SERV-U.INI in the same directory as where
ChgUser is located. Keep in mind that if you want to give your own .ini file name
you should specify a full path (otherwise Windows will create the file in the 
Windows directory).

A few examples go a long way explaining the quirks of this little program, so
let's take a look (imagine this is all on a single command line):

        chguser -name=Robby -passwd="test value" -homedir=c:\ftp
                -access=c:\ftp,RLP

This will set up a user named "Robby", with password "test value" (keep in
mind that case is important for passwords), home directory "c:\ftp", and a 
single access rule giving read, list and inherit access to "c:\ftp". All this 
goes into the SERV-U.INI file in the ChgUser directory.

        chguser -name=Robby -access=c:\robby\upload,WLP -access=c:\robby,RLP

This will take our previously set up user "Robby" and first delete all the 
access rules there were (only one in our case). It will then write two new
rules (in this order):

        c:\robby\upload         - write, list, inherit access
        c:\robby                - read, list, inherit access

Now we want to set up user "Robby" for home IP 152.3.23.34. To do this that 
home IP should first have been set up in Serv-U's list of home IP's (via the
'setup - server - IP homes' menu choice). Then the following line will do 
the trick:

        chguser -name=Robby -passwd="test value" -homedir=c:\ftp
                -access=c:\ftp,RLP -homeip=152.3.23.34

To show a final example, we want to delete all traces of user "Robby" for
home IP 152.3.23.34 from the SERV-U.INI file:

        chguser -name=Robby -homeip=152.3.23.34

In general, a user name only (with or without a home IP) will remove that user
from the setup.


SOURCES
=======

This program comes with all its source code. The current version is a little 
rough and misses most of the user setup items, so feel free to improve on it.
I would appreciate it if you could drop me a line and make any improved version
available for others (You can reach me at RB5@acpub.duke.edu). The source is a
mix between C and C++. Not pretty, but my favorite way to make quick & dirty 
programs. In any case, there's nothing difficult in it, so you shouldn't have 
a problem extending on the program.

The files are:

        CHGUSER.CPP     - main program file
        CHGUSER.H       - include file for main program
        LIST.H          - template class for simple lists (utility class)
        PASSWD.H        - include file for using the PASSWD.DLL functions
        PASSWD.DLL      - dynamic link library providing password encryption
        PASSWD.LIB      - library to-be-linked to main program to include DLL

