filevirtualroot
Syam Gadde <gadde@biac.duke.edu>
June-August, 2009

This is a DSI module for GridFTP servers, enabling you to export a virtual
filesystem rooted at an arbitrary directory you specify.  All pathnames
that go through DSI will be internally translated by the module into a
full path by prepending the "virtual root" path specified in
$GLOBUS_LOCATION/etc/filevirtualroot.txt .  Attempts to access files outside
the virtual root (e.g. via .. etc.) are denied.

This module is based on the default "file" module that ships with GridFTP.
The GPT packaging is based on that from the SRB DSI module.

To build the module, you must have downloaded the Globus Toolkit source code
and have built and installed at least the "globus_gridftp_server" target.
Set the GLOBUS_LOCATION environment variable to be the directory where you
have installed your build.

 ./bootstrap
 ./configure --with-flavor=FLAVOR
 make
 make install

FLAVOR should be something like gcc32, gcc32dbg, gcc64dbgpthr, etc., and
must be supported in $GLOBUS_LOCATION/etc/gpt/globus_flavor_labels.conf .

To run the GridFTP server with the filevirtualroot DSI, put your virtual
root path in the following file:

 $GLOBUS_LOCATION/filevirtualroot.txt

and run globus-gridftp-server with the following option:

 -dsi filevirtualroot

That's it!

