CHGUSER ======= ChgUser is 32-bit console application 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=] [-passwd=] [-homedir=] [-homeip=] [-[access=] ...] [-inifile=] 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 an improved version available for others (You can reach me at Rob@cat-soft.com). 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 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