FILE README.TXT FOR SERV-U BETAS
================================

IMPORTANT NOTE: THIS IS A BETA VERSION! THIS MEANS THERE MAY BE MORE BUGS
THAN WOULD BE ACCEPTABLE IN A RELEASE VERSION, AND IT IS PRIMARILY INTENDED
FOR TESTING. ALSO, THIS BETA VERSION DOES NOT COME WITH THE USUAL
AUTOMATED INSTALL PROGRAM NOR DOCUMENTATION, AND IS *NOT* INTENDED FOR
FIRST-TIME SERV-U USERS. PLEASE SEE FTP://FTP.CAT-SOFT.COM/ FOR THE
CURRENT RELEASE VERSION.

The current beta version is v2.3c build 10. Please see the VERSION.TXT 
file for a full list of changes between versions. To use the beta 
version, simply copy it over an existing Serv-U executable. The file 
SERV-U16.ZIP contains the 16-bit version, SERV-U32.ZIP contains the 
32-bit SERV-U.EXE program. Please report any problems or bugs to 
Rob@cat-soft.com. 

If you want to be kept informed about new beta test versions of Serv-U
please subscribe to the beta mailing list by sending a message to:

        beta-request@cat-soft.com

with a single line in the message body, reading:

        subscribe

You should receive notification of your subscription within a minute or 
so, and every message posted to the beta list will have instructions on 
how to unsubscribe.

NOTABLE CHANGES
===============

A complete list of changes can be found in the VERSION.TXT file for the 
current beta. Below follows a description of some of the more interesting
changes and some notes on how to use new features.

New Message Directives
----------------------
This beta adds a number of new message directives for use in signon
or signoff messages, login messages, and directory change messages. The
new directives are:

        %UAnonAll       - all currently logged in anonymous users
        %UAnonThisIP    - all anonymous users logged into this IP home
        %UNonAnonAll    - all non-anonymous users currently logged in
        %UNonAnonThisIP - all non-anonymous users logged into this IP home
        %UThisName      - all current users with the current user name
                          logged into this IP home

The Default User Account
------------------------
Serv-U used to treat a user account named "ALL" in a special way, by
using its settings as the default in case a user account did not have
specific settings in the user's setup itself. This account is now
named '** Default **' to reflect its meaning better. In case there you
have an 'ALL' account this is automagically renamed the first time you
run this beta version.

Maximum Number of Concurrent Users
----------------------------------
The maximum number of concurrent users is now part of each individual
user account's setup via the 'setup - users - misc' menu. This means
different users can have a different maximum number of users. The server-
wide setting for the total of all users is still in 'setup - server'.

User Time-Out
-------------
The user time-out value is now part of the individual user setup in the
'setup - users - misc' menu. Each user can have a different time-out value.
In case no time-out value is set for a user Serv-U looks if there is a
group value for that user, and if none is found there the '** Default **'
user is consulted.

To make anti-time-out measures used by some FTP clients ineffective there
is a checkbox in 'setup - server' which makes only actual file transfers
reset the time-out counter.

Directory Delete/Rename Access
------------------------------
For previous versions of Serv-U the user needed 'remove' access to the
parent of a directory to delete or rename that directory. This has been
changed, the user now needs 'remove' access to the actual directory rather
than its parent.

Command Line Option
-------------------
A command line option was added for the file Serv-U should use to get its
settings from. For example:

	SERV-U32.EXE C:\OTHER\SERVER\SETUP.INI

would use the c:\other\server\setup.ini file to read all settings from. This
allows the use of multiple Serv-U instances each with their own setup on the
same PC.

Block "FTP_bounce" Attacks
--------------------------
The 'setup - server' menu choice has a new option which can be checked to
block "FTP_bounce" attacks by malicious users (see CERT advisory CA-97.27). 
The down side of enabling this is that direct server-to-server transfers 
will no longer work. The client will only be able to transfer files to/from
itself and not to/from other destinations.

Wildcards in Access Rules
-------------------------
The user access rules now support wildcards in them, and directory listings
check every file or dir name for access. Thus allowing to hide certain 
files or dirs from the listing. Also, links are followed and only shown in 
dir listings if the user has access to the destination. This means you have
very fine-grained control over both access and listings.
An example to illustrate the possibilities:

	c:\ftp\users\secret.txt	- no access
	c:\ftp\users\*.txt	- read, list, inherit
	c:\ftp\users\??bra	- read, list, inherit
	
These two rules would make sure the use only sees file and dir names ending
on .txt, nothing else. Access (read access) is also restricted to these
files. On top of that, the file SECRET.TXT is not shown and the user has
no access to it. Finally, the last rule will show and give access to
anything ending on "bra" with no extension and two characters in front of it.
So, if there is a dir named ZEBRA the user will see it and have access to it.
Note that just as before the order of access rules is very important. Serv-U
looks at them from top to bottom and stops as soons as an applicable rule is
found.

Dir Listing Options
-------------------
The dir listing code of Serv-U has been changed to allow the most used 
options of the UNIX 'ls' command. This allows such things as recursive 
dir listing of an entire directory tree. Supported options are:

	-a	= list all entries including those starting with '.'
	-b	= force printing of non-printable characters in octal
	-c	= use modification time for listing sorting
	-d	= if argument is a dir list only name, not contents
	-f	= enable -a, -U, disable -l, -s
	-i	= print i-node number in first column
	-k	= use 1024 bytes for block size (default is 512 bytes)
	-l	= list in long format (default for LIST)
	-m	= stream output, list accross page separated by commas
	-n	= like -l, but use UID and GID numbers instead of names
	-o	= like -l, but without the group info
	-p	= put '/' after directory names
	-q	= print non-printable characters as '?'
	-r	= reverse sort order
	-s	= give size of each entry in blocks
	-t	= sort by modification time instead of name
	-u	= use time of last access for sorting
	-w:NN   = set line length to NN characters (default is 80)
	-x	= multi-column output with entries sorted accross
	-A	= list all entries, including '.' and '..'
	-B	= ignore names ending on '~' for dir listing
	-C	= multi-column output with entries sorted down 
	-F	= put '/' after dir names, '@' after links
	-G	= do not display group info
	-I:"XX" = add pattern XX to the list of patterns to ignore
	-L	= if argument is a link, list file or dir it references
	-N	= force printing of non-printable characters
	-Q	= quote names as C-syntax strings
	-R	= recursively list sub directories
	-S	= sort by size (default is date)
	-T:NN	= set tab size to NN columns (default is 8)
	-U	= do not sort dir listing
	-X	= sort by extension of the name (default is date)
	-1	= print one entry per line of output

Directory Listing Cache
-----------------------
Because the new dir listing code is at least 2 orders of magnitude slower 
than Serv-U's previous implementation it now caches directory listings 
for the 32-bit version of Serv-U. The system automagically detects 
changes which necessitate invalidating the cached copy, and it uses a 
"least recent used" scheme with time-out to manage the cache. The 16-bit 
version disables the cache by default, since it has no way to detect 
changes to directories. However, it is possible to switch the cache on
but realize that directory changes won't show up in the listings for
16-bit Serv-U.

The dir listing cache is controlled via the 'setup - server - dir cache'
menu option. There is a checkbox to enable/disable the cache, an entry
for the maximum number of directory listings that the cache should keep,
and finally one to set the maximum time a dir listing should be cached
(in other words, when that time expires the dir listing is dropped from
the cache). The defaults should be OK for most people. In case you have
a very busy system with lots of unique users and little overlap between
their dir listings it might help to increase the cache size. Some
experimentation is in order.

Remote Password Changing
------------------------
Serv-U now supports a command to let the user change his/her password
remotely. By default this is disabled, see the 'setup - users - misc' 
menu choice for enabling it. Not many FTP clients support (FTP Voyager 
will in its next version) but some will let the user configure it to 
send the appropriate command (like CuteFTP). See the docs of the FTP 
client for this. The command syntax is:

        SITE PSWD <oldpassword> <newpassword>

File Time/Date Changing
-----------------------
Another addition is that the MDTM command has been changed to allow the 
FTP client to change the date/time of files on the server. The user 
needs 'write' permission on the file to be able to do this. Again, not 
many FTP client support this (FTP Voyager will in its next version).
The command syntax to change the date/time of a file is:

        MDTM yyyymmddhhmmss <path/file>

